From 15fdb6340f36a29118ee9d978bde74c644a99074 Mon Sep 17 00:00:00 2001 From: m Date: Mon, 9 Jan 2023 16:03:43 -0600 Subject: [PATCH 1/3] fix infinite loop --- src/client/component/patches.cpp | 32 ++++++++++++++++++++++++++++++++ src/client/game/symbols.hpp | 1 + 2 files changed, 33 insertions(+) create mode 100644 src/client/component/patches.cpp diff --git a/src/client/component/patches.cpp b/src/client/component/patches.cpp new file mode 100644 index 00000000..54aad5c3 --- /dev/null +++ b/src/client/component/patches.cpp @@ -0,0 +1,32 @@ +#include + +#include "loader/component_loader.hpp" + +#include "game/game.hpp" + +#include + +namespace patches +{ + namespace + { + void scr_are_textures_loaded_stub([[maybe_unused]] game::scriptInstance_t inst) + { + game::Scr_AddInt(game::SCRIPTINSTANCE_SERVER, 1); + } + } + + struct component final : generic_component + { + void post_unpack() override + { + if (game::is_server()) + { + // Fix infinite loop + utils::hook::jump(0x1402E86B0_g, scr_are_textures_loaded_stub); + } + } + }; +} + +REGISTER_COMPONENT(patches::component) diff --git a/src/client/game/symbols.hpp b/src/client/game/symbols.hpp index 5b06fa60..2c4110fa 100644 --- a/src/client/game/symbols.hpp +++ b/src/client/game/symbols.hpp @@ -74,6 +74,7 @@ namespace game }; // Scr + WEAK symbol Scr_AddInt{0x0, 0x14016F160}; WEAK symbol Scr_AddString{0x0, 0x14016F320}; WEAK symbol Scr_GetString{0x0, 0x140171490}; WEAK symbol Scr_Notify_Canon{0x0, 0x1402F5FF0}; From f36ca5600f64d39492cc4f20ba4ba9ed8ad28d35 Mon Sep 17 00:00:00 2001 From: m Date: Mon, 9 Jan 2023 16:20:28 -0600 Subject: [PATCH 2/3] Update patches.cpp --- src/client/component/patches.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/client/component/patches.cpp b/src/client/component/patches.cpp index 54aad5c3..16391559 100644 --- a/src/client/component/patches.cpp +++ b/src/client/component/patches.cpp @@ -1,5 +1,4 @@ #include - #include "loader/component_loader.hpp" #include "game/game.hpp" From f9939aa2ab5cb3651bafbf9a0dcb7d3d3b143e52 Mon Sep 17 00:00:00 2001 From: m Date: Mon, 9 Jan 2023 16:23:29 -0600 Subject: [PATCH 3/3] Update and rename patches.cpp to dedi_patches.cpp --- src/client/component/{patches.cpp => dedi_patches.cpp} | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) rename src/client/component/{patches.cpp => dedi_patches.cpp} (69%) diff --git a/src/client/component/patches.cpp b/src/client/component/dedi_patches.cpp similarity index 69% rename from src/client/component/patches.cpp rename to src/client/component/dedi_patches.cpp index 16391559..bc987c4e 100644 --- a/src/client/component/patches.cpp +++ b/src/client/component/dedi_patches.cpp @@ -15,15 +15,12 @@ namespace patches } } - struct component final : generic_component + struct component final : server_component { void post_unpack() override { - if (game::is_server()) - { - // Fix infinite loop - utils::hook::jump(0x1402E86B0_g, scr_are_textures_loaded_stub); - } + // Fix infinite loop + utils::hook::jump(0x1402E86B0_g, scr_are_textures_loaded_stub); } }; }