📄 simtab.cpp
字号:
#include "falclib.h"
#include "chandler.h"
#include "userids.h"
#include "PlayerOp.h"
#include "sim\include\stdhdr.h"
#include "ui_setup.h"
#include "f4find.h"
//define presets for skill level list box (first set is ace, then veteran, etc...)
Preset Presets[] = {
{FMAccurate,ATRealistic,WEAccurate,APNormal,ARRealistic,PDRealistic,0},
{FMAccurate,ATSimplified,WEAccurate,APNormal,ARModerated,PDRealistic,SIM_UNLIMITED_CHAFF},
{FMAccurate,ATSimplified,WEEnhanced,APEnhanced,ARModerated,PDEnhanced,SIM_NO_BLACKOUT|SIM_UNLIMITED_CHAFF|SIM_NAMETAGS},
{FMSimplified,ATEasy,WEExaggerated,APEnhanced,ARSimplistic,PDEnhanced,SIM_NO_BLACKOUT|SIM_UNLIMITED_CHAFF|SIM_NAMETAGS|SIM_UNLIMITED_FUEL}, //need to put SIM_UNLIMITED_FUEL
{FMSimplified,ATEasy,WEExaggerated,APIntelligent,ARSimplistic, PDEnhanced,SIM_NO_BLACKOUT|SIM_UNLIMITED_AMMO|SIM_UNLIMITED_CHAFF|SIM_NAMETAGS|SIM_UNLIMITED_FUEL|SIM_NO_COLLISIONS},
//{FMSimplified,ATEasy,WEExaggerated,APIntelligent,ARSimplistic, PDSuper,SIM_NO_BLACKOUT|SIM_UNLIMITED_AMMO|SIM_UNLIMITED_CHAFF|SIM_NAMETAGS|SIM_UNLIMITED_FUEL|SIM_NO_COLLISIONS}, //back into these two after DEMO
};
extern C_Handler *gMainHandler;
/////////////
// Sim Tab
/////////////
int GetRealism(C_Window *win)
{
C_ListBox *listbox;
C_Button *button;
int realism = 100,maxrealism = 100;
if(win == NULL)
return 0;
listbox=(C_ListBox *)win->FindControl(SET_FLTMOD);
if(listbox != NULL)
{
button = (C_Button *)listbox->GetItem(listbox->GetTextID());
if(button)
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
listbox=(C_ListBox *)win->FindControl(SET_RADAR);
if(listbox != NULL)
{
button = (C_Button *)listbox->GetItem(listbox->GetTextID());
if(button)
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
listbox=(C_ListBox *)win->FindControl(SET_WEAPEFF);
if(listbox != NULL)
{
button = (C_Button *)listbox->GetItem(listbox->GetTextID());
if(button)
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
listbox=(C_ListBox *)win->FindControl(SET_AUTOPILOT);
if(listbox != NULL)
{
button = (C_Button *)listbox->GetItem(listbox->GetTextID());
if(button)
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
listbox=(C_ListBox *)win->FindControl(SET_PADLOCK);
if(listbox != NULL)
{
button = (C_Button *)listbox->GetItem(listbox->GetTextID());
if(button)
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
listbox=(C_ListBox *)win->FindControl(SET_REFUELING);
if(listbox != NULL)
{
button = (C_Button *)listbox->GetItem(listbox->GetTextID());
if(button)
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
button=(C_Button *)win->FindControl(SET_FUEL);
if(button != NULL)
{
if(button->GetState())
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
button=(C_Button *)win->FindControl(SET_CHAFFLARES);
if(button != NULL)
{
if(button->GetState())
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
button=(C_Button *)win->FindControl(SET_COLLISIONS);
if(button != NULL)
{
if(button->GetState())
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
button=(C_Button *)win->FindControl(SET_BLACKOUT);
if(button != NULL)
{
if(button->GetState())
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
button=(C_Button *)win->FindControl(SET_IDTAGS);
if(button != NULL)
{
if(button->GetState())
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
button=(C_Button *)win->FindControl(SET_WEATHER);
if(button != NULL)
{
if(button->GetState())
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
button=(C_Button *)win->FindControl(SET_BULLSEYE_CALLS);
if(button != NULL)
{
if(button->GetState())
{
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
}
}
button=(C_Button *)win->FindControl(SET_INVULNERABILITY);
if(button != NULL)
{
if(button->GetState())
{
//realism = 0;
realism -= button->GetUserNumber(0);
if(maxrealism > button->GetUserNumber(1))
maxrealism = button->GetUserNumber(1);
//realism *= 0.5f;
}
}
if(realism > maxrealism )
realism = maxrealism ;
if (realism < 0)
realism = 0;
return realism;
}//GetRealism
int SetRealism(C_Window *win)
{
C_Button *button;
C_EditBox *ebox;
C_ListBox *listbox;
int realism = 100,maxrealism = 100;
if(win == NULL)
return 0;
realism = GetRealism(win);
ebox=(C_EditBox *)win->FindControl(REALISM_READOUT);
if(ebox != NULL)
{
if(realism > maxrealism )
realism = maxrealism ;
if (realism < 0)
realism = 0;
ebox->SetInteger(realism );
}
listbox = (C_ListBox *)win->FindControl(SET_SKILL);
if(listbox)
{
listbox->SetValue(RECRUIT_LEVEL);
for(int i = 0; i < NUM_LEVELS; i++)
{
button = (C_Button *)listbox->GetItem(ACE_LEVEL + i);
if(button)
{
if(realism > button->GetUserNumber(0))
{
listbox->SetValue(ACE_LEVEL + i);
break;
}
}
}
}
win->RefreshWindow();
return realism;
}//SetRealism
void SimControlCB(long,short hittype, C_Base *control)
{
if((hittype != C_TYPE_LMOUSEUP) && (hittype != C_TYPE_SELECT))
return;
SetRealism(control->Parent_);
}
void SetSkillCB(long,short hittype, C_Base *control)
{
if(hittype != C_TYPE_SELECT)
return;
int Index;
C_Button *button;
C_Window *win;
C_ListBox *lbox;
win = (C_Window *)control->Parent_;
Index = ((C_ListBox *)control)->GetTextID() - ACE_LEVEL;
lbox=(C_ListBox *)win->FindControl(SET_FLTMOD);
if(lbox != NULL)
{
if(Presets[Index].FlightModel==FMAccurate)
lbox->SetValue(SET_FLTMOD_1);
else
lbox->SetValue(SET_FLTMOD_2);
}
lbox=(C_ListBox *)win->FindControl(SET_RADAR);
if(lbox != NULL)
{
switch(Presets[Index].RadarMode)
{
case ATRealistic:
lbox->SetValue(SET_RADAR_1);
break;
case ATSimplified:
lbox->SetValue(SET_RADAR_2);
break;
case ATEasy:
lbox->SetValue(SET_RADAR_3);
break;
}
}
lbox=(C_ListBox *)win->FindControl(SET_WEAPEFF);
if(lbox != NULL)
{
switch(Presets[Index].WeapEffects)
{
case WEAccurate:
lbox->SetValue(SET_WEAPEFF_1);
break;
case WEEnhanced:
lbox->SetValue(SET_WEAPEFF_2);
break;
case WEExaggerated:
lbox->SetValue(SET_WEAPEFF_3);
break;
}
}
lbox=(C_ListBox *)win->FindControl(SET_AUTOPILOT);
if(lbox != NULL)
{
switch(Presets[Index].Autopilot)
{
case APNormal:
lbox->SetValue(SET_AUTO_1);
break;
case APEnhanced:
lbox->SetValue(SET_AUTO_2);
break;
case APIntelligent:
lbox->SetValue(SET_AUTO_3);
break;
}
}
lbox=(C_ListBox *)win->FindControl(SET_REFUELING);
if(lbox != NULL)
{
switch(Presets[Index].RefuelingMode)
{
case ARRealistic:
lbox->SetValue(SET_REFUEL_1);
break;
case ARModerated:
lbox->SetValue(SET_REFUEL_2);
break;
case ARSimplistic:
lbox->SetValue(SET_REFUEL_3);
break;
}
}
lbox=(C_ListBox *)win->FindControl(SET_PADLOCK);
if(lbox != NULL)
{
switch(Presets[Index].PadlockMode)
{
case PDDisabled:
lbox->SetValue(SET_PADLOCK_4);
break;
case PDRealistic:
lbox->SetValue(SET_PADLOCK_1);
break;
case PDEnhanced:
lbox->SetValue(SET_PADLOCK_2);
break;
//case PDSuper:
// lbox->SetValue(SET_PADLOCK_3);
// break;
}
}
button=(C_Button *)win->FindControl(SET_ORDNANCE);
if(button != NULL)
{
if(Presets[Index].flags & SIM_UNLIMITED_AMMO)
button->SetState(C_STATE_1);
else
button->SetState(C_STATE_0);
button->Refresh();
}
button=(C_Button *)win->FindControl(SET_FUEL);
if(button != NULL)
{
if(Presets[Index].flags & SIM_UNLIMITED_FUEL)
button->SetState(C_STATE_1);
else
button->SetState(C_STATE_0);
button->Refresh();
}
button=(C_Button *)win->FindControl(SET_CHAFFLARES);
if(button != NULL)
{
if(Presets[Index].flags & SIM_UNLIMITED_CHAFF)
button->SetState(C_STATE_1);
else
button->SetState(C_STATE_0);
button->Refresh();
}
button=(C_Button *)win->FindControl(SET_COLLISIONS);
if(button != NULL)
{
if(Presets[Index].flags & SIM_NO_COLLISIONS)
button->SetState(C_STATE_1);
else
button->SetState(C_STATE_0);
button->Refresh();
}
button=(C_Button *)win->FindControl(SET_BLACKOUT);
if(button != NULL)
{
if(Presets[Index].flags & SIM_NO_BLACKOUT)
button->SetState(C_STATE_1);
else
button->SetState(C_STATE_0);
button->Refresh();
}
button=(C_Button *)win->FindControl(SET_IDTAGS);
if(button != NULL)
{
if(Presets[Index].flags & SIM_NAMETAGS)
button->SetState(C_STATE_1);
else
button->SetState(C_STATE_0);
button->Refresh();
}
button=(C_Button *)win->FindControl(SET_INVULNERABILITY); //should be SET_INVULNERABLITY
if(button != NULL)
{
button->SetState(C_STATE_0);
button->Refresh();
}
SetRealism(win);
}//SetSkillCB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -