diff --git a/ImGuiExternal/ImGuiExternal.vcxproj b/ImGuiExternal/ImGuiExternal.vcxproj index 26b097c..174f1f9 100644 --- a/ImGuiExternal/ImGuiExternal.vcxproj +++ b/ImGuiExternal/ImGuiExternal.vcxproj @@ -160,7 +160,7 @@ Console true true - true + DebugFull false /ignore:4099 %(AdditionalOptions) valve-bsp-parser.lib;%(AdditionalDependencies) diff --git a/ImGuiExternal/Source.cpp b/ImGuiExternal/Source.cpp index d6eb9b1..a49bbb1 100644 --- a/ImGuiExternal/Source.cpp +++ b/ImGuiExternal/Source.cpp @@ -75,6 +75,10 @@ void Draw() { RGBA Cyan = { 0, 231, 255, 255 }; if (crosshair) DrawCircleFilled(Process::WindowWidth/2, Process::WindowHeight/2, 3, &Cyan); + if (!Game::client || !Game::engine) { + init_modules(); + } + char map_name[256]; static bool parsed_map = false; static std::string map_name_old = ""; @@ -87,6 +91,8 @@ void Draw() { map_name[j] = c; } + if (map_name[0] == '\0') + return; if (std::string(map_name) != map_name_old || !parsed_map) { parsed_map = _bsp_parser.load_map(std::string(Game::path) + std::string("cstrike\\maps"), map_name); map_name_old = std::string(map_name); @@ -97,9 +103,6 @@ void Draw() { } RGBA White = { 255, 255, 255, 255 }; - if (!Game::client || !Game::engine) { - init_modules(); - } uintptr_t entity_list = Game::client + ENTITY_LIST; uintptr_t localplayer = RPM(Game::client + LOCALPLAYER); @@ -134,7 +137,9 @@ void Draw() { continue; } - bool is_visible = _bsp_parser.is_visible(vector3{ pos.x, pos.y, pos.z + 66 }, vector3{ absOrigin.x, absOrigin.y, absOrigin.z + 66 }); + bool is_visible = true; + if (parsed_map && std::string(map_name) != "cs_office.bsp") + is_visible = _bsp_parser.is_visible(vector3{pos.x, pos.y, pos.z + 66}, vector3{absOrigin.x, absOrigin.y, absOrigin.z + 66}); //getting name DWORD list = RPM(Game::client + NAME_LIST) + 0x38;