From 951cf6a7378efab0885d102ee7264e1f25d51515 Mon Sep 17 00:00:00 2001 From: praydog Date: Sun, 29 Oct 2023 12:45:50 -0700 Subject: [PATCH] SDK: Fix AddObject not getting found in some cases (compiler stuff) --- shared/sdk/UObjectBase.cpp | 5 ++++- src/mods/UObjectHook.cpp | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/shared/sdk/UObjectBase.cpp b/shared/sdk/UObjectBase.cpp index a1ee48d3..a243faeb 100644 --- a/shared/sdk/UObjectBase.cpp +++ b/shared/sdk/UObjectBase.cpp @@ -328,6 +328,7 @@ void UObjectBase::update_offsets_post_uobjectarray() { for (auto ref : vtable_references) { if (!utility::find_mnemonic_in_path(ref + 4, 100, "CALL", false)) { + SPDLOG_INFO("Skipping reference at 0x{:X} because it doesn't call anything"); continue; } @@ -362,7 +363,7 @@ void UObjectBase::update_offsets_post_uobjectarray() { return utility::ExhaustionResult::STEP_OVER; } - if (std::string_view{ctx.instrux.Mnemonic}.starts_with("MOV")) { + if (std::string_view{ctx.instrux.Mnemonic}.starts_with("MOV") || std::string_view{ctx.instrux.Mnemonic}.starts_with("OR")) { for (auto i = 0; i < ctx.instrux.OperandsCount; ++i) { const auto& op = ctx.instrux.Operands[i]; @@ -379,6 +380,8 @@ void UObjectBase::update_offsets_post_uobjectarray() { if (correct_ref) { break; } + + SPDLOG_INFO("Skipping reference at 0x{:X} because it doesn't reference 0xFFFFFFFF", ref); } if (!correct_ref) { diff --git a/src/mods/UObjectHook.cpp b/src/mods/UObjectHook.cpp index 36e6bdbd..f51d7ad1 100644 --- a/src/mods/UObjectHook.cpp +++ b/src/mods/UObjectHook.cpp @@ -1080,7 +1080,7 @@ void UObjectHook::ui_handle_object(sdk::UObject* object) { ui_handle_material_interface(object); } - static auto widget_component_t = sdk::find_uobject(L"Class /Script/UMG.WidgetComponent"); + static const auto widget_component_t = sdk::find_uobject(L"Class /Script/UMG.WidgetComponent"); if (uclass->is_a(widget_component_t)) { if (ImGui::Button("Set to Screen Space")) {