📄 te_team.cpp
字号:
TeamInfo[gSelectedTeam]->stance[tid] = War;
}
}
UpdateBigMapColors(gSelectedTeam);
SetupTeamData();
SetupCurrentTeamValues(gSelectedTeam);
SetupTeamListValues();
UpdateOccupationMap();
update_team_victory_window ();
}
else
{// Error Message No more teams available
}
}
static void RemoveTeamCB(long,short hittype,C_Base *)
{
short i,TeamCount,new_owner;
CampBaseClass *entity;
VuListIterator eit(AllCampList);
if(hittype != C_TYPE_LMOUSEUP)
return;
TeamCount=0;
for(i=0;i<NUM_TEAMS;i++)
{
if(TeamInfo[i] && (TeamInfo[i]->flags & TEAM_ACTIVE))
TeamCount++;
}
if(TeamCount < 2)
{
// Error, you need at least 1 team
return;
}
if(TeamInfo[gSelectedTeam])
{
FlagImageID[TeamInfo[gSelectedTeam]->GetFlag()][FLAG_STATUS]=0;
TeamColorUse[TeamInfo[gSelectedTeam]->GetColor()]=0;
RemoveTeam(gSelectedTeam);
UpdateBigMapColors(gSelectedTeam);
TeamCount=gSelectedTeam;
i=0;
while(!i)
{
gSelectedTeam--;
if(gSelectedTeam < 1)
gSelectedTeam=NUM_TEAMS-1;
if(TeamInfo[gSelectedTeam] || gSelectedTeam == TeamCount)
i=1;
}
if (FalconLocalSession->GetTeam() == gSelectedTeam)
{
FalconLocalSession->SetCountry(255);
for (i=0; i<NUM_TEAMS; i++)
{
if (TeamInfo[i])
FalconLocalSession->SetCountry(static_cast<uchar>(i));
}
}
SetupTeamData();
gDrawTeam=i;
SetupCurrentTeamValues(gSelectedTeam);
SetupTeamListValues();
update_team_victory_window ();
}
// Pick a team to give all our stuff to.
for (i=7; i<NUM_TEAMS && !TeamInfo[i]; i--);
new_owner = i;
entity = (CampBaseClass*) eit.GetFirst();
while (entity)
{
entity->SetOwner(static_cast<uchar>(new_owner));
if (entity->IsObjective())
((Objective)entity)->SetObjectiveOldown(static_cast<uchar>(new_owner));
entity = (CampBaseClass*) eit.GetNext();
}
}
static void ChoosePrevFlag(long,short hittype,C_Base *)
{
short oldFlag,newflag,done;
if(hittype != C_TYPE_LMOUSEUP)
return;
oldFlag=static_cast<short>(TeamInfo[gSelectedTeam]->GetFlag());
newflag=oldFlag;
done=0;
while(!done)
{
newflag--;
if(newflag < 1)
newflag+=TOTAL_FLAGS;
if(!FlagImageID[newflag][FLAG_STATUS])
done=1;
}
FlagImageID[newflag][FLAG_STATUS]=1;
FlagImageID[oldFlag][FLAG_STATUS]=0;
TeamInfo[gSelectedTeam]->SetFlag(static_cast<uchar>(newflag));
SetupCurrentTeamValues(gSelectedTeam);
SetupTeamListValues();
SetupTeamFlags();
}
static void ChooseNextFlag(long,short hittype,C_Base *)
{
short oldFlag,newflag,done;
if(hittype != C_TYPE_LMOUSEUP)
return;
oldFlag=static_cast<short>(TeamInfo[gSelectedTeam]->GetFlag());
FlagImageID[oldFlag][FLAG_STATUS]=0;
newflag=oldFlag;
done=0;
while(!done)
{
newflag++;
if(newflag >= TOTAL_FLAGS)
newflag=1;
if(!FlagImageID[newflag][FLAG_STATUS])
done=1;
}
FlagImageID[newflag][FLAG_STATUS]=1;
TeamInfo[gSelectedTeam]->SetFlag(static_cast<uchar>(newflag));
SetupCurrentTeamValues(gSelectedTeam);
SetupTeamListValues();
SetupTeamFlags();
}
static void ChoosePrevColor(long,short hittype,C_Base *)
{
short oldcolor,newcolor,done;
if(hittype != C_TYPE_LMOUSEUP)
return;
oldcolor=static_cast<short>(TeamInfo[gSelectedTeam]->GetColor());
TeamColorUse[oldcolor]=0;
newcolor=oldcolor;
done=0;
while(!done)
{
newcolor--;
if(newcolor < 1)
newcolor=NUM_TEAMS-1;
if(!TeamColorUse[newcolor])
done=1;
}
TeamColorUse[newcolor]=1;
TeamInfo[gSelectedTeam]->SetColor(static_cast<uchar>(newcolor));
UpdateBigMapColors(gSelectedTeam);
UpdateOccupationMap();
SetupCurrentTeamValues(gSelectedTeam);
SetupTeamListValues();
}
static void ChooseNextColor(long,short hittype,C_Base *)
{
short oldcolor,newcolor,done;
if(hittype != C_TYPE_LMOUSEUP)
return;
oldcolor=static_cast<short>(TeamInfo[gSelectedTeam]->GetColor());
TeamColorUse[oldcolor]=0;
newcolor=oldcolor;
done=0;
while(!done)
{
newcolor++;
if(newcolor >= NUM_TEAMS)
newcolor=1;
if(!TeamColorUse[newcolor])
done=1;
}
TeamColorUse[newcolor]=1;
TeamInfo[gSelectedTeam]->SetColor(static_cast<uchar>(newcolor));
UpdateBigMapColors(gSelectedTeam);
UpdateOccupationMap();
SetupCurrentTeamValues(gSelectedTeam);
SetupTeamListValues();
SetupTeamColors();
}
void ChooseTeamCB(long,short hittype,C_Base *base)
{
C_Window *win;
C_Button *btn;
C_Line *line;
if(hittype != C_TYPE_LMOUSEUP)
return;
gSelectedTeam=static_cast<uchar>(base->GetUserNumber(0));
if(gSelectedTeam < 1 || gSelectedTeam >= NUM_TEAMS)
gSelectedTeam=1;
gDrawTeam=gSelectedTeam;
SetupCurrentTeamValues(gSelectedTeam);
SetupTeamListValues();
// Set team # on Map Windows (TEAM_SELECTOR)
FalconLocalSession->SetCountry(gSelectedTeam);
win=gMainHandler->FindWindow(TAC_EDIT_WIN);
if(win)
{
btn=(C_Button*)win->FindControl(TEAM_SELECTOR);
if(btn)
{
btn->SetState(gSelectedTeam);
btn->Refresh();
}
line=(C_Line*)win->FindControl(TEAM_COLOR);
if(line)
{
line->SetColor(TeamColorList[TeamInfo[gSelectedTeam]->GetColor()]);
line->Refresh();
}
}
win=gMainHandler->FindWindow(TAC_PUA_MAP);
if(win)
{
btn=(C_Button*)win->FindControl(TEAM_SELECTOR);
if(btn)
{
btn->SetState(gSelectedTeam);
btn->Refresh();
}
line=(C_Line*)win->FindControl(TEAM_COLOR);
if(line)
{
line->SetColor(TeamColorList[TeamInfo[gSelectedTeam]->GetColor()]);
line->Refresh();
}
}
win=gMainHandler->FindWindow(TAC_FULLMAP_WIN);
if(win)
{
btn=(C_Button*)win->FindControl(TEAM_SELECTOR);
if(btn)
{
btn->SetState(gSelectedTeam);
btn->Refresh();
}
line=(C_Line*)win->FindControl(TEAM_COLOR);
if(line)
{
line->SetColor(TeamColorList[TeamInfo[gSelectedTeam]->GetColor()]);
line->Refresh();
}
}
}
static void SetTeamNameCB(long,short hittype,C_Base *base)
{
C_EditBox *ebox;
if(hittype != DIK_RETURN && hittype)
return;
ebox=(C_EditBox*)base;
if(ebox && TeamInfo[gSelectedTeam])
TeamInfo[gSelectedTeam]->SetName(ebox->GetText());
UpdateTeamName(gSelectedTeam);
SetupTeamNames();
}
static void SetTeamStatementCB(long,short hittype,C_Base *base)
{
C_EditBox *ebox;
if(hittype != DIK_RETURN)
return;
ebox=(C_EditBox*)base;
if(ebox && TeamInfo[gSelectedTeam])
TeamInfo[gSelectedTeam]->SetMotto(ebox->GetText());
}
void Hookup_Team_Win(C_Window *win)
{
C_Base *base;
if(win)
{
if(win->GetID() != TAC_TEAM_WIN)
return;
base=win->FindControl(TAC_MAP_TE);
if(base)
base->SetCallback(tactical_territory_map_edit);
base=win->FindControl(DRAW_TERRITORY);
if(base)
base->SetCallback(tactical_set_drawmode);
base=win->FindControl(ERASE_TERRITORY);
if(base)
base->SetCallback(tactical_set_erasemode);
base=win->FindControl(CLEAR_TERRITORY);
if(base)
base->SetCallback(tactical_territory_editor_clear);
base=win->FindControl(UNDO_TERRITORY);
if(base)
base->SetCallback(tactical_territory_editor_restore);
base=win->FindControl(GROUP1_FLAG);
if(base)
base->SetCallback(ChooseTeamCB);
base=win->FindControl(GROUP2_FLAG);
if(base)
base->SetCallback(ChooseTeamCB);
base=win->FindControl(GROUP3_FLAG);
if(base)
base->SetCallback(ChooseTeamCB);
base=win->FindControl(GROUP4_FLAG);
if(base)
base->SetCallback(ChooseTeamCB);
base=win->FindControl(GROUP5_FLAG);
if(base)
base->SetCallback(ChooseTeamCB);
base=win->FindControl(GROUP6_FLAG);
if(base)
base->SetCallback(ChooseTeamCB);
base=win->FindControl(GROUP7_FLAG);
if(base)
base->SetCallback(ChooseTeamCB);
base=win->FindControl(GROUP8_FLAG);
if(base)
base->SetCallback(ChooseTeamCB);
base=win->FindControl(TAC_NEW);
if(base)
base->SetCallback(MakeNewTeamCB);
base=win->FindControl(TAC_DELETE_TEAM);
if(base)
base->SetCallback(RemoveTeamCB);
base=win->FindControl(CURRENT_NAME);
if(base)
base->SetCallback(SetTeamNameCB);
base=win->FindControl(MISSION_STATEMENT);
if(base)
base->SetCallback(SetTeamStatementCB);
base=win->FindControl(PREV_FLAG);
if(base)
base->SetCallback(ChoosePrevFlag);
base=win->FindControl(NEXT_FLAG);
if(base)
base->SetCallback(ChooseNextFlag);
base=win->FindControl(PREV_COLOR);
if(base)
base->SetCallback(ChoosePrevColor);
base=win->FindControl(NEXT_COLOR);
if(base)
base->SetCallback(ChooseNextColor);
base=win->FindControl(PILOT_SKILL);
if(base)
base->SetCallback(NULL);
base=win->FindControl(SAM_SKILL);
if(base)
base->SetCallback(NULL);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -