Exemplo n.º 1
0
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 );
	}
}
Exemplo n.º 2
0
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 );
	}
}
Exemplo n.º 3
0
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;
	}
}
Exemplo n.º 4
0
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();
	}
}
Exemplo n.º 5
0
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 );
	}
}
Exemplo n.º 6
0
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;
	}
}
Exemplo n.º 7
0
void ChangeLightDefault( INT8 bLightType )
{
    UnclickEditorButton( MAPINFO_PRIMETIME_LIGHT + gbDefaultLightType );
    gbDefaultLightType = bLightType;
    ClickEditorButton( MAPINFO_PRIMETIME_LIGHT + gbDefaultLightType );
}
Exemplo n.º 8
0
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;
	}
}
Exemplo n.º 9
0
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();
	}
}
Exemplo n.º 10
0
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;
	}
}
Exemplo n.º 11
0
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();
		}
	}
}