From 52f5b6d48e8c59f7d424d047e3d38a1d83118886 Mon Sep 17 00:00:00 2001 From: Mike Date: Sun, 7 May 2023 17:58:00 +0200 Subject: [PATCH] Fix steam version --- CMakeLists.txt | 2 +- NKHook5/Patches/CProjectile/Clone.cpp | 3 +++ NKHook5/Signatures/Signature.cpp | 13 ++++++------- NKHook5/Signatures/Signature.h | 1 + 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a97b28c..4a93273 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ EXECUTE_PROCESS( ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) -add_compile_definitions(NKHOOK_BUILD_TAG=0.9.0) +add_compile_definitions(NKHOOK_BUILD_TAG=0.9.1) add_compile_definitions(NKHOOK_BUILD_VERSION=${NKHOOK_BUILD_VERSION}) add_compile_definitions(_ITERATOR_DEBUG_LEVEL=0) add_compile_options(/openmp) diff --git a/NKHook5/Patches/CProjectile/Clone.cpp b/NKHook5/Patches/CProjectile/Clone.cpp index 543feac..50b68b6 100644 --- a/NKHook5/Patches/CProjectile/Clone.cpp +++ b/NKHook5/Patches/CProjectile/Clone.cpp @@ -5,6 +5,7 @@ #include "../../Signatures/Signature.h" #include "../../Util/NewFramework.h" +#include #include namespace NKHook5 @@ -25,6 +26,8 @@ namespace NKHook5 auto* clone = PLH::FnCast(o_func, &cb_hook)(self); /*Copy extended properties*/ clone->NO_CLEANUP = self->NO_CLEANUP; + clone->ALWAYS_UPDATE = self->ALWAYS_UPDATE; + clone->NO_OGC = self->NO_OGC; return clone; } diff --git a/NKHook5/Signatures/Signature.cpp b/NKHook5/Signatures/Signature.cpp index 4a80efe..6060401 100644 --- a/NKHook5/Signatures/Signature.cpp +++ b/NKHook5/Signatures/Signature.cpp @@ -188,6 +188,7 @@ void Signatures::FindAll() { "55 8B EC 53 56 8B ?? ?? 8B D9 57 8B ?? ?? 85 FF" ); /* CProjectile */ + pointerMap[Sigs::CProjectile_VTable] = (void*)h_rtti::get_vtable("CProjectile"); pointerMap[Sigs::CProjectile_CCTOR_A] = Signatures::FindFirst(2, "55 8B EC 6A ?? 68 ?? ?? ?? ?? 64 ?? ?? ?? ?? ?? 50 83 EC ?? 56 57 A1 34 ?? ?? ?? 33 C5 50 8D ?? ?? ?? A3 ?? ?? ?? ?? 8B F9 ?? 7D ?? ?? ?? ?? E8 ?? ?? ?? ?? ?? 45 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 55 ?? ?? 02 ?? ?? ?? ?? ?? 45 ?? ?? ?? 02 ?? ?? ?? ?? ?? 42 ?? ?? ?? ?? ?? ?? 45 ?? ?? 8D ?? ?? ?? ?? ?? ?? 45 ?? ?? 00 ?? ?? ?? ?? ?? 45 ?? ?? ?? 00 ?? ?? ?? ?? ?? 40 ?? ?? ?? ?? ?? ?? 45 ?? ?? ?? 07 ?? ?? ?? ?? ?? 02 ?? ?? ?? ?? ?? 00 ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? 8D ?? ?? ?? ?? ?? ?? 75 ?? ?? 06 ?? ?? ?? ?? ?? 46 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? ?? 06 ?? 45 ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? F3 ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? ?? F3 ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? ?? ?? 7F ?? ?? 75 ?? 8D ?? ?? ?? 47 ?? ?? 8B ?? 3B C2 74 ?? 85 C0 74 ?? 8D ?? ?? EB ?? 33 C9 E8 ?? ?? ?? ?? 8B ?? 3B C2 75 ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 C4 ?? ?? 45 ?? ?? 45 ?? ?? 8B", "55 8B EC 6A ?? 68 ?? ?? ?? ?? 64 ?? ?? ?? ?? ?? 50 83 EC ?? 56 57 A1 34 ?? ?? ?? 33 C5 50 8D ?? ?? ?? A3 ?? ?? ?? ?? 8B F9 ?? 7D ?? ?? ?? ?? E8 ?? ?? ?? ?? ?? 45 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 07 ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? 8D ?? ?? ?? ?? ?? ?? 75 ?? ?? 06 ?? ?? ?? ?? ?? 46 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? ?? 06 ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? F3 ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? ?? F3 ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? ?? ?? 7F ?? ?? 75 ?? 8D ?? ?? ?? 47 ?? ?? 8B ?? 3B C2 74 ?? 85 C0 74 ?? 8D ?? ?? EB ?? 33 C9 E8 ?? ?? ?? ?? 8B ?? 3B C2 75 ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 C4 ?? ?? 45 ?? ?? 45" @@ -200,12 +201,8 @@ void Signatures::FindAll() { "55 8B EC 6A ?? 68 ?? ?? ?? ?? 64 ?? ?? ?? ?? ?? 50 83 EC ?? 56 57 A1 34 ?? ?? ?? 33 C5 50 8D ?? ?? ?? A3 ?? ?? ?? ?? 8B F9 ?? 7D ?? ?? ?? ?? E8 ?? ?? ?? ?? ?? 45 ?? ?? ?? ?? ?? 8D ?? ?? ?? ?? ?? ?? 55 ?? ?? 02 ?? ?? ?? ?? ?? 45 ?? ?? ?? 02 ?? ?? ?? ?? ?? 42 ?? ?? ?? ?? ?? ?? 45 ?? ?? 8D ?? ?? ?? ?? ?? ?? 45 ?? ?? 00 ?? ?? ?? ?? ?? 45 ?? ?? ?? 00 ?? ?? ?? ?? ?? 40 ?? ?? ?? ?? ?? ?? 45 ?? ?? ?? 07 ?? ?? ?? ?? ?? 02 ?? ?? ?? ?? ?? 00 ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? 8D ?? ?? ?? ?? ?? ?? 75 ?? ?? 06 ?? ?? ?? ?? ?? 46 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? ?? 06 ?? 45 ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? F3 ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? ?? F3 ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? ?? ?? 7F ?? ?? 75 ?? 8D ?? ?? ?? 47 ?? ?? 8B ?? 3B C2 74 ?? 85 C0 74 ?? 8D ?? ?? EB ?? 33 C9 E8 ?? ?? ?? ?? 8B ?? 3B C2 75 ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 C4 ?? ?? 45 ?? ?? 45 ?? ?? 8D ?? ?? 6A ?? 6A ?? 51 8B C8 ?? 45 ?? ?? ?? ?? ?? ?? 45 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B F0 ?? 45 ?? ?? 8B ?? ?? ?? B7 ?? ?? ?? ?? ?? 45 ?? ?? ?? 45 ?? ?? 85 C0 74 ?? 8D ?? ?? ?? 86 ?? ?? ?? ?? 51 8D ?? ?? 51 50 8B CE E8 ?? ?? ?? ?? 8B ?? ?? 8B", "55 8B EC 6A ?? 68 ?? ?? ?? ?? 64 ?? ?? ?? ?? ?? 50 83 EC ?? 56 57 A1 34 ?? ?? ?? 33 C5 50 8D ?? ?? ?? A3 ?? ?? ?? ?? 8B F9 ?? 7D ?? ?? ?? ?? E8 ?? ?? ?? ?? ?? 45 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 07 ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? 8D ?? ?? ?? ?? ?? ?? 75 ?? ?? 06 ?? ?? ?? ?? ?? 46 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? ?? 06 ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 87 ?? ?? ?? ?? ?? ?? ?? ?? ?? 45 ?? ?? F3 ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? ?? F3 ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? ?? ?? 7F ?? ?? 75 ?? 8D ?? ?? ?? 47 ?? ?? 8B ?? 3B C2 74 ?? 85 C0 74 ?? 8D ?? ?? EB ?? 33 C9 E8 ?? ?? ?? ?? 8B ?? 3B C2 75 ?? 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 C4 ?? ?? 45 ?? 6A ?? 6A ?? 8D ?? ?? ?? 45 ?? ?? 51 8B C8 ?? 45 ?? ?? ?? ?? ?? ?? 45 ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B F0 ?? 45 ?? ?? 8B ?? ?? ?? B7 ?? ?? ?? ?? ?? 45 ?? ?? ?? 45 ?? ?? 85 C0 74 ?? 8D ?? ?? ?? 86 ?? ?? ?? ?? 51 8D ?? ?? 51 50 8B CE E8 ?? ?? ?? ?? 8B ?? ?? 8B" ); - pointerMap[Sigs::CProjectile_Clone] = Signatures::FindFirst(1, - "55 8B EC 6A ?? 68 ?? ?? ?? ?? 64 ?? ?? ?? ?? ?? 50 83 EC ?? 53 56 57 A1 34 ?? ?? ?? 33 C5 50 8D ?? ?? ?? A3 ?? ?? ?? ?? 8B D9 ?? 5D ?? 8B ?? ?? ?? ?? ?? ?? 7D ?? 68" - ); - pointerMap[Sigs::CProjectile_Update] = Signatures::FindFirst(1, - "55 8B EC 83 E4 ?? 83 EC ?? 53 56 8B F1 57 8B ?? ?? ?? ?? ?? 8B ?? ?? 8B" - ); + pointerMap[Sigs::CProjectile_Clone] = VT_IDX(Sigs::CProjectile_VTable, 47); + pointerMap[Sigs::CProjectile_Update] = VT_IDX(Sigs::CProjectile_VTable, 2); /* CSettingsScreen */ pointerMap[Sigs::CSettingsScreen_VTable] = (void*)h_rtti::get_vtable("CSettingsScreen"); pointerMap[Sigs::CSettingsScreen_CCTOR] = Signatures::FindFirst(2, @@ -277,7 +274,9 @@ void Signatures::FindAll() { "55 8B EC 6A ?? 68 ?? ?? ?? ?? 64 ?? ?? ?? ?? ?? 50 81 EC ?? ?? ?? ?? 53 56 57 A1 34 ?? ?? ?? 33 C5 50 8D ?? ?? ?? A3 ?? ?? ?? ?? 8B D9 8B ?? ?? 85" ); /* CWeaponFactory */ - pointerMap[Sigs::CWeaponFactory_CCTOR] = Signatures::FindFirst(1, + pointerMap[Sigs::CWeaponFactory_CCTOR] = Signatures::FindFirst(2, + //Steam + "55 8B EC 6A ?? 68 ?? ?? ?? ?? 64 ?? ?? ?? ?? ?? 50 B8 38", //Kong "55 8B EC 6A ?? 68 ?? ?? ?? ?? 64 ?? ?? ?? ?? ?? 50 B8 34" ); diff --git a/NKHook5/Signatures/Signature.h b/NKHook5/Signatures/Signature.h index bb0bc71..4f01fc9 100644 --- a/NKHook5/Signatures/Signature.h +++ b/NKHook5/Signatures/Signature.h @@ -72,6 +72,7 @@ namespace NKHook5 { CPopupScreenBase_AddNavButton, CPopupScreenBase_AddToPoppingList, /* CProjectile */ + CProjectile_VTable, CProjectile_CCTOR_A, CProjectile_CCTOR_B, CProjectile_CCTOR_C,