#pragma once class CEngineClient { public: void SetRestrictServerCommands(bool bRestrict); bool GetRestrictServerCommands() const; void SetRestrictClientCommands(bool bRestrict); bool GetRestrictClientCommands() const; int GetLocalPlayer(); // Local player index. }; /* ==== CVENGINECLIENT ================================================================================================================================================== */ /////////////////////////////////////////////////////////////////////////////// inline CMemory g_pEngineClientVFTable = nullptr; inline CEngineClient* g_pEngineClient = nullptr; /////////////////////////////////////////////////////////////////////////////// class HVEngineClient : public IDetour { virtual void GetAdr(void) const { spdlog::debug("| CON: g_pEngineClientVFTable : {:#18x} |\n", g_pEngineClientVFTable.GetPtr()); spdlog::debug("+----------------------------------------------------------------+\n"); } virtual void GetFun(void) const { } virtual void GetVar(void) const { } virtual void GetCon(void) const { g_pEngineClientVFTable = g_GameDll.GetVirtualMethodTable(".?AVCEngineClient@@"); g_pEngineClient = g_pEngineClientVFTable.RCast(); } virtual void Attach(void) const { } virtual void Detach(void) const { } }; /////////////////////////////////////////////////////////////////////////////// REGISTER(HVEngineClient);