#pragma once //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- enum GameMode_t { NO_MODE = 0, MP_MODE, PVE_MODE, SP_MODE, }; //----------------------------------------------------------------------------- // Purpose: Global variables used by shared code //----------------------------------------------------------------------------- class CGlobalVarsBase { public: float m_nUnkTime; float m_rRealTime; // Absolute time (per frame still - Use Plat_FloatTime() for a high precision real time. int m_nFrameCount; // Absolute frame counter - continues to increase even if game is paused - never resets. float m_flAbsoluteFrameTime; // Non-paused frametime. float m_flCurTime; // These seem to be mainly used in c:\depot\r5launch\src\engine\client\clientstate.cpp. float m_flCurTimeUnknown0; // Empty on server. float m_flCurTimeUnknown1; // Empty on server. float m_flCurTimeUnknown2; // Empty on server. float m_flLastFrameTimeSincePause; // Last frame time since pause, empty on server. float m_flCurTimeUnknown3; // Empty on server. float m_flLastCurTimeSincePause; // Last current time since pause, empty on server. float m_flUnknown4; float m_flFrameTime; // Time spent on last server or client frame (has nothing to do with think intervals) int m_nMaxPlayers; // Max internal player entities. int m_nMaxClients; // Max players as specified in the playlists file. GameMode_t m_nGameMode; // 1 (MP) 2 (PVE) 3 (SP) int m_nTickCount; // Simulation ticks - resets on restart. float m_flTickInterval; int m_nUnk1; int m_nUnk2; // 100 (i.e., tickcount is rounded down to this base and then the "delta" from this base is networked int m_nTimestampNetworkingBase; // 32 (entindex() % nTimestampRandomizeWindow ) is subtracted from gpGlobals->tickcount to set the networking basis, prevents // all of the entities from forcing a new PackedEntity on the same tick (i.e., prevents them from getting lockstepped on this) int m_nTimestampRandomizeWindow; };