quake4-sdk/source/mpgame/Game_Debug.h

96 lines
2.5 KiB
C++

//----------------------------------------------------------------
// Game_Debug.h
//
// Copyright 2002-2004 Raven Software
//----------------------------------------------------------------
#ifndef __GAME_DEBUG_H__
#define __GAME_DEBUG_H__
#define DBGHUD_NONE (0)
#define DBGHUD_PLAYER (1<<0)
#define DBGHUD_PHYSICS (1<<1)
#define DBGHUD_AI (1<<2)
#define DBGHUD_VEHICLE (1<<3)
#define DBGHUD_PERFORMANCE (1<<4)
#define DBGHUD_FX (1<<5)
#define DBGHUD_MAPINFO (1<<6)
#define DBGHUD_AI_PERFORM (1<<7)
#define DBGHUD_SCRATCH (1<<31)
#define DBGHUD_ANY (0xFFFFFFFF)
#define DBGHUD_MAX 32
typedef struct debugJumpPoint_s
{
idStr name;
idVec3 origin;
idAngles angles;
} debugJumpPoint_t;
class rvGameDebug {
public:
rvGameDebug( );
void Init ( void );
void Shutdown ( void );
void BeginFrame ( void );
void EndFrame ( void );
void SetFocusEntity ( idEntity* focusEnt );
bool IsHudActive ( int hudMask, const idEntity* focusEnt = NULL );
void DrawHud ( void );
void AppendList ( const char* listname, const char* value );
void SetInt ( const char* key, int value );
void SetFloat ( const char* key, float value );
void SetString ( const char* key, const char* value );
int GetInt ( const char* key );
float GetFloat ( const char* key );
const char* GetString ( const char* key );
void SetStatInt ( const char* key, int value );
void SetStatFloat ( const char* key, float value );
void SetStatString ( const char* key, const char* value );
int GetStatInt ( const char* key );
float GetStatFloat ( const char* key );
const char* GetStatString ( const char* key );
void JumpAdd ( const char* name, const idVec3& origin, const idAngles& angles );
void JumpTo ( const char* name );
void JumpTo ( int jumpIndex );
void JumpNext ( void );
void JumpPrev ( void );
private:
idList<debugJumpPoint_t> jumpPoints;
int jumpIndex;
idEntityPtr<idEntity> focusEntity;
idEntityPtr<idEntity> overrideEntity;
idUserInterface * hud[DBGHUD_MAX+1];
idUserInterface * currentHud;
idDict nonGameState, gameStats;
bool inFrame;
};
ID_INLINE bool rvGameDebug::IsHudActive ( int hudMask, const idEntity* ent ) {
return (g_showDebugHud.GetInteger() && (hudMask & (1 << (g_showDebugHud.GetInteger()-1))) && (!ent || focusEntity == ent ) );
}
ID_INLINE void rvGameDebug::SetFocusEntity ( idEntity* ent ) {
overrideEntity = ent;
}
extern rvGameDebug gameDebug;
#endif /* !__GAME_DEBUG_H__ */