void MercsPlayerTeamCallback(GUI_BUTTON *btn,INT32 reason) { if( reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { ClickEditorButton( MERCS_PLAYER ); UnclickEditorButton( MERCS_ENEMY ); UnclickEditorButton( MERCS_CREATURE ); UnclickEditorButton( MERCS_REBEL ); UnclickEditorButton( MERCS_CIVILIAN ); iDrawMode = DRAW_MODE_PLAYER; SetMercEditingMode ( MERC_TEAMMODE ); } }
void MercsCivilianTeamCallback(GUI_BUTTON *btn,INT32 reason) { if( reason & MSYS_CALLBACK_REASON_LBUTTON_UP ) { UnclickEditorButton( MERCS_PLAYER ); UnclickEditorButton( MERCS_ENEMY ); UnclickEditorButton( MERCS_CREATURE ); UnclickEditorButton( MERCS_REBEL ); ClickEditorButton( MERCS_CIVILIAN ); iDrawMode = DRAW_MODE_CIVILIAN; SetMercEditingMode ( MERC_TEAMMODE ); } else if( reason & MSYS_CALLBACK_REASON_RBUTTON_UP ) { IndicateSelectedMerc( SELECT_NEXT_CIV ); } }
void BuildingToggleInfoViewCallback(GUI_BUTTON *btn,INT32 reason) { if(reason & MSYS_CALLBACK_REASON_LBUTTON_UP) { if( fBuildingShowRoomInfo ^= 1 ) { ClickEditorButton( BUILDING_TOGGLE_INFO_VIEW ); } else { UnclickEditorButton( BUILDING_TOGGLE_INFO_VIEW ); } gfRenderWorld = TRUE; } }
void BuildingToggleWallViewCallback(GUI_BUTTON *btn,INT32 reason) { if(reason & MSYS_CALLBACK_REASON_LBUTTON_UP) { if( fBuildingShowWalls ^= 1 ) { ClickEditorButton( BUILDING_TOGGLE_WALL_VIEW ); } else { UnclickEditorButton( BUILDING_TOGGLE_WALL_VIEW ); } //Name could be a bit misleading. It'll hide or show the walls based on the //fBuildingShowWalls value. UpdateWallsView(); } }
void HideEditorToolbar( INT32 iOldTaskMode ) { INT32 i, iStart, iEnd; switch( iOldTaskMode ) { case TASK_TERRAIN: iStart = FIRST_TERRAIN_BUTTON; iEnd = LAST_TERRAIN_BUTTON; break; case TASK_BUILDINGS: iStart = FIRST_BUILDINGS_BUTTON; iEnd = LAST_BUILDINGS_BUTTON; break; case TASK_ITEMS: iStart = FIRST_ITEMS_BUTTON; iEnd = LAST_ITEMS_BUTTON; break; case TASK_MERCS: iStart = FIRST_MERCS_BUTTON; iEnd = LAST_MERCS_BUTTON; break; case TASK_MAPINFO: iStart = FIRST_MAPINFO_BUTTON; iEnd = LAST_MAPINFO_BUTTON; break; case TASK_OPTIONS: iStart = FIRST_OPTIONS_BUTTON; iEnd = LAST_OPTIONS_BUTTON; break; default: return; } for( i = iStart; i <= iEnd; i++ ) { HideButton( iEditorButton[ i ] ); UnclickEditorButton( i ); } }
void DoTaskbar(void) { if(!iTaskMode || iTaskMode == iCurrentTaskbar ) { return; } gfRenderTaskbar = TRUE; HideEditorToolbar( iCurrentTaskbar ); //Special code when exiting previous editor tab switch( iCurrentTaskbar ) { case TASK_TERRAIN: UnclickEditorButton( TAB_TERRAIN ); HideTerrainTileButtons(); break; case TASK_BUILDINGS: UnclickEditorButton( TAB_BUILDINGS ); KillTextInputMode(); break; case TASK_ITEMS: UnclickEditorButton( TAB_ITEMS ); HideItemStatsPanel(); if( eInfo.fActive ) ClearEditorItemsInfo(); gfShowPits = FALSE; RemoveAllPits(); break; case TASK_MERCS: UnclickEditorButton( TAB_MERCS ); IndicateSelectedMerc( SELECT_NO_MERC ); SetMercEditingMode( MERC_NOMODE ); break; case TASK_MAPINFO: UnclickEditorButton( TAB_MAPINFO ); ExtractAndUpdateMapInfo(); KillTextInputMode(); HideExitGrids(); break; case TASK_OPTIONS: UnclickEditorButton( TAB_OPTIONS ); break; } //Setup the new tab mode iCurrentTaskbar = iTaskMode; ShowEditorToolbar( iTaskMode ); iTaskMode = TASK_NONE; //Special code when entering a new editor tab switch( iCurrentTaskbar ) { case TASK_MERCS: ClickEditorButton( TAB_MERCS ); ClickEditorButton( MERCS_ENEMY); iDrawMode = DRAW_MODE_ENEMY; SetMercEditingMode( MERC_TEAMMODE ); fBuildingShowRoofs = FALSE; UpdateRoofsView(); break; case TASK_TERRAIN: ClickEditorButton( TAB_TERRAIN ); ShowTerrainTileButtons(); SetEditorTerrainTaskbarMode( TERRAIN_FGROUND_TEXTURES ); break; case TASK_BUILDINGS: ClickEditorButton( TAB_BUILDINGS ); if(fBuildingShowRoofs) ClickEditorButton( BUILDING_TOGGLE_ROOF_VIEW ); if(fBuildingShowWalls) ClickEditorButton( BUILDING_TOGGLE_WALL_VIEW ); if(fBuildingShowRoomInfo) ClickEditorButton( BUILDING_TOGGLE_INFO_VIEW ); if( gfCaves ) { ClickEditorButton( BUILDING_CAVE_DRAWING ); iDrawMode = DRAW_MODE_CAVES; } else { ClickEditorButton( BUILDING_NEW_ROOM ); iDrawMode = DRAW_MODE_ROOM; } TerrainTileDrawMode = TERRAIN_TILES_BRETS_STRANGEMODE; SetEditorSmoothingMode( gMapInformation.ubEditorSmoothingType ); gusSelectionType = gusSavedBuildingSelectionType; SetupTextInputForBuildings(); break; case TASK_ITEMS: SetFont( FONT10ARIAL ); SetFontForeground( FONT_YELLOW ); ClickEditorButton( TAB_ITEMS ); ClickEditorButton( ITEMS_WEAPONS + eInfo.uiItemType - TBAR_MODE_ITEM_WEAPONS ); InitEditorItemsInfo( eInfo.uiItemType ); ShowItemStatsPanel(); gfShowPits = TRUE; AddAllPits(); iDrawMode = DRAW_MODE_PLACE_ITEM; break; case TASK_MAPINFO: ClickEditorButton( TAB_MAPINFO ); if ( gfFakeLights ) ClickEditorButton( MAPINFO_TOGGLE_FAKE_LIGHTS ); ClickEditorButton( MAPINFO_ADD_LIGHT1_SOURCE ); iDrawMode = DRAW_MODE_LIGHT; TerrainTileDrawMode = TERRAIN_TILES_BRETS_STRANGEMODE; SetupTextInputForMapInfo(); break; case TASK_OPTIONS: ClickEditorButton( TAB_OPTIONS ); TerrainTileDrawMode = TERRAIN_TILES_NODRAW; break; } }
void ChangeLightDefault( INT8 bLightType ) { UnclickEditorButton( MAPINFO_PRIMETIME_LIGHT + gbDefaultLightType ); gbDefaultLightType = bLightType; ClickEditorButton( MAPINFO_PRIMETIME_LIGHT + gbDefaultLightType ); }
void SetEditorBuildingTaskbarMode( UINT16 usNewMode ) { BOOLEAN fNewRoofs, fNewWalls, fNewRoomInfo; if( usNewMode == usCurrentMode ) { ClickEditorButton( usNewMode ); return; } usCurrentMode = usNewMode; //Unclick all of the building section buttons first -- except the view modes. UnclickEditorButton( BUILDING_PLACE_WALLS ); UnclickEditorButton( BUILDING_PLACE_DOORS ); UnclickEditorButton( BUILDING_PLACE_WINDOWS ); UnclickEditorButton( BUILDING_PLACE_ROOFS ); UnclickEditorButton( BUILDING_PLACE_BROKEN_WALLS ); UnclickEditorButton( BUILDING_PLACE_FURNITURE ); UnclickEditorButton( BUILDING_PLACE_DECALS ); UnclickEditorButton( BUILDING_PLACE_FLOORS ); UnclickEditorButton( BUILDING_PLACE_TOILETS ); UnclickEditorButton( BUILDING_SMART_WALLS ); UnclickEditorButton( BUILDING_SMART_DOORS ); UnclickEditorButton( BUILDING_SMART_WINDOWS ); UnclickEditorButton( BUILDING_SMART_BROKEN_WALLS ); UnclickEditorButton( BUILDING_DOORKEY ); UnclickEditorButton( BUILDING_NEW_ROOM ); UnclickEditorButton( BUILDING_NEW_ROOF ); UnclickEditorButton( BUILDING_CAVE_DRAWING ); UnclickEditorButton( BUILDING_SAW_ROOM ); UnclickEditorButton( BUILDING_KILL_BUILDING ); UnclickEditorButton( BUILDING_COPY_BUILDING ); UnclickEditorButton( BUILDING_MOVE_BUILDING ); UnclickEditorButton( BUILDING_DRAW_ROOMNUM ); ClickEditorButton( usNewMode ); gfRenderDrawingMode = TRUE; //Clicking on certain buttons will automatically activate/deactive certain views. switch( usNewMode ) { case BUILDING_KILL_BUILDING://Show everything fNewWalls = TRUE; fNewRoofs = TRUE; fNewRoomInfo = TRUE; break; case BUILDING_NEW_ROOF: case BUILDING_PLACE_ROOFS: fNewWalls = TRUE; fNewRoofs = TRUE; fNewRoomInfo = FALSE; break; case BUILDING_DRAW_ROOMNUM: //Show room info case BUILDING_ERASE_ROOMNUM: //Show room info fNewWalls = NO_EFFECT; fNewRoofs = gfBasement ? TRUE : FALSE; fNewRoomInfo = TRUE; break; case BUILDING_PLACE_DOORS: case BUILDING_PLACE_WINDOWS: case BUILDING_PLACE_WALLS: case BUILDING_PLACE_BROKEN_WALLS: case BUILDING_PLACE_FLOORS: case BUILDING_PLACE_TOILETS: case BUILDING_PLACE_FURNITURE: case BUILDING_PLACE_DECALS: case BUILDING_SMART_WALLS: case BUILDING_SMART_DOORS: case BUILDING_SMART_WINDOWS: case BUILDING_SMART_BROKEN_WALLS: case BUILDING_DOORKEY: case BUILDING_SAW_ROOM: case BUILDING_NEW_ROOM: case BUILDING_COPY_BUILDING: case BUILDING_MOVE_BUILDING: case BUILDING_CAVE_DRAWING: fNewRoofs = gfBasement ? TRUE : FALSE; fNewWalls = TRUE; fNewRoomInfo = FALSE; if( usNewMode == BUILDING_PLACE_FLOORS ) gusSelectionType = gusSavedSelectionType; break; default: return; } UnclickEditorButton( BUILDING_TOGGLE_INFO_VIEW ); if( fNewWalls != NO_EFFECT && fNewWalls != fBuildingShowWalls ) { if( fNewWalls ) ClickEditorButton( BUILDING_TOGGLE_WALL_VIEW ); else UnclickEditorButton( BUILDING_TOGGLE_WALL_VIEW ); fBuildingShowWalls = fNewWalls; UpdateWallsView(); } if( fNewRoofs != NO_EFFECT && fNewRoofs != fBuildingShowRoofs ) { if( fNewRoofs ) ClickEditorButton( BUILDING_TOGGLE_ROOF_VIEW ); else UnclickEditorButton( BUILDING_TOGGLE_ROOF_VIEW ); fBuildingShowRoofs = fNewRoofs; UpdateRoofsView(); } if( fNewRoomInfo != NO_EFFECT && fNewRoomInfo != fBuildingShowRoomInfo ) { if( fNewRoomInfo ) ClickEditorButton( BUILDING_TOGGLE_INFO_VIEW ); else UnclickEditorButton( BUILDING_TOGGLE_INFO_VIEW ); fBuildingShowRoomInfo = fNewRoomInfo; gfRenderWorld = TRUE; } }
void SetEditorMapInfoTaskbarMode( UINT16 usNewMode ) { BOOLEAN fShowExitGrids = FALSE; UnclickEditorButton( MAPINFO_ADD_LIGHT1_SOURCE ); UnclickEditorButton( MAPINFO_DRAW_EXITGRIDS ); UnclickEditorButton( MAPINFO_NORTH_POINT ); UnclickEditorButton( MAPINFO_WEST_POINT ); UnclickEditorButton( MAPINFO_CENTER_POINT ); UnclickEditorButton( MAPINFO_EAST_POINT ); UnclickEditorButton( MAPINFO_SOUTH_POINT ); UnclickEditorButton( MAPINFO_ISOLATED_POINT ); ClickEditorButton( usNewMode ); switch( usNewMode ) { case MAPINFO_ADD_LIGHT1_SOURCE: iDrawMode = DRAW_MODE_LIGHT; break; case MAPINFO_DRAW_EXITGRIDS: iDrawMode = DRAW_MODE_EXITGRID; gusSelectionType = gusSavedSelectionType; fShowExitGrids = TRUE; break; case MAPINFO_NORTH_POINT: iDrawMode = DRAW_MODE_NORTHPOINT; break; case MAPINFO_WEST_POINT: iDrawMode = DRAW_MODE_WESTPOINT; break; case MAPINFO_EAST_POINT: iDrawMode = DRAW_MODE_EASTPOINT; break; case MAPINFO_SOUTH_POINT: iDrawMode = DRAW_MODE_SOUTHPOINT; break; case MAPINFO_CENTER_POINT: iDrawMode = DRAW_MODE_CENTERPOINT; break; case MAPINFO_ISOLATED_POINT: iDrawMode = DRAW_MODE_ISOLATEDPOINT; break; case MAPINFO_RADIO_NORMAL: SetEditorSmoothingMode( SMOOTHING_NORMAL ); gfRenderTaskbar = TRUE; break; case MAPINFO_RADIO_BASEMENT: SetEditorSmoothingMode( SMOOTHING_BASEMENT ); gfRenderTaskbar = TRUE; break; case MAPINFO_RADIO_CAVES: SetEditorSmoothingMode( SMOOTHING_CAVES ); gfRenderTaskbar = TRUE; break; } if( fShowExitGrids ) { ShowExitGrids(); } else { HideExitGrids(); } }
void SetEditorTerrainTaskbarMode( UINT16 usNewMode ) { UnclickEditorButton( TERRAIN_FGROUND_TEXTURES ); UnclickEditorButton( TERRAIN_BGROUND_TEXTURES ); UnclickEditorButton( TERRAIN_PLACE_CLIFFS ); UnclickEditorButton( TERRAIN_PLACE_ROADS );//dnl Without this road button always remain in clicked state UnclickEditorButton( TERRAIN_PLACE_DEBRIS ); UnclickEditorButton( TERRAIN_PLACE_TREES ); UnclickEditorButton( TERRAIN_PLACE_ROCKS ); UnclickEditorButton( TERRAIN_PLACE_MISC ); UnclickEditorButton( TERRAIN_FILL_AREA ); TerrainTileDrawMode=0; gfRenderDrawingMode = TRUE; switch( usNewMode ) { case TERRAIN_FGROUND_TEXTURES: TerrainTileDrawMode = TERRAIN_TILES_FOREGROUND; ClickEditorButton( TERRAIN_FGROUND_TEXTURES ); iDrawMode = DRAW_MODE_GROUND; gusSelectionType = gusSavedSelectionType; break; case TERRAIN_BGROUND_TEXTURES: TerrainTileDrawMode = TERRAIN_TILES_BACKGROUND; ClickEditorButton( TERRAIN_BGROUND_TEXTURES ); iDrawMode = DRAW_MODE_NEW_GROUND; break; case TERRAIN_PLACE_CLIFFS: ClickEditorButton( TERRAIN_PLACE_CLIFFS ); iDrawMode = DRAW_MODE_BANKS; break; case TERRAIN_PLACE_ROADS: ClickEditorButton( TERRAIN_PLACE_ROADS ); iDrawMode = DRAW_MODE_ROADS; break; case TERRAIN_PLACE_DEBRIS: ClickEditorButton( TERRAIN_PLACE_DEBRIS ); iDrawMode = DRAW_MODE_DEBRIS; gusSelectionType = gusSavedSelectionType; break; case TERRAIN_PLACE_TREES: ClickEditorButton( TERRAIN_PLACE_TREES ); iDrawMode = DRAW_MODE_OSTRUCTS; gusSelectionType = gusSavedSelectionType; break; case TERRAIN_PLACE_ROCKS: ClickEditorButton( TERRAIN_PLACE_ROCKS ); iDrawMode = DRAW_MODE_OSTRUCTS1; gusSelectionType = gusSavedSelectionType; break; case TERRAIN_PLACE_MISC: ClickEditorButton( TERRAIN_PLACE_MISC ); iDrawMode = DRAW_MODE_OSTRUCTS2; gusSelectionType = gusSavedSelectionType; break; case TERRAIN_FILL_AREA: ClickEditorButton( TERRAIN_FILL_AREA ); iDrawMode = DRAW_MODE_FILL_AREA + DRAW_MODE_GROUND; TerrainTileDrawMode=1; break; } }
void SpecifyItemToEdit( OBJECTTYPE *pItem, INT32 iMapIndex ) { //Set the global item pointer to point to the new item if( gpItem == pItem ) return; if( gpItem != pItem ) { ExecuteItemStatsCmd( ITEMSTATS_APPLY ); RemoveItemGUI(); gpItem = pItem; if( gpItemPool ) { gpEditingItemPool = gpItemPool; } gsItemGridNo = (INT16)iMapIndex; } else RemoveItemGUI(); gfRenderTaskbar = TRUE; if( !gpItem ) { //Hide all edit features. gbEditingMode = EDITING_NOTHING; gsItemGridNo = -1; return; } //Setup the text mode InitTextInputModeWithScheme( DEFAULT_SCHEME ); if( iCurrentTaskbar == TASK_ITEMS ) ShowEditorButton( ITEMSTATS_HIDDEN_BTN ); //Determine the type of item so that we can determine the dynamic editing mode. AddUserInputField( NULL ); SetupGameTypeFlags(); if( Item[ gpItem->usItem ].usItemClass == IC_MONEY ) { gbEditingMode = EDITING_MONEY; SetupMoneyGUI(); } else if( gpItem->usItem == ACTION_ITEM ) { gbEditingMode = EDITING_ACTIONITEMS; SetupActionItemsGUI(); HideEditorButton( ITEMSTATS_HIDDEN_BTN ); } else if( gpItem->usItem == SWITCH ) { gbEditingMode = EDITING_TRIGGERS; SetupTriggersGUI(); HideEditorButton( ITEMSTATS_HIDDEN_BTN ); } else if( gpItem->usItem == OWNERSHIP ) { gbEditingMode = EDITING_OWNERSHIP; SetupOwnershipGUI(); HideEditorButton( ITEMSTATS_HIDDEN_BTN ); } else switch( Item[ gpItem->usItem ].usItemClass ) { case IC_GUN: gbEditingMode = EDITING_GUNS; SetupGunGUI(); break; case IC_AMMO: gbEditingMode = EDITING_AMMO; SetupAmmoGUI(); break; case IC_ARMOUR: gbEditingMode = EDITING_ARMOUR; SetupArmourGUI(); break; case IC_MEDKIT: case IC_KIT: case IC_MISC: case IC_FACE: case IC_BLADE: case IC_LAUNCHER: case IC_THROWING_KNIFE: case IC_MONEY: gbEditingMode = EDITING_EQUIPMENT; SetupEquipGUI(); break; case IC_THROWN: case IC_GRENADE: case IC_EXPLOSV: case IC_BOMB: gbEditingMode = EDITING_EXPLOSIVES; SetupExplosivesGUI(); break; case IC_KEY: gbEditingMode = EDITING_KEYS; SetupKeysGUI(); break; case IC_PUNCH: if ( gpItem->usItem != NOTHING) { gbEditingMode = EDITING_EQUIPMENT; SetupEquipGUI(); break; } // else fall through and act as nothing case IC_NONE: gbEditingMode = EDITING_NOTHING; if( !(gpItem->fFlags & OBJECT_UNDROPPABLE) ) gbEditingMode = EDITING_DROPPABLE; break; default: gbEditingMode = EDITING_NOT_YET_IMPLEMENTED; break; } if( gpItemPool ) { if( gWorldItems[ gpItemPool->iItemIndex ].bVisible == INVISIBLE ) { UnclickEditorButton( ITEMSTATS_HIDDEN_BTN ); ShowSelectedItem(); } else { ClickEditorButton( ITEMSTATS_HIDDEN_BTN ); HideSelectedItem(); } } }