📄 campmenu.cpp
字号:
icon=(C_MapIcon *)caller;
iconid=icon->GetIconID();
urec=(UI_Refresher *)gGps->Find(iconid);
}
else if(caller->_GetCType_() == _CNTL_DRAWLIST_)
{
piggy=(C_DrawList *)caller;
iconid=piggy->GetIconID();
urec=(UI_Refresher *)gGps->Find(iconid);
}
else if(caller->_GetCType_() == _CNTL_TREELIST_)
{
tree=(C_TreeList *)caller;
item=tree->GetLastItem();
if(item)
{
iconid=item->ID_;
urec=(UI_Refresher *)gGps->Find(item->ID_ & 0x00ffffff); // strip off team (incase it is a division)
}
}
if(urec)
{
tactical_edit_package(urec->GetID(),control);
}
}
void MenuSetOwnerCB(long ID,short,C_Base *)
{
C_Base *caller;
C_MapIcon *icon;
C_DrawList *piggy;
C_TreeList *tree;
long iconid;
TREELIST *item;
UI_Refresher *urec;
urec = NULL;
caller = gPopupMgr->GetCallingControl ();
if(caller == NULL)
{
return;
}
gPopupMgr->CloseMenu ();
if (caller->_GetCType_() == _CNTL_MAPICON_)
{
icon = (C_MapIcon *) caller;
iconid = icon->GetIconID ();
urec = (UI_Refresher *) gGps->Find (iconid);
}
else if (caller->_GetCType_() == _CNTL_DRAWLIST_)
{
piggy = (C_DrawList *) caller;
iconid = piggy->GetIconID ();
urec = (UI_Refresher *) gGps->Find (iconid);
}
else if (caller->_GetCType_() == _CNTL_TREELIST_)
{
tree = (C_TreeList *) caller;
item = tree->GetLastItem ();
if (item)
{
urec = (UI_Refresher *) gGps->Find (item->ID_);
}
}
if(urec)
{
CampEntity ent;
short teamid=0;
switch(ID)
{
case MID_TEAM_1:
teamid=1;
break;
case MID_TEAM_2:
teamid=2;
break;
case MID_TEAM_3:
teamid=3;
break;
case MID_TEAM_4:
teamid=4;
break;
case MID_TEAM_5:
teamid=5;
break;
case MID_TEAM_6:
teamid=6;
break;
case MID_TEAM_7:
teamid=7;
break;
default:
teamid=0;
break;
}
ent=(CampEntity)vuDatabase->Find(urec->GetID());
if(ent)
{
ent->SetOwner(static_cast<uchar>(teamid));
}
}
}
void MenuAddUnitCB(long ID,short,C_Base *control)
{
C_Base *caller;
C_MapIcon *icon;
C_DrawList *piggy;
C_TreeList *tree;
long iconid;
TREELIST *item;
UI_Refresher *urec;
VU_ID vid = FalconNullId;
urec = NULL;
caller = gPopupMgr->GetCallingControl ();
if(!caller)
return;
if (caller->_GetCType_() == _CNTL_MAPICON_)
{
icon = (C_MapIcon *) caller;
iconid = icon->GetIconID ();
urec = (UI_Refresher *) gGps->Find (iconid);
vid = urec->GetID();
}
else if (caller->_GetCType_() == _CNTL_DRAWLIST_)
{
piggy = (C_DrawList *) caller;
iconid = piggy->GetIconID ();
urec = (UI_Refresher *) gGps->Find (iconid);
vid = urec->GetID();
}
else if (caller->_GetCType_() == _CNTL_TREELIST_)
{
tree = (C_TreeList *) caller;
item = tree->GetLastItem ();
if (item)
{
urec = (UI_Refresher *) gGps->Find (item->ID_);
vid = urec->GetID();
}
}
switch (ID)
{
case MID_ADD_FLIGHT:
tactical_add_flight (vid,control);
break;
case MID_ADD_PACKAGE:
tactical_add_package (vid,control);
break;
case MID_ADD_BATTALION:
tactical_add_battalion (vid,control);
break;
case MID_ADD_SQUADRON:
tactical_add_squadron (vid);
break;
}
gPopupMgr->CloseMenu ();
}
void MenuAddVCCB(long, short, C_Base *)
{
C_Base *caller;
C_MapIcon *icon;
C_DrawList *piggy;
C_TreeList *tree;
long iconid;
TREELIST *item;
UI_Refresher *urec;
urec = NULL;
caller = gPopupMgr->GetCallingControl ();
if(caller == NULL)
{
return;
}
if (caller->_GetCType_() == _CNTL_MAPICON_)
{
icon = (C_MapIcon *) caller;
iconid = icon->GetIconID ();
urec = (UI_Refresher *) gGps->Find (iconid);
}
else if (caller->_GetCType_() == _CNTL_DRAWLIST_)
{
piggy = (C_DrawList *) caller;
iconid = piggy->GetIconID ();
urec = (UI_Refresher *) gGps->Find (iconid);
}
else if (caller->_GetCType_() == _CNTL_TREELIST_)
{
tree = (C_TreeList *) caller;
item = tree->GetLastItem ();
if (item)
{
urec = (UI_Refresher *) gGps->Find (item->ID_);
}
}
tactical_add_victory_condition (urec->GetID (),NULL);
gPopupMgr->CloseMenu ();
}
void SetMapSettings()
{
C_PopupList *menu;
menu=gPopupMgr->GetMenu(MAP_POP);
if(menu)
{
// Legend stuff
MenuToggleNamesCB(MID_LEG_NAMES,C_TYPE_LMOUSEUP,menu);
MenuToggleBullseyeCB(MID_LEG_BULLSEYE,C_TYPE_LMOUSEUP,menu);
// Objectives
MenuToggleObjectiveCB(MID_INST_AF,C_TYPE_LMOUSEUP,menu);
MenuToggleObjectiveCB(MID_INST_AD,C_TYPE_LMOUSEUP,menu);
MenuToggleObjectiveCB(MID_INST_ARMY,C_TYPE_LMOUSEUP,menu);
MenuToggleObjectiveCB(MID_INST_CCC,C_TYPE_LMOUSEUP,menu);
MenuToggleObjectiveCB(MID_INST_POLITICAL,C_TYPE_LMOUSEUP,menu);
MenuToggleObjectiveCB(MID_INST_INFRA,C_TYPE_LMOUSEUP,menu);
MenuToggleObjectiveCB(MID_INST_LOG,C_TYPE_LMOUSEUP,menu);
MenuToggleObjectiveCB(MID_INST_WARPROD,C_TYPE_LMOUSEUP,menu);
MenuToggleObjectiveCB(MID_INST_NAV,C_TYPE_LMOUSEUP,menu);
MenuToggleObjectiveCB(MID_INST_OTHER,C_TYPE_LMOUSEUP,menu);
MenuToggleObjectiveCB(MID_INST_NAVAL,C_TYPE_LMOUSEUP,menu);
MenuToggleObjectiveCB(MID_SHOW_VC,C_TYPE_LMOUSEUP,menu);
// Units
MenuToggleUnitCB(MID_UNITS_SQUAD_SQUADRON,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_SQUAD_PACKAGE,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_DIV,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_BRIG,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_BAT,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_COMBAT,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_AD,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_SUPPORT,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_SQUAD_FIGHTER,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_SQUAD_FIGHTBOMB,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_SQUAD_ATTACK,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_SQUAD_BOMBER,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_SQUAD_SUPPORT,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_SQUAD_HELI,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_NAVY_COMBAT,C_TYPE_LMOUSEUP,menu);
MenuToggleUnitCB(MID_UNITS_NAVY_SUPPLY,C_TYPE_LMOUSEUP,menu);
// Sams/Radar
MenuSetCirclesCB(MID_OFF,C_TYPE_LMOUSEUP,menu);
}
}
void SetupCampaignMenus()
{
C_PopupList *menu;
GameType=1;
EditMode=0;
// Map Menu
menu=gPopupMgr->GetMenu(MAP_POP);
if(menu)
{
menu->SetItemFlagBitOn(MID_ADD_FLIGHT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_PACKAGE,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_BATTALION,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_SHOW_VC,C_BIT_INVISIBLE);
}
// Objective Menu
menu=gPopupMgr->GetMenu(OBJECTIVE_POP);
if(menu)
{
menu->SetItemFlagBitOn(MID_ADD_FLIGHT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_PACKAGE,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_BATTALION,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_VC,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_SET_OWNER,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_SQUADRONS,C_BIT_INVISIBLE);
}
// Unit Menu
menu=gPopupMgr->GetMenu(UNIT_POP);
if(menu)
{
menu->SetItemFlagBitOn(MID_DELETE_UNIT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_FLIGHT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_PACKAGE,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_BATTALION,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_VC,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_SET_OWNER,C_BIT_INVISIBLE);
}
// Unit Menu
menu=gPopupMgr->GetMenu(NAVAL_POP);
if(menu)
{
menu->SetItemFlagBitOn(MID_DELETE_UNIT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_FLIGHT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_PACKAGE,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_BATTALION,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_VC,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_SET_OWNER,C_BIT_INVISIBLE);
}
// Unit Menu
menu=gPopupMgr->GetMenu(AIRUNIT_MENU);
if(menu)
{
menu->SetItemFlagBitOn(MID_DELETE_UNIT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_FLIGHT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_PACKAGE,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_VC,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_SET_OWNER,C_BIT_INVISIBLE);
}
// Package Menu
menu=gPopupMgr->GetMenu(PACKAGE_POP);
if(menu)
{
menu->SetItemFlagBitOn(MID_DELETE_UNIT,C_BIT_INVISIBLE);
}
}
// Mode 0=Play,1=Edit)
void SetupTacEngMenus(short Mode)
{
C_PopupList *menu;
GameType=2;
EditMode=Mode;
// Map Menu
menu=gPopupMgr->GetMenu(MAP_POP);
if(menu)
{
menu->SetItemFlagBitOff(MID_ADD_FLIGHT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOff(MID_ADD_PACKAGE,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_FLIGHT,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_PACKAGE,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_SHOW_VC,C_BIT_INVISIBLE);
}
// Objective Menu
menu=gPopupMgr->GetMenu(OBJECTIVE_POP);
if(menu)
{
menu->SetItemFlagBitOff(MID_ADD_FLIGHT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOff(MID_ADD_PACKAGE,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_FLIGHT,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_PACKAGE,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_ADD_VC,C_BIT_INVISIBLE);
menu->SetItemFlagBitOff(MID_SET_OWNER,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_SQUADRONS,C_BIT_INVISIBLE);
if(EditMode)
{
menu->SetItemFlagBitOn(MID_ADD_VC,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_SET_OWNER,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_ADD_BATTALION,C_BIT_INVISIBLE);
}
else
{
menu->SetItemFlagBitOff(MID_ADD_VC,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_SET_OWNER,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_BATTALION,C_BIT_INVISIBLE);
}
}
// Unit Menu
menu=gPopupMgr->GetMenu(UNIT_POP);
if(menu)
{
menu->SetItemFlagBitOff(MID_ADD_FLIGHT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOff(MID_ADD_PACKAGE,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_FLIGHT,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_PACKAGE,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_DELETE_UNIT,C_BIT_INVISIBLE);
if(EditMode)
{
menu->SetItemFlagBitOn(MID_DELETE_UNIT,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_VC,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_SET_OWNER,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_ADD_BATTALION,C_BIT_INVISIBLE);
}
else
{
menu->SetItemFlagBitOff(MID_DELETE_UNIT,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_ADD_VC,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_SET_OWNER,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_BATTALION,C_BIT_INVISIBLE);
}
}
// Unit Menu
menu=gPopupMgr->GetMenu(NAVAL_POP);
if(menu)
{
menu->SetItemFlagBitOff(MID_ADD_FLIGHT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOff(MID_ADD_PACKAGE,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_FLIGHT,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_PACKAGE,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_DELETE_UNIT,C_BIT_INVISIBLE);
if(EditMode)
{
menu->SetItemFlagBitOn(MID_DELETE_UNIT,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_VC,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_SET_OWNER,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_ADD_BATTALION,C_BIT_INVISIBLE);
}
else
{
menu->SetItemFlagBitOff(MID_DELETE_UNIT,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_ADD_VC,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_SET_OWNER,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_BATTALION,C_BIT_INVISIBLE);
}
}
// Unit Menu
menu=gPopupMgr->GetMenu(AIRUNIT_MENU);
if(menu)
{
menu->SetItemFlagBitOff(MID_ADD_FLIGHT,C_BIT_INVISIBLE);
menu->SetItemFlagBitOff(MID_ADD_PACKAGE,C_BIT_INVISIBLE);
menu->SetItemFlagBitOn(MID_ADD_FLIGHT,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_PACKAGE,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_DELETE_UNIT,C_BIT_INVISIBLE);
if(EditMode)
{
menu->SetItemFlagBitOn(MID_DELETE_UNIT,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_VC,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_SET_OWNER,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_ADD_BATTALION,C_BIT_INVISIBLE);
}
else
{
menu->SetItemFlagBitOff(MID_DELETE_UNIT,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_ADD_VC,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_SET_OWNER,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_ADD_BATTALION,C_BIT_INVISIBLE);
}
}
// Package Menu
menu=gPopupMgr->GetMenu(PACKAGE_POP);
if(menu)
{
menu->SetItemFlagBitOff(MID_DELETE_UNIT,C_BIT_INVISIBLE);
if(EditMode)
menu->SetItemFlagBitOn(MID_DELETE_UNIT,C_BIT_ENABLED);
else
menu->SetItemFlagBitOff(MID_DELETE_UNIT,C_BIT_ENABLED);
}
// VC Menu
menu=gPopupMgr->GetMenu(VC_POP);
if(menu)
{
if(EditMode)
{
menu->SetItemFlagBitOn(MID_DELETE_UNIT,C_BIT_ENABLED);
menu->SetItemFlagBitOn(MID_SET_OWNER,C_BIT_ENABLED);
}
else
{
menu->SetItemFlagBitOff(MID_DELETE_UNIT,C_BIT_ENABLED);
menu->SetItemFlagBitOff(MID_SET_OWNER,C_BIT_ENABLED);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -