From b33cc89b4a13930dca136d98a22b2f3b74bdda3b Mon Sep 17 00:00:00 2001 From: khang Date: Thu, 11 Jul 2024 18:41:48 -0400 Subject: [PATCH] make is_cstrike_dir better --- BunnymodXT/modules/HwDLL.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/BunnymodXT/modules/HwDLL.cpp b/BunnymodXT/modules/HwDLL.cpp index 7729dc4f..0a27e2b3 100644 --- a/BunnymodXT/modules/HwDLL.cpp +++ b/BunnymodXT/modules/HwDLL.cpp @@ -3344,8 +3344,6 @@ struct HwDLL::Cmd_BXT_CH_CheckPoint_Create hw.ch_checkpoint_is_duck.emplace_back(is_duck); hw.ch_checkpoint_gravity.emplace_back(pl->v.gravity); hw.ch_checkpoint_is_set = true; - - hw.is_cstrike_dir = cl.DoesGameDirMatch("cstrike") || cl.DoesGameDirMatch("czero"); } }; @@ -8281,17 +8279,20 @@ HOOK_DEF_0(HwDLL, qboolean, __cdecl, CL_ReadDemoMessage_OLD) HOOK_DEF_1(HwDLL, void, __cdecl, LoadThisDll, const char*, szDllFilename) { + // LoadThisDll is executed once after a server is initialized. Subsequent server initialization won't trigger LoadThisDll. auto oldszDllFilename = szDllFilename; std::string newszDllFilename; + auto &hw = HwDLL::GetInstance(); + hw.is_cstrike_dir = ClientDLL::GetInstance().DoesGameDirMatch("cstrike"); + if (boost::ends_with(szDllFilename, "metamod" DLL_EXTENSION)) { EngineDevMsg("[hw dll] Metamod detected.\n"); bool is_failed = false; - static bool is_cstrike = ClientDLL::GetInstance().DoesGameDirMatch("cstrike"); - if (is_cstrike) + if (hw.is_cstrike_dir) { #ifdef _WIN32 const std::string cs_lib = "dlls\\mp";