📄 ui_setup.cpp
字号:
if(button != NULL)
{
if(PlayerOptions.AlphaOn())
button->SetState(C_STATE_1);
else
button->SetState(C_STATE_0);
button->Refresh();
}
button=(C_Button *)win->FindControl(BILINEAR_FILTERING);
if(button != NULL)
{
if(PlayerOptions.FilteringOn())
button->SetState(C_STATE_1);
else
button->SetState(C_STATE_0);
button->Refresh();
}
button=(C_Button *)win->FindControl(OBJECT_TEXTURES);
if(button != NULL)
{
if(PlayerOptions.ObjectTexturesOn())
button->SetState(C_STATE_1);
else
button->SetState(C_STATE_0);
button->Refresh();
}
text=(C_Text *)win->FindControl(CAL_TEXT);
if(text != NULL)
text->SetText("");
InitSoundSetup();
slider=(C_Slider *)win->FindControl(OBJECT_DETAIL);
if(slider != NULL)
{
ebox = (C_EditBox *)win->FindControl(OBJECT_DETAIL_READOUT);
if(ebox)
{
PlayerOptions.ObjDetailLevel = min(PlayerOptions.ObjDetailLevel, 2.0F*GraphicSettingMult);
ebox->SetInteger( FloatToInt32((PlayerOptions.ObjDetailLevel- .5f)/.25f + 1.5f));
ebox->Refresh();
slider->SetSteps(static_cast<short>(6*GraphicSettingMult));
slider->SetUserNumber(0,OBJECT_DETAIL_READOUT);
}
slider->SetSliderPos(FloatToInt32((slider->GetSliderMax()-slider->GetSliderMin())*(PlayerOptions.ObjDetailLevel-0.5f)/(1.5f*GraphicSettingMult)));
}
slider=(C_Slider *)win->FindControl(SFX_LEVEL);
if(slider != NULL)
{
ebox = (C_EditBox *)win->FindControl(SFX_LEVEL_READOUT);
if(ebox)
{
ebox->SetInteger( FloatToInt32(PlayerOptions.SfxLevel));
ebox->Refresh();
slider->SetUserNumber(0,SFX_LEVEL_READOUT);
}
slider->SetSliderPos(FloatToInt32((slider->GetSliderMax()-slider->GetSliderMin())*(PlayerOptions.SfxLevel - 1.0F)/4.0f));
}
slider=(C_Slider *)win->FindControl(DISAGG_LEVEL);
if(slider != NULL)
{
ebox = (C_EditBox *)win->FindControl(DISAGG_LEVEL_READOUT);
if(ebox)
{
ebox->SetInteger(PlayerOptions.BldDeaggLevel + 1);
ebox->Refresh();
slider->SetUserNumber(0,DISAGG_LEVEL_READOUT);
}
slider->SetSliderPos((slider->GetSliderMax()-slider->GetSliderMin())*PlayerOptions.ObjDeaggLevel/100);
}
slider=(C_Slider *)win->FindControl(VEHICLE_SIZE);
if(slider != NULL)
{
slider->SetSliderPos(FloatToInt32((slider->GetSliderMax()-slider->GetSliderMin())*(PlayerOptions.ObjMagnification - 1.0F)/4.0F));
ebox = (C_EditBox *)win->FindControl(VEHICLE_SIZE_READOUT);
if(ebox)
{
ebox->SetInteger(FloatToInt32(PlayerOptions.ObjMagnification));
ebox->Refresh();
slider->SetUserNumber(0,VEHICLE_SIZE_READOUT);
}
}
slider=(C_Slider *)win->FindControl(TEXTURE_DISTANCE);
if(slider != NULL)
{
ebox = (C_EditBox *)win->FindControl(TEX_DISTANCE_READOUT);
if(ebox)
{
ebox->SetInteger(PlayerOptions.DispTextureLevel + 1);
ebox->Refresh();
slider->SetUserNumber(0,TEX_DISTANCE_READOUT);
}
slider->SetSliderPos((slider->GetSliderMax()-slider->GetSliderMin())*(PlayerOptions.DispTextureLevel)/4);
}
slider=(C_Slider *)win->FindControl(PLAYER_BUBBLE_SLIDER);
if(slider != NULL)
{
ebox = (C_EditBox *)win->FindControl(PLAYER_BUBBLE_READOUT);
if(ebox)
{
PlayerOptions.PlayerBubble = min(PlayerOptions.PlayerBubble, 2.0F*GraphicSettingMult);
ebox->SetInteger( FloatToInt32((PlayerOptions.PlayerBubble - .5f)*4.0F + 1.5F));
ebox->Refresh();
slider->SetSteps(static_cast<short>(6*GraphicSettingMult));
slider->SetUserNumber(0,PLAYER_BUBBLE_READOUT);
}
slider->SetSliderPos(FloatToInt32((slider->GetSliderMax()-slider->GetSliderMin())*(PlayerOptions.PlayerBubble-0.5f)/(1.5f*GraphicSettingMult)));
}
slider=(C_Slider *)win->FindControl(TERRAIN_DETAIL);
if(slider != NULL)
{
int step;
step = (slider->GetSliderMax()-slider->GetSliderMin())/(6*GraphicSettingMult);
slider->SetSteps(static_cast<short>(6*GraphicSettingMult));
if(PlayerOptions.DispTerrainDist > 40)
slider->SetSliderPos(FloatToInt32(step*(2+(PlayerOptions.DispTerrainDist - 40.0F)/10.0F)));
else
slider->SetSliderPos((2 - PlayerOptions.DispMaxTerrainLevel)*step);
ebox = (C_EditBox *)win->FindControl(TEX_DETAIL_READOUT);
if(ebox)
{
ebox->SetInteger( FloatToInt32(((float)slider->GetSliderPos()/(slider->GetSliderMax()-slider->GetSliderMin()))*6.0F*GraphicSettingMult + 1.5F));
ebox->Refresh();
slider->SetUserNumber(0,TEX_DETAIL_READOUT);
}
}
//ControlsTab
lbox = (C_ListBox *)win->FindControl(JOYSTICK_SELECT );//JOYSTICK_SELECT
if(lbox)
{
BuildControllerList(lbox);
lbox->SetValue(gCurController + 1);
lbox->Refresh();
}
//if (S_joycaps.wCaps & JOYCAPS_HASZ)
if (IO.AnalogIsUsed(2))
{
button=(C_Button *)win->FindControl(THROTTLE_CHECK);
if(button != NULL)
{
button->SetFlagBitOn(C_BIT_INVISIBLE);
button->SetState(C_STATE_1);
button->Refresh();
}
}
if (IO.AnalogIsUsed(3))
{
button=(C_Button *)win->FindControl(RUDDER_CHECK);
if(button != NULL)
{
button->SetFlagBitOn(C_BIT_INVISIBLE);
button->SetState(C_STATE_1);
button->Refresh();
}
}
SetRealism(win);
if(!SetupCritSection)
SetupCritSection = F4CreateCriticalSection();
KeyVar.EditKey = FALSE;
}//SetupControls
void SetupRadioCB(long,short hittype,C_Base *control)
{
int i;
C_Button *button;
if(hittype != C_TYPE_LMOUSEUP)
return;
/*
if(Calibration.calibrating)
{
StopCalibrating(control);
}*/
ready = FALSE;
if(SetupViewer)
{
F4EnterCriticalSection(SetupCritSection);
RViewPoint *viewpt;
viewpt = SetupViewer->GetVP();
viewpt->RemoveObject(Smoke);
delete Smoke;
Smoke = NULL;
SetupViewer->Cleanup();
delete SetupViewer;
SetupViewer = NULL;
F4LeaveCriticalSection(SetupCritSection);
button=(C_Button *)control->Parent_->FindControl(RENDER);
if(button != NULL)
{
button->SetState(C_STATE_0);
}
}
InitSoundSetup();
i=1;
while(control->GetUserNumber(i))
{
control->Parent_->HideCluster(control->GetUserNumber(i));
i++;
}
control->Parent_->UnHideCluster(control->GetUserNumber(0));
control->Parent_->RefreshWindow();
Cluster = control->GetUserNumber(0);
int hasPOV= FALSE;
if(gTotalJoy)
{
DIDEVCAPS devcaps;
devcaps.dwSize = sizeof(DIDEVCAPS);
gpDIDevice[gCurController]->GetCapabilities( &devcaps);
if(devcaps.dwPOVs > 0)
hasPOV = TRUE;
}
if(control->GetUserNumber(0) == 8004)
{
HideKeyStatusLines(control->Parent_);
button=(C_Button *)control->Parent_->FindControl(LEFT_HAT);
if(button != NULL)
{
if (!hasPOV)
button->SetFlagBitOn(C_BIT_INVISIBLE);
else
button->SetFlagBitOff(C_BIT_INVISIBLE);
button->Refresh();
}
button=(C_Button *)control->Parent_->FindControl(RIGHT_HAT);
if(button != NULL)
{
if (!hasPOV)
button->SetFlagBitOn(C_BIT_INVISIBLE);
else
button->SetFlagBitOff(C_BIT_INVISIBLE);
button->Refresh();
}
button=(C_Button *)control->Parent_->FindControl(CENTER_HAT);
if(button != NULL)
{
if (!hasPOV)
button->SetFlagBitOn(C_BIT_INVISIBLE);
else
button->SetFlagBitOff(C_BIT_INVISIBLE);
button->Refresh();
}
button=(C_Button *)control->Parent_->FindControl(UP_HAT);
if(button != NULL)
{
if (!hasPOV)
button->SetFlagBitOn(C_BIT_INVISIBLE);
else
button->SetFlagBitOff(C_BIT_INVISIBLE);
button->Refresh();
}
button=(C_Button *)control->Parent_->FindControl(DOWN_HAT);
if(button != NULL)
{
if (!hasPOV)
button->SetFlagBitOn(C_BIT_INVISIBLE);
else
button->SetFlagBitOff(C_BIT_INVISIBLE);
button->Refresh();
}
}
}//SetupRadioCallback
static void SaveValues(void)
{
C_Window *win;
C_Button *button;
C_Text *text;
C_ListBox *lbox;
C_Slider *slider;
C_EditBox *ebox;
win=gMainHandler->FindWindow(SETUP_WIN);
if(win == NULL)
return;
lbox=(C_ListBox *)win->FindControl(SET_FLTMOD);
if(lbox != NULL)
{
if((lbox->GetTextID())==SET_FLTMOD_1)
PlayerOptions.SimFlightModel = FMAccurate;
else
PlayerOptions.SimFlightModel = FMSimplified;
lbox->Refresh();
}
lbox=(C_ListBox *)win->FindControl(SET_RADAR);
if(lbox != NULL)
{
switch(lbox->GetTextID())
{
case SET_RADAR_1:
PlayerOptions.SimAvionicsType = ATRealistic;
break;
case SET_RADAR_2:
PlayerOptions.SimAvionicsType = ATSimplified;
break;
case SET_RADAR_3:
PlayerOptions.SimAvionicsType = ATEasy;
break;
}
lbox->Refresh();
}
lbox=(C_ListBox *)win->FindControl(SET_WEAPEFF);
if(lbox != NULL)
{
switch(lbox->GetTextID())
{
case SET_WEAPEFF_1:
PlayerOptions.SimWeaponEffect = WEAccurate;
break;
case SET_WEAPEFF_2:
PlayerOptions.SimWeaponEffect = WEEnhanced;
break;
case SET_WEAPEFF_3:
PlayerOptions.SimWeaponEffect = WEExaggerated;
break;
}
lbox->Refresh();
}
lbox=(C_ListBox *)win->FindControl(SET_AUTOPILOT);
if(lbox != NULL)
{
switch(lbox->GetTextID())
{
case SET_AUTO_1:
PlayerOptions.SimAutopilotType = APNormal;
break;
case SET_AUTO_2:
PlayerOptions.SimAutopilotType = APEnhanced;
break;
case SET_AUTO_3:
PlayerOptions.SimAutopilotType = APIntelligent;
break;
}
lbox->Refresh();
}
lbox=(C_ListBox *)win->FindControl(SET_PADLOCK);
if(lbox != NULL)
{
switch(lbox->GetTextID())
{
case SET_PADLOCK_4:
PlayerOptions.SimPadlockMode = PDDisabled;
break;
case SET_PADLOCK_1:
PlayerOptions.SimPadlockMode = PDRealistic;
break;
case SET_PADLOCK_2:
PlayerOptions.SimPadlockMode = PDEnhanced;
break;
//case SET_PADLOCK_3:
// PlayerOptions.SimPadlockMode = PDSuper;
// break;
}
lbox->Refresh();
}
lbox=(C_ListBox *)win->FindControl(SET_REFUELING);
if(lbox != NULL)
{
switch(lbox->GetTextID())
{
case SET_REFUEL_1:
PlayerOptions.SimAirRefuelingMode = ARRealistic;
break;
case SET_REFUEL_2:
PlayerOptions.SimAirRefuelingMode = ARModerated;
break;
case SET_REFUEL_3:
PlayerOptions.SimAirRefuelingMode = ARSimplistic;
break;
}
lbox->Refresh();
}
lbox=(C_ListBox *)win->FindControl(SET_CANOPY_CUE);
if(lbox != NULL)
{
switch(lbox->GetTextID())
{
case CUE_NONE:
PlayerOptions.SimVisualCueMode = VCNone;
break;
case CUE_LIFT_LINE:
PlayerOptions.SimVisualCueMode = VCLiftLine;
break;
case CUE_REFLECTION_MAP:
PlayerOptions.SimVisualCueMode = VCReflection;
break;
case CUE_BOTH:
PlayerOptions.SimVisualCueMode = VCBoth;
break;
}
lbox->Refresh();
}
lbox=(C_ListBox *)win->FindControl(SET_VIDEO_CARD);
if(lbox != NULL)
{
DisplayOptions.DispVideoCard = static_cast<uchar>(lbox->GetTextID() - 1);
lbox->Refresh();
}
lbox=(C_ListBox *)win->FindControl(SET_VIDEO_DRIVER);
if(lbox != NULL)
{
DisplayOptions.DispVideoDriver = static_cast<uchar>(lbox->GetTextID() - 1);
lbox->Refresh();
}
lbox=(C_ListBox *)win->FindControl(SET_RESOLUTION);
if(lbox != NULL)
{
DisplayOptions.DispWidth = static_cast<short>(lbox->GetTextID());
DisplayOptions.DispHeight = static_cast<ushort>(FloatToInt32(lbox->GetTextID() * 0.75F));
ShiAssert(DisplayOptions.DispWidth <= 1600);
FalconDisplay.SetSimMode(DisplayOptions.DispWidth, DisplayOptions.DispHeight);
lbox->Refresh();
}
button=(C_Button *)win->FindControl(SET_ORDNANCE);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetSimFlag (SIM_UNLIMITED_AMMO);
else
PlayerOptions.ClearSimFlag (SIM_UNLIMITED_AMMO);
}
button=(C_Button *)win->FindControl(SET_FUEL);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetSimFlag (SIM_UNLIMITED_FUEL);
else
PlayerOptions.ClearSimFlag (SIM_UNLIMITED_FUEL);
}
button=(C_Button *)win->FindControl(SET_CHAFFLARES);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetSimFlag (SIM_UNLIMITED_CHAFF);
else
PlayerOptions.ClearSimFlag (SIM_UNLIMITED_CHAFF);
}
button=(C_Button *)win->FindControl(SET_COLLISIONS);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetSimFlag (SIM_NO_COLLISIONS);
else
PlayerOptions.ClearSimFlag (SIM_NO_COLLISIONS);
}
button=(C_Button *)win->FindControl(SET_BLACKOUT);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetSimFlag (SIM_NO_BLACKOUT);
else
PlayerOptions.ClearSimFlag (SIM_NO_BLACKOUT);
}
button=(C_Button *)win->FindControl(SET_IDTAGS);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetSimFlag (SIM_NAMETAGS);
else
PlayerOptions.ClearSimFlag (SIM_NAMETAGS);
}
button=(C_Button *)win->FindControl(SET_WEATHER);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.GeneralFlags |= GEN_NO_WEATHER;
else
PlayerOptions.GeneralFlags &= ~GEN_NO_WEATHER;
}
button=(C_Button *)win->FindControl(SET_BULLSEYE_CALLS);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetSimFlag(SIM_BULLSEYE_CALLS);
else
PlayerOptions.ClearSimFlag(SIM_BULLSEYE_CALLS);
}
button=(C_Button *)win->FindControl(SET_INVULNERABILITY); //should be SET_INVULNERABLITY
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetSimFlag(SIM_INVULNERABLE);
else
PlayerOptions.ClearSimFlag(SIM_INVULNERABLE);
}
ebox = (C_EditBox *)win->FindControl(ACMI_FILE_SIZE);
if(ebox)
{
PlayerOptions.ACMIFileSize = ebox->GetInteger();
}
button=(C_Button *)win->FindControl(AUTO_SCALE);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetObjFlag(DISP_OBJ_DYN_SCALING);
else
PlayerOptions.ClearObjFlag(DISP_OBJ_DYN_SCALING);
}
button=(C_Button *)win->FindControl(GOUROUD);//GOUROUD
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetDispFlag(DISP_GOURAUD);
else
PlayerOptions.ClearDispFlag(DISP_GOURAUD);
}
button=(C_Button *)win->FindControl(HAZING);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetDispFlag(DISP_HAZING);
else
PlayerOptions.ClearDispFlag(DISP_HAZING);
}
button=(C_Button *)win->FindControl(ALPHA_BLENDING);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetDispFlag(DISP_ALPHA_BLENDING);
else
PlayerOptions.ClearDispFlag(DISP_ALPHA_BLENDING);
}
button=(C_Button *)win->FindControl(BILINEAR_FILTERING);
if(button != NULL)
{
if(button->GetState() == C_STATE_1)
PlayerOptions.SetDispFlag(DISP_BILINEAR);
else
PlayerOptions.ClearDispFlag(DISP_BILINEAR);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -