mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
Render debug info in tactical
Functionality for rendering pathfinding and cover values in tactical was behind defunct #ifdefs. It's now compiled always, but only enabled if cheat level is BEDUG_CHEAT_LEVEL. Unified rendering the debug info into one function, instead of several nearly identical ones. Ctrl + Shift + Z cycles through the different debug modes. Now it should be fairly easy to add more info modes like these two in the future.
This commit is contained in:
+51
-2
@@ -87,7 +87,7 @@
|
||||
#include "SaveLoadScreen.h"
|
||||
#include "Map Screen Interface.h" // added by Flugente for SquadNames
|
||||
#include "Keys.h" // added by silversurfer for door handling from the side
|
||||
|
||||
#include "Cheats.h"
|
||||
#include "AIInternals.h"
|
||||
extern BOOLEAN gubWorldTileInLight[MAX_ALLOWED_WORLD_MAX];
|
||||
extern BOOLEAN gubIsCorpseThere[MAX_ALLOWED_WORLD_MAX];
|
||||
@@ -386,7 +386,7 @@ BOOLEAN gfDisplayTimerCursor = FALSE;
|
||||
UINT32 guiTimerCursorID = 0;
|
||||
UINT32 guiTimerLastUpdate = 0;
|
||||
UINT32 guiTimerCursorDelay = 0;
|
||||
|
||||
UINT8 gRenderDebugInfoMode = DEBUG_OFF;
|
||||
|
||||
CHAR16 gzLocation[ 20 ];
|
||||
BOOLEAN gfLocation = FALSE;
|
||||
@@ -518,6 +518,54 @@ void GetMercOknoDirection( UINT8 ubSoldierID, BOOLEAN *pfGoDown, BOOLEAN *pfGoUp
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
void HandleRenderDebugInfoModes()
|
||||
{
|
||||
if (DEBUG_CHEAT_LEVEL())
|
||||
{
|
||||
switch (gRenderDebugInfoMode)
|
||||
{
|
||||
case DEBUG_PATHFINDING:
|
||||
// Nothing to do here, pathfinding info is filled in the pathing functions.
|
||||
break;
|
||||
case DEBUG_THREATVALUE:
|
||||
break;
|
||||
case DEBUG_COVERVALUE:
|
||||
// Calculate cover values for pSoldier under cursor, or for currently selected merc, if nobody is under the cursor.
|
||||
if (gTacticalStatus.Team[OUR_TEAM].bTeamActive)
|
||||
{
|
||||
static SOLDIERTYPE* previousSoldier = nullptr;
|
||||
static INT32 previousLocation = NOWHERE;
|
||||
static UINT8 previousStance = 0;
|
||||
|
||||
UINT16 usSoldierIndex = NOBODY;
|
||||
UINT32 uiMercFlags;
|
||||
FindSoldierFromMouse(&usSoldierIndex, &uiMercFlags);
|
||||
if (usSoldierIndex == NOBODY)
|
||||
{
|
||||
usSoldierIndex = gusSelectedSoldier;
|
||||
}
|
||||
|
||||
if (usSoldierIndex != NOBODY)
|
||||
{
|
||||
// Get Soldier
|
||||
INT32 iPercentBetter;
|
||||
SOLDIERTYPE* pSoldier;
|
||||
GetSoldier(&pSoldier, usSoldierIndex);
|
||||
if (previousSoldier != pSoldier || previousLocation != pSoldier->sGridNo || previousStance != gAnimControl[pSoldier->usAnimState].ubEndHeight)
|
||||
{
|
||||
FindBestNearbyCover(pSoldier, pSoldier->aiData.bAIMorale, &iPercentBetter);
|
||||
previousSoldier = pSoldier;
|
||||
previousLocation = pSoldier->sGridNo;
|
||||
previousStance = gAnimControl[pSoldier->usAnimState].ubEndHeight;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default: // off
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PreventFromTheFreezingBug(SOLDIERTYPE* pSoldier)
|
||||
{
|
||||
@@ -691,6 +739,7 @@ UINT32 HandleTacticalUI( void )
|
||||
}
|
||||
}
|
||||
|
||||
HandleRenderDebugInfoModes();
|
||||
// Check if current event has changed and clear event if so, to prepare it for execution
|
||||
// Clearing it does things like set first time flag, param variables, etc
|
||||
if ( uiNewEvent != guiOldEvent )
|
||||
|
||||
Reference in New Issue
Block a user