📄 ui_lgbk.cpp
字号:
button->SetFlagBitOn(C_BIT_INVISIBLE);
else
button->SetFlagBitOff(C_BIT_INVISIBLE);
}
button=(C_Button *)win->FindControl(LOG_NEW);
if(button != NULL)
{
if(LogState & LB_OPPONENT)
button->SetFlagBitOn(C_BIT_INVISIBLE);
else
button->SetFlagBitOff(C_BIT_INVISIBLE);
}
button=(C_Button *)win->FindControl(LOG_CLEAR);
if(button != NULL)
{
if(LogState & LB_OPPONENT)
button->SetFlagBitOn(C_BIT_INVISIBLE);
else
button->SetFlagBitOff(C_BIT_INVISIBLE);
}
button=(C_Button *)win->FindControl(LOG_CANCEL);
if(button != NULL)
{
if(LogState & LB_OPPONENT)
button->SetFlagBitOn(C_BIT_INVISIBLE);
else
button->SetFlagBitOff(C_BIT_INVISIBLE);
}
button = (C_Button *)win->FindControl(PATCH_PIC);
if(button)
{
if(!(LogState & LB_EDITABLE)||LogState & LB_OPPONENT)
button->SetFlagBitOff(C_BIT_ENABLED);
else
button->SetFlagBitOn(C_BIT_ENABLED);
if(Patch)
{
_TCHAR buf[MAX_PATH];
_stprintf(buf,_T("%s\\patches\\%s.tga"),FalconDataDirectory,Patch);
SetImage(PATCH_PIC, buf, CurPatch);
}
else if(*(UI_logbk.GetPatch()) != 0)
{
_TCHAR buf[MAX_PATH];
_stprintf(buf,_T("%s\\patches\\%s.tga"),FalconDataDirectory,UI_logbk.GetPatch());
SetImage(PATCH_PIC, buf, CurPatch);
}
else
{
imageID = NOPATCH;
if(UI_logbk.GetPatchResource())
imageID = UI_logbk.GetPatchResource();
button->SetImage(C_STATE_0,imageID);
button->SetImage(C_STATE_1,imageID);
button->SetImage(C_STATE_SELECTED,imageID);
button->SetImage(C_STATE_DISABLED,imageID);
button->Refresh();
CurPatch = 0;
}
}
button = (C_Button *)win->FindControl(PILOT_PIC);
if(button)
{
if(!(LogState & LB_EDITABLE)||LogState & LB_OPPONENT)
button->SetFlagBitOff(C_BIT_ENABLED);
else
button->SetFlagBitOn(C_BIT_ENABLED);
if(Picture)
{
button->SetImage(C_STATE_0,Picture);
button->SetImage(C_STATE_1,Picture);
button->SetImage(C_STATE_SELECTED,Picture);
button->SetImage(C_STATE_DISABLED,Picture);
button->Refresh();
}
else if(*(UI_logbk.GetPicture()) != 0)
{
_TCHAR buf[MAX_PATH];
_stprintf(buf,_T("%s\\pictures\\%s.tga"),FalconDataDirectory,UI_logbk.GetPicture());
SetImage(PILOT_PIC, buf,CurPic);
}
else
{
imageID = NOFACE;
if(UI_logbk.GetPictureResource())
imageID = UI_logbk.GetPictureResource();
button->SetImage(C_STATE_0,imageID);
button->SetImage(C_STATE_1,imageID);
button->SetImage(C_STATE_SELECTED,imageID);
button->SetImage(C_STATE_DISABLED,imageID);
button->Refresh();
CurPic = 0;
}
}
ebox=(C_EditBox *)win->FindControl(PASSWORD_LIST);
if(ebox)
{
if(!(LogState & LB_EDITABLE)||LogState & LB_OPPONENT)
ebox->SetFlagBitOff(C_BIT_ENABLED);
else
ebox->SetFlagBitOn(C_BIT_ENABLED);
_TCHAR Pwd[PASSWORD_LEN+1];
if(UI_logbk.GetPassword(Pwd))
ebox->SetText(Pwd);
else
ebox->SetText(_T(""));
ebox->Refresh();
}
ebox=(C_EditBox *)win->FindControl(PILOT_LIST);
if(ebox)
{
if(!(LogState & LB_EDITABLE)||LogState & LB_OPPONENT)
ebox->SetFlagBitOff(C_BIT_ENABLED);
else
ebox->SetFlagBitOn(C_BIT_ENABLED);
ebox->SetText(UI_logbk.Name());
ebox->Refresh();
}
ebox=(C_EditBox *)win->FindControl(CALLSIGN_LIST);
if(ebox)
{
if(!(LogState & LB_EDITABLE)||LogState & LB_OPPONENT)
ebox->SetFlagBitOff(C_BIT_ENABLED);
else
ebox->SetFlagBitOn(C_BIT_ENABLED);
ebox->SetText(UI_logbk.Callsign());
ebox->Refresh();
}
if(LogState & LB_REFRESH_PILOT)
{
lbox=(C_ListBox *)win->FindControl(LOGBOOK_LIST);
if(lbox)
{
_TCHAR buf[MAX_PATH];
_stprintf(buf,_T("%s\\config\\*.lbk"),FalconDataDirectory);
GetPilotList( win, buf, NULL, lbox, TRUE, TRUE );
if(ebox)
SetPilot(ebox->GetText(),lbox);
LogState &= ~LB_REFRESH_PILOT;
}
}
lbox=(C_ListBox *)win->FindControl(VOICE_CHOICE);
if(lbox)
{
lbox->SetValue(UI_logbk.Voice() + 1);
}
ebox=(C_EditBox *)win->FindControl(PERSONAL_TEXT);
if(ebox)
{
if(!(LogState & LB_EDITABLE)||LogState & LB_OPPONENT)
ebox->SetFlagBitOff(C_BIT_ENABLED);
else
ebox->SetFlagBitOn(C_BIT_ENABLED);
ebox->SetText(UI_logbk.Personal());
ebox->Refresh();
}
ebox=(C_EditBox *)win->FindControl(SQUADRON_NAME);
if(ebox)
{
if(!(LogState & LB_EDITABLE)||LogState & LB_OPPONENT)
ebox->SetFlagBitOff(C_BIT_ENABLED);
else
ebox->SetFlagBitOn(C_BIT_ENABLED);
ebox->SetText(UI_logbk.Squadron());
ebox->Refresh();
}
button = (C_Button *)win->FindControl(50095);//RANKS value was changed
if(button)
{
button->SetState(static_cast<short>(UI_logbk.Rank()));
button->SetHelpText(gFullRanksTxt[UI_logbk.Rank()]);
button->Refresh();
}
text = (C_Text *)win->FindControl(COMMISSIONED_FIELD);
if(text)
{
text->SetText(UI_logbk.Commissioned());
text->Refresh();
}
_TCHAR buf[15];
text = (C_Text *)win->FindControl(HOURS_FIELD);
if(text)
{
_stprintf(buf,"%4.1f",UI_logbk.FlightHours());
Uni_Float(buf);
text->SetText(buf);
text->Refresh();
}
text = (C_Text *)win->FindControl(ACE_FIELD);
if(text)
{
_stprintf(buf,"%1.3f",UI_logbk.AceFactor());
Uni_Float(buf);
text->SetText(buf);
text->Refresh();
}
text = (C_Text *)win->FindControl(FRAGRATIO_FIELD);
if(text)
{
int kills = UI_logbk.TotalKills();
int killed = UI_logbk.TotalKilled();
_stprintf(buf,"%2d/%2d",kills,killed);
text->SetText(buf);
text->Refresh();
}
DF_STATS *dgft = UI_logbk.GetDogfight();
text = (C_Text *)win->FindControl(DF_MATCH_FIELD);
if(text)
{
_stprintf(buf,_T("%3d"),dgft->MatchesWon + dgft->MatchesLost);
text->SetText(buf);
text->Refresh();
}
text = (C_Text *)win->FindControl(DF_WON_LOST_FIELD);
if(text)
{
_stprintf(buf,_T("%2d/%2d"),dgft->MatchesWon,dgft->MatchesLost);
text->SetText(buf);
text->Refresh();
}
//DF_MATCH_VSHUMANS_FIELD
text = (C_Text *)win->FindControl(DF_MATCH_VSHUMANS_FIELD);
if(text)
{
_stprintf(buf,_T("%2d/%2d"),dgft->MatchesWonVHum,dgft->MatchesLostVHum);
text->SetText(buf);
text->Refresh();
}
//DF_KILL_FIELD
text = (C_Text *)win->FindControl(DF_KILL_FIELD);
if(text)
{
_stprintf(buf,_T("%2d/%2d"),dgft->Kills,dgft->Killed);
text->SetText(buf);
text->Refresh();
}
//DF_H2H_FIELD
//DF_VS_FIELD
text = (C_Text *)win->FindControl(DF_VS_FIELD);
if(text)
{
_stprintf(buf,_T("%2d/%2d"),dgft->HumanKills,dgft->KilledByHuman);
text->SetText(buf);
text->Refresh();
}
CAMP_STATS *camp = UI_logbk.GetCampaign();
//CAMP_CAMPAIGNS_FIELD
text = (C_Text *)win->FindControl(CAMP_CAMPAIGNS_FIELD);
if(text)
{
_stprintf(buf,_T("%d/%d/%d"),camp->GamesWon,camp->GamesLost,camp->GamesTied);
text->SetText(buf);
text->Refresh();
}
//CAMP_MISS_FIELD
text = (C_Text *)win->FindControl(CAMP_MISS_FIELD);
if(text)
{
_stprintf(buf,_T("%4d"),camp->Missions);
text->SetText(buf);
text->Refresh();
}
//CAMP_RATING_FIELD
text = (C_Text *)win->FindControl(CAMP_RATING_FIELD);
if(text)
{
if(camp->Missions)
_stprintf(buf,_T("%2.3f"),(double)camp->TotalMissionScore/camp->Missions);
else
_stprintf(buf,"0");
Uni_Float(buf);
text->SetText(buf);
text->Refresh();
}
//CAMP_KILL_FIELD
text = (C_Text *)win->FindControl(CAMP_KILL_FIELD);
if(text)
{
_stprintf(buf,_T("%2d/%2d"),camp->Kills,camp->Killed);
text->SetText(buf);
text->Refresh();
}
//CAMP_VS_FIELD
text = (C_Text *)win->FindControl(CAMP_VS_FIELD);
if(text)
{
_stprintf(buf,_T("%2d/%2d"),camp->HumanKills,camp->KilledByHuman);
text->SetText(buf);
text->Refresh();
}
text = (C_Text *)win->FindControl(CAMP_AA_KILLS_FIELD);
if(text)
{
_stprintf(buf,_T("%4d"),camp->Kills);
text->SetText(buf);
text->Refresh();
}
text = (C_Text *)win->FindControl(CAMP_AG_KILLS_FIELD);
if(text)
{
_stprintf(buf,_T("%4d"),camp->AirToGround);
text->SetText(buf);
text->Refresh();
}
text = (C_Text *)win->FindControl(CAMP_STATIC_KILLS_FIELD);
if(text)
{
_stprintf(buf,_T("%4d"),camp->Static);
text->SetText(buf);
text->Refresh();
}
text = (C_Text *)win->FindControl(CAMP_NAVAL_KILLS_FIELD);
if(text)
{
_stprintf(buf,_T("%4d"),camp->Naval);
text->SetText(buf);
text->Refresh();
}
text = (C_Text *)win->FindControl(CAMP_DEATHS_FIELD);
if(text)
{
_stprintf(buf,_T("%4d"),camp->Killed);
text->SetText(buf);
text->Refresh();
}
//MEDALS_AFC
//MEDALS_AM
//MEDALS_DFC
//MEDALS_SS
//MEDALS_KC
int i;
//need to also do stars and oakleafs for multiple medals
int CurrMedal = MEDALS_AFC;
for(i = 0; i < NUM_MEDALS ;i++)
{
if(UI_logbk.Pilot.Medals[i])
{
button = (C_Button *)win->FindControl(CurrMedal);
if(button)
{
AwardDevices(win, CurrMedal, static_cast<uchar>(i), UI_logbk.Pilot.Medals[i]);
button->SetFlagBitOff(C_BIT_INVISIBLE);
button->SetState(static_cast<short>(i));
button->SetHelpText(gStringMgr->AddText(button->GetLabel(static_cast<short>(i))));
button->Refresh();
CurrMedal++;
}
}
}
for(i = CurrMedal;i<NUM_MEDALS + MEDALS_AFC ;i++)
{
button = (C_Button *)win->FindControl(i);
if(button)
{
AwardDevices(win, i, 0, 0);
button->SetFlagBitOn(C_BIT_INVISIBLE);
button->Refresh();
}
}
win->RefreshWindow();
}
}
//ID is the control which needs devices,
//Medal is which medal(so we know what kind of devices to use)
//Number is how times it has been awarded
void AwardDevices(C_Window *win,long ID, uchar Medal, uchar Number)
{
if(!win)
return;
int Awarded = 0;
int OakOrStar = DEV_OAK;
if(Medal == KOREA_CAMPAIGN)
OakOrStar = DEV_STAR;
C_Button *button;
int first_dev;
int device = (ID - MEDALS_AFC)*4 + MEDALS_AFC_DEVICE_1;
first_dev = device;
if(Number > 0)
Awarded++;
while(Number - Awarded > 4)
{
button = (C_Button *)win->FindControl(device++);
if(button)
{
button->SetFlagBitOff(C_BIT_INVISIBLE);
if(OakOrStar == DEV_OAK)
{
button->SetState(1);
button->Refresh();
}
else
{
button->SetState(3);
button->Refresh();
}
button->SetHelpText(gStringMgr->AddText("5"));
}
Awarded += 5;
}
if(Number > 9)
{
button = (C_Button *)win->FindControl(device++);
if(button)
{
button->SetFlagBitOff(C_BIT_INVISIBLE);
if(OakOrStar == DEV_OAK)
{
button->SetState(1);
button->Refresh();
}
else
{
button->SetState(3);
button->Refresh();
}
button->SetHelpText(gStringMgr->AddText("5"));
}
}
else
{
while(Number - Awarded)
{
button = (C_Button *)win->FindControl(device++);
if(button)
{
button->SetFlagBitOff(C_BIT_INVISIBLE);
if(OakOrStar == DEV_OAK)
{
button->SetState(0);
button->Refresh();
}
else
{
button->SetState(2);
button->Refresh();
}
button->SetHelpText(gStringMgr->AddText("1"));
}
Awarded++;
}
}
while( (device - first_dev) < 4)
{
button = (C_Button *)win->FindControl(device++);
if(button)
{
button->SetFlagBitOn(C_BIT_INVISIBLE);
button->Refresh();
}
}
}
void LoadTGACB(long,short hittype,C_Base *control)
{
C_EditBox * ebox;
_TCHAR fname[MAX_PATH];
long imageID;
if(hittype != C_TYPE_LMOUSEUP)
return;
gMainHandler->HideWindow(control->Parent_);
ebox=(C_EditBox*)control->Parent_->FindControl(FILE_NAME);
if(ebox)
{
_tcscpy(fname,ebox->GetText());
for(unsigned long i=0;i<_tcslen(fname);i++)
if(fname[i] == '.')
fname[i]=0;
if(fname[0] == 0)
return;
_TCHAR buf[MAX_PATH];
if(CurControl == PATCH_PIC)
{
imageID=CurPatch;
_stprintf(buf,_T("%s\\patches\\%s.tga"),FalconDataDirectory,fname);
}
else
{
imageID=CurPic;
_stprintf(buf,_T("%s\\pictures\\%s.tga"),FalconDataDirectory,fname);
}
if(SetImage(CurControl,buf, imageID))
{
if(CurControl==PATCH_PIC)
{
UI_logbk.SetPatch(fname);
UI_logbk.SetSquadron(fname);
C_Window *win;
win = gMainHandler->FindWindow(LOG_WIN);
if(win)
{
ebox=(C_EditBox*)win->FindControl(SQUADRON_NAME);
if(ebox)
{
ebox->SetText(fname);
ebox->Refresh();
}
}
}
else if(CurControl == PILOT_PIC)
UI_logbk.SetPicture(fname);
}
}
}
void LoadVirtualTGACB(long,short hittype,C_Base *control)
{
C_EditBox * ebox;
_TCHAR fname[MAX_PATH];
long imageID;
C_Resmgr *res;
if(hittype != C_TYPE_LMOUSEUP)
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -