📄 te_map.cpp
字号:
MapX = SimToGrid (mx);
MapY = SimToGrid (my);
switch(CurMapTool->GetID())
{
case ADD_FLIGHT: // Click anywhere on the map to add a flight
tactical_add_flight(FalconNullId,control);
break;
case ADD_PACKAGE: // Click anywhere on the map to add a package?
tactical_add_package(FalconNullId,control);
break;
case ADD_BATTALION: // Click anywhere on the map to add a unit
tactical_add_battalion(FalconNullId,control);
break;
case ADD_NAVAL: // Click anywhere on the map to add a unit
break;
case ADD_SQUADRON: // Click on an airbase to add a squadron
break;
case COPY_UNIT: // Pick a unit to copy
break;
case DELETE_UNIT: // Pick a unit to delete
break;
case EDIT_UNIT: // Pick a unit to edit
break;
}
}
}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
static void gMapMgr_zoom_in (long, short hittype, C_Base *ctrl)
{
F4CSECTIONHANDLE *Leave;
if ((hittype != C_TYPE_LMOUSEUP) && (hittype != C_TYPE_REPEAT))
return;
Leave=UI_Enter(ctrl->Parent_);
gMapMgr->ZoomIn();
gMapMgr->DrawMap();
UI_Leave(Leave);
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
static void gMapMgr_zoom_out (long, short hittype, C_Base *ctrl)
{
F4CSECTIONHANDLE *Leave;
if ((hittype != C_TYPE_LMOUSEUP) && (hittype != C_TYPE_REPEAT))
return;
Leave=UI_Enter(ctrl->Parent_);
gMapMgr->ZoomOut();
gMapMgr->DrawMap();
UI_Leave(Leave);
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void gMapMgr_menu (long ID, short hittype, C_Base *control)
{
int
objective = -1,
zoom;
if (hittype != C_TYPE_LMOUSEUP)
{
return;
}
switch (ID)
{
case MID_RECON:
{
//MonoPrint ("Map Menu Recon\n");
gPopupMgr->CloseMenu ();
break;
}
case MID_ADD_BATTALION:
{
tactical_add_battalion (FalconNullId,control);
gPopupMgr->CloseMenu ();
break;
}
case MID_ADD_PACKAGE:
{
tactical_add_package (FalconNullId,control);
gPopupMgr->CloseMenu ();
break;
}
case MID_ZOOM_IN:
{
zoom = gMapMgr->GetZoomLevel ();
if (zoom >= 64) // MAX_ZOOM_LEVEL
{
return;
}
zoom *= 2;
//MonoPrint ("Zoom In %d\n", zoom);
gMapMgr->SetZoomLevel(static_cast<short>(zoom));
gMapMgr->DrawMap();
gPopupMgr->CloseMenu();
break;
}
case MID_ZOOM_OUT:
{
zoom = gMapMgr->GetZoomLevel ();
if (zoom <= 1) // MAX_ZOOM_LEVEL
{
return;
}
zoom /= 2;
//MonoPrint ("Zoom In %d\n", zoom);
gMapMgr->SetZoomLevel (static_cast<short>(zoom));
gMapMgr->DrawMap ();
gPopupMgr->CloseMenu ();
break;
}
case MID_INST_AF: objective = _OBTV_AIR_FIELDS; break;
case MID_INST_AD: objective = _OBTV_AIR_DEFENSE; break;
case MID_INST_ARMY: objective = _OBTV_ARMY; break;
case MID_INST_CCC: objective = _OBTV_CCC; break;
case MID_INST_POLITICAL: objective = _OBTV_POLITICAL; break;
case MID_INST_INFRA: objective = _OBTV_INFRASTRUCTURE; break;
case MID_INST_LOG: objective = _OBTV_LOGISTICS; break;
case MID_INST_WARPROD: objective = _OBTV_WAR_PRODUCTION; break;
case MID_INST_NAV: objective = _OBTV_NAVIGATION; break;
case MID_INST_OTHER: objective = _OBTV_OTHER; break;
case MID_INST_NAVAL: objective = _OBTV_NAVAL; break;
break;
case MID_UNITS_COMBAT:
{
gMapMgr->SetUnitLevel(2);
if(((C_PopupList *)control)->GetItemState(ID))
gMapMgr->ShowUnitType(_UNIT_COMBAT);
else
gMapMgr->HideUnitType(_UNIT_COMBAT);
gMapMgr->DrawMap ();
break;
}
case MID_UNITS_AD:
{
gMapMgr->SetUnitLevel(2);
if(((C_PopupList *)control)->GetItemState(ID))
gMapMgr->ShowUnitType(_UNIT_AIR_DEFENSE);
else
gMapMgr->HideUnitType(_UNIT_AIR_DEFENSE);
gMapMgr->DrawMap ();
break;
}
case MID_UNITS_SUPPORT:
{
gMapMgr->SetUnitLevel(2);
if(((C_PopupList *)control)->GetItemState(ID))
gMapMgr->ShowUnitType(_UNIT_SUPPORT);
else
gMapMgr->HideUnitType(_UNIT_SUPPORT);
gMapMgr->DrawMap ();
break;
}
case MID_UNITS_SQUAD_FIGHTER:
{
if(((C_PopupList *)control)->GetItemState(ID))
gMapMgr->ShowAirUnitType(_UNIT_FIGHTER);
else
gMapMgr->HideAirUnitType(_UNIT_FIGHTER);
gMapMgr->DrawMap ();
break;
}
case MID_UNITS_SQUAD_ATTACK:
{
if(((C_PopupList *)control)->GetItemState(ID))
gMapMgr->ShowAirUnitType(_UNIT_ATTACK);
else
gMapMgr->HideAirUnitType(_UNIT_ATTACK);
gMapMgr->DrawMap ();
break;
}
case MID_UNITS_SQUAD_BOMBER:
{
if(((C_PopupList *)control)->GetItemState(ID))
gMapMgr->ShowAirUnitType(_UNIT_BOMBER);
else
gMapMgr->HideAirUnitType(_UNIT_BOMBER);
gMapMgr->DrawMap ();
break;
}
case MID_UNITS_SQUAD_SUPPORT:
{
if(((C_PopupList *)control)->GetItemState(ID))
gMapMgr->ShowAirUnitType(_UNIT_SUPPORT);
else
gMapMgr->HideAirUnitType(_UNIT_SUPPORT);
gMapMgr->DrawMap ();
break;
}
case MID_UNITS_SQUAD_HELI:
{
if(((C_PopupList *)control)->GetItemState(ID))
gMapMgr->ShowAirUnitType(_UNIT_HELICOPTER);
else
gMapMgr->HideAirUnitType(_UNIT_HELICOPTER);
gMapMgr->DrawMap ();
break;
}
case MID_LEG_NAMES:
{
if(((C_PopupList *)control)->GetItemState(ID))
{
gMapMgr->TurnOnNames();
}
else
{
gMapMgr->TurnOffNames();
}
gMapMgr->DrawMap();
return;
}
default:
{
//MonoPrint ("Map Menu %d %08x\n", ID, control);
gMapMgr->DrawMap ();
gPopupMgr->CloseMenu ();
break;
}
}
switch (ID)
{
case MID_INST_AF:
case MID_INST_AD:
case MID_INST_ARMY:
case MID_INST_CCC:
case MID_INST_POLITICAL:
case MID_INST_INFRA:
case MID_INST_LOG:
case MID_INST_WARPROD:
case MID_INST_NAV:
case MID_INST_OTHER:
case MID_INST_NAVAL:
{
if(((C_PopupList *)control)->GetItemState(ID))
{
gMapMgr->ShowObjectiveType(objective);
}
else
{
gMapMgr->HideObjectiveType(objective);
}
gMapMgr->DrawMap ();
return;
}
}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void tactical_objective_menu (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;
}
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_);
}
}
switch (ID)
{
case MID_RECON:
{
//MonoPrint ("Recon\n");
gPopupMgr->CloseMenu ();
break;
}
case MID_ADD_PACKAGE:
{
tactical_add_package (urec->GetID(),caller);
gPopupMgr->CloseMenu ();
break;
}
case MID_ADD_VC:
{
tactical_add_victory_condition (urec->GetID (),NULL);
gPopupMgr->CloseMenu ();
break;
}
case MID_SET_OWNER:
{
//MonoPrint ("Set Owner\n");
break;
}
case MID_SQUADRONS:
{
//MonoPrint ("Squadrons\n");
break;
}
case MID_ALTERNATE_FIELD:
{
//MonoPrint ("Alternate Field %d\n", ((C_PopupList *)control)->GetItemState(ID));
break;
}
default:
{
//MonoPrint ("Unknown Object Menu Item\n");
gPopupMgr->CloseMenu ();
break;
}
}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void tactical_airbase_menu (long ID, short, C_Base *control)
{
C_Base
*caller;
long
iconid;
C_MapIcon
*icon;
C_DrawList
*piggy;
C_TreeList
*tree;
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_);
}
}
switch (ID)
{
case MID_RECON:
{
//MonoPrint ("Recon\n");
gPopupMgr->CloseMenu ();
break;
}
case MID_ADD_PACKAGE:
{
tactical_add_package (urec->GetID(),control);
gPopupMgr->CloseMenu ();
break;
}
case MID_ADD_VC:
{
tactical_add_victory_condition (urec->GetID(),NULL);
gPopupMgr->CloseMenu ();
break;
}
case MID_SET_OWNER:
{
//MonoPrint ("Set Owner\n");
gPopupMgr->CloseMenu ();
break;
}
case MID_ADD_SQUADRON:
{
tactical_add_squadron (urec->GetID());
gPopupMgr->CloseMenu ();
break;
}
case MID_ALTERNATE_FIELD:
{
//MonoPrint ("Alternate Field %d\n", ((C_PopupList *)control)->GetItemState(ID));
break;
}
default:
{
//MonoPrint ("Unknown Object Menu Item\n");
gPopupMgr->CloseMenu ();
break;
}
}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
static void update_gMapMgr (void)
{
// This is NOW handled by the GPS
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void tactical_update_campaign_entities (void)
{
// This is NOW handled by the GPS
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -