📄 ato.cpp
字号:
if(((C_Button *)control)->GetState())
{
control->Parent_->HideCluster(control->GetUserNumber(C_STATE_0));
control->Parent_->UnHideCluster(control->GetUserNumber(C_STATE_1));
gATOAll->RecalcSize();
control->Parent_->ScanClientArea(gATOAll->GetClient());
control->Parent_->RefreshClient(gATOAll->GetClient());
}
else
{
control->Parent_->HideCluster(control->GetUserNumber(C_STATE_1));
control->Parent_->UnHideCluster(control->GetUserNumber(C_STATE_0));
gATOPackage->RecalcSize();
control->Parent_->ScanClientArea(gATOPackage->GetClient());
control->Parent_->RefreshClient(gATOPackage->GetClient());
}
}
void MakeIndividualATO(VU_ID flightID)
{
Flight flt;
Package pkg;
C_ATO_Flight *atoitem;
TREELIST *item;
F4CSECTIONHANDLE *Leave;
Leave=UI_Enter(gATOPackage->GetParent());
gATOPackage->DeleteBranch(gATOPackage->GetRoot());
flt=(Flight)vuDatabase->Find(flightID);
if(!flt)
{
UI_Leave(Leave);
return;
}
pkg=(Package)flt->GetUnitParent();
if(!pkg)
{
UI_Leave(Leave);
return;
}
flt=(Flight)pkg->GetFirstUnitElement();
if(flt)
{ // TE:Add Flight type, BOTH:add target as info items to root
}
while(flt)
{
atoitem=BuildATOFlightInfo(flt);
if(atoitem)
{
atoitem->SetMenu(UNIT_POP);
atoitem->SetCallback(SelectATOItemCB);
atoitem->SetFont(gATOPackage->GetFont());
item=gATOPackage->CreateItem(atoitem->GetID(),C_TYPE_ITEM,atoitem);
atoitem->SetOwner(item);
gATOPackage->AddItem(gATOPackage->GetRoot(),item);
}
flt=(Flight)pkg->GetNextUnitElement();
}
gATOPackage->RecalcSize();
if(gATOPackage->GetParent())
gATOPackage->GetParent()->RefreshClient(gATOPackage->GetClient());
UI_Leave(Leave);
}
C_ATO_Package *AddPackagetoATO(Package FltPkg)
{
C_ATO_Package *atopkg;
Flight MainFlt;
TREELIST *team;
TREELIST *missiontype;
TREELIST *package;
MissionTypeEnum mistype;
short AtoMiss;
C_Text *txt;
if(!FltPkg)
return(NULL);
if (!(TheCampaign.Flags & CAMP_TACTICAL_EDIT))
{
if(FltPkg->GetTeam() != FalconLocalSession->GetTeam())
return(NULL);
}
MainFlt=(Flight)FltPkg->GetFirstUnitElement();
if(!MainFlt)
return(NULL);
mistype=MainFlt->GetUnitMission();
if(mistype == AMIS_ABORT || mistype == AMIS_ALERT)
return(NULL);
if (TheCampaign.Flags & CAMP_TACTICAL_EDIT)
{
team=gATOAll->Find(FltPkg->GetTeam() | 0x20000000);
if(!team)
{
txt=new C_Text;
txt->Setup(FltPkg->GetTeam() | 0x20000000,0);
txt->SetText(TeamInfo[FltPkg->GetTeam()]->GetName());
txt->SetFont(gATOAll->GetParent()->Font_);
team=gATOAll->CreateItem(FltPkg->GetTeam() | 0x20000000,C_TYPE_ROOT,txt);
gATOAll->AddItem(gATOAll->GetRoot(),team);
}
}
else
team=gATOAll->GetRoot();
atopkg=NULL;
mistype=MainFlt->GetUnitMission();
if(mistype == AMIS_BARCAP2)
mistype = AMIS_BARCAP;
AtoMiss = static_cast<short>(MissionToATOMiss(mistype));
missiontype=gATOAll->Find(AtoMiss | 0x40000000 | (FltPkg->GetTeam() << 16));
if(!missiontype)
{
txt=new C_Text;
txt->Setup(mistype | 0x40000000,0);
txt->SetText(AtoMissStr[AtoMiss]);
txt->SetFont(gATOAll->GetParent()->Font_);
missiontype=gATOAll->CreateItem(AtoMiss | 0x40000000 | (FltPkg->GetTeam() << 16),C_TYPE_MENU,txt);
if (TheCampaign.Flags & CAMP_TACTICAL_EDIT)
gATOAll->AddChildItem(team,missiontype);
else
gATOAll->AddItem(team,missiontype);
}
atopkg=BuildATOPackageInfo(FltPkg);
if(atopkg)
{
atopkg->SetFont(gATOAll->GetParent()->Font_);
atopkg->SetCallback(SelectATOPackageCB);
package=gATOAll->CreateItem(atopkg->GetID(),C_TYPE_MENU,atopkg);
if(package)
{
atopkg->SetOwner(package);
gATOAll->AddChildItem(missiontype,package);
}
return(atopkg);
}
return(NULL);
}
C_ATO_Flight *AddFlighttoATO(Flight flt)
{
C_ATO_Flight *atoitem;
Package FltPkg;
TREELIST *item;
TREELIST *package;
if (!(TheCampaign.Flags & CAMP_TACTICAL_EDIT))
{
if(flt->GetTeam() != FalconLocalSession->GetTeam())
return(NULL);
}
if(flt->GetUnitMission() == AMIS_ALERT || flt->GetUnitMission() == AMIS_ABORT)
return(NULL);
if(!flt->GetUnitParent())
return(NULL);
FltPkg=(Package)flt->GetUnitParent();
if(!FltPkg)
return(NULL);
package=gATOAll->Find(FltPkg->GetCampID());
if(package)
{
atoitem=BuildATOFlightInfo(flt);
if(atoitem)
{
atoitem->SetMenu(UNIT_POP);
atoitem->SetCallback(SelectATOItemCB);
atoitem->SetFont(gATOAll->GetFont());
item=gATOAll->CreateItem(atoitem->GetID(),C_TYPE_ITEM,atoitem);
atoitem->SetOwner(item);
gATOAll->AddChildItem(package,item);
return(atoitem);
}
}
return(NULL);
}
#if 0
OLD WAY
C_ATO_Flight *AddtoATO(Flight flt)
{
C_ATO_Flight *atoitem;
C_ATO_Package *atopkg;
Package FltPkg;
Flight MainFlt;
TREELIST *item;
TREELIST *team;
TREELIST *missiontype;
TREELIST *package;
short mistype,AtoMiss;
C_Text *txt;
if (!(TheCampaign.Flags & CAMP_TACTICAL_EDIT))
{
if(flt->GetTeam() != FalconLocalSession->GetTeam())
return(NULL);
}
if(flt->GetUnitMission() == AMIS_ALERT || flt->GetUnitMission() == AMIS_ABORT)
return(NULL);
if(!flt->GetUnitParent())
return(NULL);
FltPkg=(Package)flt->GetUnitParent();
MainFlt=(Flight)FltPkg->GetFirstUnitElement();
if(!MainFlt)
return(NULL);
mistype=MainFlt->GetUnitMission();
if(mistype == AMIS_ABORT || mistype == AMIS_ALERT)
return(NULL);
atoitem=BuildATOFlightInfo(flt);
if(atoitem)
{
atoitem->SetMenu(UNIT_POP);
atoitem->SetCallback(SelectATOItemCB);
atoitem->SetFont(gATOAll->GetFont());
if (TheCampaign.Flags & CAMP_TACTICAL_EDIT)
{
team=gATOAll->Find(flt->GetTeam() | 0x20000000);
if(!team)
{
txt=new C_Text;
txt->Setup(flt->GetTeam() | 0x20000000,0);
txt->SetText(TeamInfo[flt->GetTeam()]->GetName());
txt->SetFont(gATOAll->GetParent()->Font_);
team=gATOAll->CreateItem(flt->GetTeam() | 0x20000000,C_TYPE_ROOT,txt);
gATOAll->AddItem(gATOAll->GetRoot(),team);
}
}
else
team=gATOAll->GetRoot();
mistype=MainFlt->GetUnitMission();
package=gATOAll->Find(flt->GetUnitParent()->GetCampID() | (mistype << 16));
if(!package)
{
AtoMiss = MissionToATOMiss(mistype);
missiontype=gATOAll->Find(AtoMiss | 0x40000000 | (flt->GetTeam() << 16));
if(!missiontype)
{
txt=new C_Text;
txt->Setup(mistype | 0x40000000,0);
txt->SetText(AtoMissStr[AtoMiss]);
txt->SetFont(gATOAll->GetParent()->Font_);
missiontype=gATOAll->CreateItem(AtoMiss | 0x40000000 | (flt->GetTeam() << 16),C_TYPE_MENU,txt);
if (TheCampaign.Flags & CAMP_TACTICAL_EDIT)
gATOAll->AddChildItem(team,missiontype);
else
gATOAll->AddItem(team,missiontype);
}
if(mistype == AMIS_BARCAP2)
mistype == AMIS_BARCAP;
atopkg=BuildATOPackageInfo(FltPkg);
if(atopkg)
{
atopkg->SetFont(gATOAll->GetParent()->Font_);
atopkg->SetCallback(SelectATOPackageCB);
package=gATOAll->CreateItem(atopkg->GetID() | (mistype << 16),C_TYPE_MENU,atopkg);
gATOAll->AddChildItem(missiontype,package);
}
else
package=team;
}
item=gATOAll->CreateItem(atoitem->GetID(),C_TYPE_ITEM,atoitem);
atoitem->SetOwner(item);
gATOAll->AddChildItem(package,item);
}
return(atoitem);
}
C_ATO_Package *AddPackagetoATO(Package FltPkg)
{
C_ATO_Package *atopkg;
Flight MainFlt;
TREELIST *team;
TREELIST *missiontype;
TREELIST *package;
short mistype,AtoMiss;
C_Text *txt;
if(!FltPkg)
return(NULL);
if(!FltPkg->Final())
return(NULL);
if (!(TheCampaign.Flags & CAMP_TACTICAL_EDIT))
{
if(FltPkg->GetTeam() != FalconLocalSession->GetTeam())
return(NULL);
}
MainFlt=(Flight)FltPkg->GetFirstUnitElement();
if(!MainFlt)
return(NULL);
mistype=MainFlt->GetUnitMission();
if(mistype == AMIS_ABORT || mistype == AMIS_ALERT)
return(NULL);
if (TheCampaign.Flags & CAMP_TACTICAL_EDIT)
{
team=gATOAll->Find(FltPkg->GetTeam() | 0x20000000);
if(!team)
{
txt=new C_Text;
txt->Setup(FltPkg->GetTeam() | 0x20000000,0);
txt->SetText(TeamInfo[FltPkg->GetTeam()]->GetName());
txt->SetFont(gATOAll->GetParent()->Font_);
team=gATOAll->CreateItem(FltPkg->GetTeam() | 0x20000000,C_TYPE_ROOT,txt);
gATOAll->AddItem(gATOAll->GetRoot(),team);
}
}
else
team=gATOAll->GetRoot();
atopkg=NULL;
mistype=MainFlt->GetUnitMission();
package=gATOAll->Find(FltPkg->GetCampID() | (mistype << 16));
if(!package)
{
AtoMiss = MissionToATOMiss(mistype);
missiontype=gATOAll->Find(AtoMiss | 0x40000000 | (FltPkg->GetTeam() << 16));
if(!missiontype)
{
txt=new C_Text;
txt->Setup(mistype | 0x40000000,0);
txt->SetText(AtoMissStr[AtoMiss]);
txt->SetFont(gATOAll->GetParent()->Font_);
missiontype=gATOAll->CreateItem(AtoMiss | 0x40000000 | (FltPkg->GetTeam() << 16),C_TYPE_MENU,txt);
if (TheCampaign.Flags & CAMP_TACTICAL_EDIT)
gATOAll->AddChildItem(team,missiontype);
else
gATOAll->AddItem(team,missiontype);
}
if(mistype == AMIS_BARCAP2)
mistype == AMIS_BARCAP;
atopkg=BuildATOPackageInfo(FltPkg);
if(atopkg)
{
atopkg->SetFont(gATOAll->GetParent()->Font_);
atopkg->SetCallback(SelectATOPackageCB);
package=gATOAll->CreateItem(atopkg->GetID() | (mistype << 16),C_TYPE_MENU,atopkg);
gATOAll->AddChildItem(missiontype,package);
}
}
else
atopkg=(C_ATO_Package*)package->Item_;
return(atopkg);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -