From 9c1efe20ad14e73a8bc86fc844e4d7fc60360a9e Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Fri, 18 Nov 2022 22:10:20 +0100 Subject: [PATCH] Remove ConVar and ConCommand singletons Extraneous singletons. --- r5dev/core/init.cpp | 2 +- r5dev/engine/host_state.cpp | 2 +- r5dev/engine/sys_dll2.cpp | 10 +++++----- r5dev/launcher/IApplication.cpp | 2 +- r5dev/tier1/IConVar.cpp | 9 ++++----- r5dev/tier1/IConVar.h | 26 ++++++++++++-------------- r5dev/tier1/cmd.cpp | 3 +-- r5dev/tier1/cmd.h | 8 +++----- 8 files changed, 28 insertions(+), 34 deletions(-) diff --git a/r5dev/core/init.cpp b/r5dev/core/init.cpp index b55f3ebc..369779c0 100644 --- a/r5dev/core/init.cpp +++ b/r5dev/core/init.cpp @@ -251,7 +251,7 @@ void Systems_Init() spdlog::info("Detour->Attach() '{:10.6f}' seconds ('{:12d}' clocks)\n", initTimer.GetDuration().GetSeconds(), initTimer.GetDuration().GetCycles()); spdlog::info("+-------------------------------------------------------------+\n"); - g_pConVar->Init(); + ConVar::Init(); #ifdef DEDICATED Dedicated_Init(); diff --git a/r5dev/engine/host_state.cpp b/r5dev/engine/host_state.cpp index 559dcfc4..59bf93e2 100644 --- a/r5dev/engine/host_state.cpp +++ b/r5dev/engine/host_state.cpp @@ -211,7 +211,7 @@ FORCEINLINE void CHostState::Setup(void) #ifndef CLIENT_DLL g_pBanSystem->Load(); #endif // !CLIENT_DLL - g_pConVar->PurgeHostNames(); + ConVar::PurgeHostNames(); net_usesocketsforloopback->SetValue(1); if (net_useRandomKey->GetBool()) diff --git a/r5dev/engine/sys_dll2.cpp b/r5dev/engine/sys_dll2.cpp index 740fb998..7097d19b 100644 --- a/r5dev/engine/sys_dll2.cpp +++ b/r5dev/engine/sys_dll2.cpp @@ -80,10 +80,10 @@ static void InitVPKSystem() //----------------------------------------------------------------------------- bool CEngineAPI::VModInit(CEngineAPI* pEngineAPI, const char* pModName, const char* pGameDir) { - g_pConCommand->InitShipped(); - g_pConCommand->PurgeShipped(); - g_pConVar->InitShipped(); - g_pConVar->PurgeShipped(); + ConCommand::InitShipped(); + ConCommand::PurgeShipped(); + ConVar::InitShipped(); + ConVar::PurgeShipped(); bool results = CEngineAPI_ModInit(pEngineAPI, pModName, pGameDir); if (!IsValveMod(pModName) && !IsRespawnMod(pModName)) @@ -149,5 +149,5 @@ void SysDll2_Attach() void SysDll2_Detach() { DetourDetach((LPVOID*)&CEngineAPI_ModInit, &CEngineAPI::VModInit); - DetourDetach((LPVOID*)&v_CEngineAPI_SetStartupInfo, &CEngineAPI::VSetStartupInfo); + DetourDetach((LPVOID*)&v_CEngineAPI_SetStartupInfo, &CEngineAPI::VSetStartupInfo); } \ No newline at end of file diff --git a/r5dev/launcher/IApplication.cpp b/r5dev/launcher/IApplication.cpp index 8e7a5fe5..ad731665 100644 --- a/r5dev/launcher/IApplication.cpp +++ b/r5dev/launcher/IApplication.cpp @@ -56,11 +56,11 @@ int CModAppSystemGroup::Main(CModAppSystemGroup* pModAppSystemGroup) //----------------------------------------------------------------------------- bool CModAppSystemGroup::Create(CModAppSystemGroup* pModAppSystemGroup) { + ConCommand::Init(); #ifdef DEDICATED pModAppSystemGroup->SetServerOnly(); *g_bDedicated = true; #endif // DEDICATED - g_pConCommand->Init(); g_pFactory->GetFactoriesFromRegister(); g_pFactory->AddFactory(FACTORY_INTERFACE_VERSION, g_pFactory); g_pFactory->AddFactory(INTERFACEVERSION_PLUGINSYSTEM, g_pPluginSystem); diff --git a/r5dev/tier1/IConVar.cpp b/r5dev/tier1/IConVar.cpp index 1ffb4d2f..dfe2d83d 100644 --- a/r5dev/tier1/IConVar.cpp +++ b/r5dev/tier1/IConVar.cpp @@ -61,7 +61,7 @@ ConVar::~ConVar(void) //----------------------------------------------------------------------------- // Purpose: initialize ConVar's //----------------------------------------------------------------------------- -void ConVar::Init(void) const +void ConVar::Init(void) { //------------------------------------------------------------------------- // ENGINE | @@ -227,7 +227,7 @@ void ConVar::Init(void) const //----------------------------------------------------------------------------- // Purpose: initialize shipped ConVar's //----------------------------------------------------------------------------- -void ConVar::InitShipped(void) const +void ConVar::InitShipped(void) { #ifndef CLIENT_DLL ai_script_nodes_draw = g_pCVar->FindVar("ai_script_nodes_draw"); @@ -284,7 +284,7 @@ void ConVar::InitShipped(void) const //----------------------------------------------------------------------------- // Purpose: unregister/disable extraneous ConVar's. //----------------------------------------------------------------------------- -void ConVar::PurgeShipped(void) const +void ConVar::PurgeShipped(void) { #ifdef DEDICATED const char* pszToPurge[] = @@ -311,7 +311,7 @@ void ConVar::PurgeShipped(void) const //----------------------------------------------------------------------------- // Purpose: clear all hostname ConVar's. //----------------------------------------------------------------------------- -void ConVar::PurgeHostNames(void) const +void ConVar::PurgeHostNames(void) { const char* pszHostNames[] = { @@ -1075,4 +1075,3 @@ void IConVar_Detach() } /////////////////////////////////////////////////////////////////////////////// -ConVar* g_pConVar = new ConVar(); diff --git a/r5dev/tier1/IConVar.h b/r5dev/tier1/IConVar.h index e9002f6c..f5938c58 100644 --- a/r5dev/tier1/IConVar.h +++ b/r5dev/tier1/IConVar.h @@ -15,11 +15,11 @@ public: ConVar(void); ~ConVar(void); - void Init(void) const; - void InitShipped(void) const; + static void Init(void); + static void InitShipped(void); - void PurgeShipped(void) const; - void PurgeHostNames(void) const; + static void PurgeShipped(void); + static void PurgeHostNames(void); void AddFlags(int nFlags); void RemoveFlags(int nFlags); @@ -81,14 +81,14 @@ public: int m_nValue; }; - IConVar* m_pIConVarVFTable{}; //0x0040 - ConVar* m_pParent {}; //0x0048 - const char* m_pszDefaultValue{}; //0x0050 - CVValue_t m_Value {}; //0c0058 - bool m_bHasMin {}; //0x0070 - float m_fMinVal {}; //0x0074 - bool m_bHasMax {}; //0x0078 - float m_fMaxVal {}; //0x007C + IConVar* m_pIConVarVFTable; //0x0040 + ConVar* m_pParent ; //0x0048 + const char* m_pszDefaultValue; //0x0050 + CVValue_t m_Value ; //0c0058 + bool m_bHasMin ; //0x0070 + float m_fMinVal ; //0x0074 + bool m_bHasMax ; //0x0078 + float m_fMaxVal ; //0x007C CUtlVector<FnChangeCallback_t> m_fnChangeCallbacks; //0x0080 }; //Size: 0x00A0 static_assert(sizeof(ConVar) == 0xA0); @@ -112,8 +112,6 @@ void IConVar_Detach(); void ConVar_PrintDescription(ConCommandBase* pVar); -extern ConVar* g_pConVar; - /////////////////////////////////////////////////////////////////////////////// class VConVar : public IDetour { diff --git a/r5dev/tier1/cmd.cpp b/r5dev/tier1/cmd.cpp index e932cee5..928677f0 100644 --- a/r5dev/tier1/cmd.cpp +++ b/r5dev/tier1/cmd.cpp @@ -458,7 +458,7 @@ void ConCommand::InitShipped(void) //----------------------------------------------------------------------------- // Purpose: unregister extraneous ConCommand's. //----------------------------------------------------------------------------- -void ConCommand::PurgeShipped(void) const +void ConCommand::PurgeShipped(void) { #ifdef DEDICATED const char* pszCommandToRemove[] = @@ -731,4 +731,3 @@ void ConCommand_Detach() DetourDetach((LPVOID*)&ConCommandBase_IsFlagSet, &ConCommandBase::IsFlagSetInternal); DetourDetach((LPVOID*)&v_Cmd_ForwardToServer, &Cmd_ForwardToServer); } -ConCommand* g_pConCommand = new ConCommand(); diff --git a/r5dev/tier1/cmd.h b/r5dev/tier1/cmd.h index 1ec86a4e..e93f2ee3 100644 --- a/r5dev/tier1/cmd.h +++ b/r5dev/tier1/cmd.h @@ -131,9 +131,9 @@ public: ConCommand(void); ~ConCommand(void); - void Init(void); - void InitShipped(void); - void PurgeShipped(void) const; + static void Init(void); + static void InitShipped(void); + static void PurgeShipped(void); bool IsCommand(void) const; void* m_nNullCallBack; //0x0040 @@ -185,8 +185,6 @@ ECommandTarget_t Cbuf_GetCurrentPlayer(void); void ConCommand_Attach(); void ConCommand_Detach(); -extern ConCommand* g_pConCommand; - /////////////////////////////////////////////////////////////////////////////// class VConCommand : public IDetour {