diff --git a/ida/find_patterns.py b/ida/find_patterns.py index 990b49a7..30a09228 100644 --- a/ida/find_patterns.py +++ b/ida/find_patterns.py @@ -96,7 +96,7 @@ def find_ptr(pattern: str, expected: int = 1, index: int = 0, offset: int = 0) - groups.sort(key=lambda g: g.name.lower()) - addr = find_ptr(pattern='4C 8D 05 ? ? ? ? 48 89 ? ? ? 00 00', expected=9, index=2, offset=3) + addr = find_ptr(pattern='4C 8D 05 ? ? ? ? 48 89 ? ? ? 00 00', expected=9, index=5, offset=3) version = idc.get_strlit_contents(addr) print(f'Finding {total} item(s)...') diff --git a/ida/patterns.py b/ida/patterns.py index bba3094d..12678e3c 100644 --- a/ida/patterns.py +++ b/ida/patterns.py @@ -49,7 +49,7 @@ def get_groups() -> List[Group]: Item(name='LogChannelWarning', pattern='48 89 5C 24 08 48 89 74 24 18 55 48 8B EC 48 83 EC 70 48 8B 02 48 8D 35 ? ? ? ? 48 83 65 18 00 4C 8D 45 18 48 83 62 30 00 45 33 C9 48 83 62 38 00', expected=2, index=1), # ok Item(name='TDBIDConstructorDerive', pattern='48 89 5C 24 10 48 89 6C 24 18 48 89 74 24 20 57 45 33 C9 48 8B FA', expected=1), # ok Item(name='TranslateBytecode', pattern='48 89 5C 24 08 48 89 6C 24 10 48 89 74 24 18 57 48 83 EC 20 48 8B 1A 48 8B E9 8B 42 0C', expected=2), # ok - Item(name='TweakDBLoad', pattern='48 89 5C 24 10 48 89 7C 24 18 55 48 8B EC 48 83 EC 70 48 8B F9 48 8B DA 48 8B 0D ? ? ? ? 48 8B 01 FF 90 B8 00 00 00', expected=1), # ok + Item(name='TweakDBLoad', pattern='48 89 5C 24 10 48 89 7C 24 18 55 48 8B EC 48 ? EC 80 00 00 00 48 8B F9 48 8B DA 48 8B 0D', expected=1), # ok Item(name='RegisterMemberFunction', pattern='40 53 48 83 EC 20 49 8B C1 4D 8B D0 44 8B 4C 24 58 4C 8B DA 41 83 C9 03 4C 8B C0 49 8B D2 48 8B D9 E8', expected=1) # ok ]), Group(name='CWinapi', functions=[ @@ -86,7 +86,7 @@ def get_groups() -> List[Group]: Item(name='OnTick', pattern='40 53 48 83 EC 30 83 64 24 28 00 48 8D 05 ? ? ? ? 48 8B 0D ? ? ? ? 48 8B DA', expected=1) # ok ]), Group(name='CShutdownState', functions=[ - Item(name='OnTick', pattern='40 53 48 83 EC 20 48 8B DA E8 ? ? ? ? 48 8B CB 89 83 B0 02 00 00 ', expected=1) # ok + Item(name='OnTick', pattern='48 89 5C 24 08 57 48 83 EC 20 48 8B 0D ? ? ? ? 48', expected=1) # ok ]), Group(name='PlayerSystem', functions=[ Item(name='OnPlayerSpawned', pattern='48 89 5C 24 18 48 89 74 24 20 55 57 41 54 41 56 41 57 48 8B EC 48 83 EC 50 48 8B DA 48 8B F9', expected=1) diff --git a/src/Image.cpp b/src/Image.cpp index 87344f0a..83ea5fe0 100644 --- a/src/Image.cpp +++ b/src/Image.cpp @@ -48,6 +48,7 @@ void Image::Initialize() {{0x26, 0xd4, 0xd1, 0xf8, 0x2a, 0x64, 0x77, 0x4e, 0xa2, 0xde, 0x12, 0x85, 0xce, 0x8a, 0x08, 0x05}, MakeVersion(1, 6301)}, {{0xd3, 0x6a, 0x87, 0x91, 0x64, 0xb1, 0x07, 0x44, 0xb5, 0x82, 0xbd, 0x9f, 0x38, 0x1e, 0x93, 0x1f}, MakeVersion(2, 0)}, {{0xd4, 0x2d, 0xce, 0x5f, 0x13, 0x89, 0xeb, 0x4b, 0xbc, 0x86, 0xa9, 0x34, 0xee, 0x15, 0x5d, 0x39}, MakeVersion(2, 1)}, + {{0x3a, 0x88, 0x95, 0xad, 0xd8, 0x44, 0x15, 0x44, 0x8a, 0xaf, 0x9d, 0xbb, 0x58, 0xb3, 0x64, 0x47}, MakeVersion(2, 2)}, }; mem::module mainModule = mem::module::main(); diff --git a/src/Image.h b/src/Image.h index 37c309c2..8f029c94 100644 --- a/src/Image.h +++ b/src/Image.h @@ -4,7 +4,7 @@ struct Image { void Initialize(); - static std::tuple GetSupportedVersion() noexcept { return std::make_tuple(2, 1); } + static std::tuple GetSupportedVersion() noexcept { return std::make_tuple(2, 2); } static uint64_t MakeVersion(const uint32_t acMajor, const uint16_t acMinor) noexcept { return static_cast(acMajor) << 32 | static_cast(acMinor) << 16; } diff --git a/src/reverse/Addresses.h b/src/reverse/Addresses.h index 93acbe10..8bfa68e5 100644 --- a/src/reverse/Addresses.h +++ b/src/reverse/Addresses.h @@ -8,98 +8,81 @@ */ #include -// Addresses for Cyberpunk 2077, version 2.01. +// Addresses for Cyberpunk 2077, version D:\Jenkins\ws\wwise_v2021.1\Wwise\SDK\source\SoundEngine\Plugins\Effects\MasteringSuite\MasteringSuiteFX.cpp. namespace CyberEngineTweaks::Addresses { constexpr uintptr_t ImageBase = 0x140000000; #pragma region CBaseInitializationState -constexpr uintptr_t CBaseInitializationState_OnTick = 0x14080DD74 - ImageBase; // 40 53 48 83 EC 20 48 8B 05 ? ? ? ? 33 DB 4C 8B C2 48 85 C0 ? ? ? ?, expected: 1, index: 0 +constexpr uintptr_t CBaseInitializationState_OnTick = 0x1408B437C - ImageBase; // 40 53 48 83 EC 20 48 8B 05 ? ? ? ? 33 DB 4C 8B C2 48 85 C0 ? ? ? ?, expected: 1, index: 0 #pragma endregion #pragma region CGame -constexpr uintptr_t CGame_Main = - 0x14027F4C8 - ImageBase; // 48 89 5C 24 10 55 56 57 48 8B EC 48 81 EC 80 00 00 00 48 8B F9 0F 29 74 24 70 0F 29 7C 24 60 48 8D 4D C0, expected: 1, index: 0 +constexpr uintptr_t CGame_Main = 0x1406F8F30 - ImageBase; // 48 89 5C 24 10 55 56 57 48 8B EC 48 81 EC 80 00 00 00 48 8B F9 0F 29 74 24 70 0F 29 7C 24 60 48 8D 4D C0, expected: 1, index: 0 #pragma endregion #pragma region CInitializationState -constexpr uintptr_t CInitializationState_OnTick = 0x14080DE30 - ImageBase; // 40 53 48 83 EC 30 48 8B 05 ? ? ? ? 33 DB 4C 8B C2 8B 88 08 01 00 00, expected: 1, index: 0 +constexpr uintptr_t CInitializationState_OnTick = 0x1408B4438 - ImageBase; // 40 53 48 83 EC 30 48 8B 05 ? ? ? ? 33 DB 4C 8B C2 8B 88 08 01 00 00, expected: 1, index: 0 #pragma endregion #pragma region CPatches -constexpr uintptr_t CPatches_BoundaryTeleport = - 0x140C40888 - ImageBase; // 48 8B C4 48 89 58 10 55 56 57 41 54 41 55 41 56 41 57 48 8D A8 F8 FE FF FF 48 81 EC D0 01 00 00 0F 29 78 B8 48 8D 51 48, expected: 1, index: 0 -constexpr uintptr_t CPatches_IntroMovie = 0x14011D94C - ImageBase; // 48 89 5C 24 08 57 48 83 EC 20 48 8B 44 24 50 48 8B D9 48 89 41 08, expected: 1, index: 0 -constexpr uintptr_t CPatches_Vignette = 0x14230B63C - ImageBase; // 33 C0 48 39 41 68 74 11, expected: 1, index: 0 -constexpr uintptr_t CPatches_OptionsInit = 0x14028585C - ImageBase; // 48 89 5C 24 08 55 48 8B EC 48 83 EC 70 48 83 65 F8 00 48 8B D9 83 65 F4 00, expected: 1, index: 0 +constexpr uintptr_t CPatches_BoundaryTeleport = 0x140C32074 - ImageBase; // 48 8B C4 48 89 58 10 55 56 57 41 54 41 55 41 56 41 57 48 8D A8 F8 FE FF FF 48 81 EC D0 01 00 00 0F 29 78 B8 48 8D 51 48, expected: 1, index: 0 +constexpr uintptr_t CPatches_IntroMovie = 0x14020334C - ImageBase; // 48 89 5C 24 08 57 48 83 EC 20 48 8B 44 24 50 48 8B D9 48 89 41 08, expected: 1, index: 0 +constexpr uintptr_t CPatches_Vignette = 0x14231CD5C - ImageBase; // 33 C0 48 39 41 68 74 11, expected: 1, index: 0 +constexpr uintptr_t CPatches_OptionsInit = 0x140342F44 - ImageBase; // 48 89 5C 24 08 55 48 8B EC 48 83 EC 70 48 83 65 F8 00 48 8B D9 83 65 F4 00, expected: 1, index: 0 #pragma endregion #pragma region CPhotoMode -constexpr uintptr_t CPhotoMode_SetRecordID = - 0x1407CE314 - ImageBase; // 48 89 5C 24 10 48 89 4C 24 08 55 48 8B EC 48 83 EC 40 48 8B DA 48 8D 4D E0 48 8D 55 10 E8, expected: 1, index: 0 +constexpr uintptr_t CPhotoMode_SetRecordID = 0x14040ADDC - ImageBase; // 48 89 5C 24 10 48 89 4C 24 08 55 48 8B EC 48 83 EC 40 48 8B DA 48 8D 4D E0 48 8D 55 10 E8, expected: 1, index: 0 #pragma endregion #pragma region CRenderGlobal -constexpr uintptr_t CRenderGlobal_InstanceOffset = - 0x1432FF478 - ImageBase; // 48 8B C4 48 89 58 08 48 89 68 10 48 89 70 18 4C 89 48 20 57 41 56 41 57 48 83 EC 30 8B 01 45 8B, expected: 1, index: 0, offset: 36 -constexpr uintptr_t CRenderGlobal__DoNotUse_RenderQueueOffset = - 0x1B5EFB7B0 - ImageBase; // 39 72 24 74 5B 48 8B 4A 18 4C 8D 8C 24 88 00 00 00 8B 42 24 44 8B C7 48 8B 95 ? ? ? ?, expected: 1, index: 0, offset: 0 -constexpr uintptr_t CRenderGlobal_Resize = - 0x1408E9984 - ImageBase; // 48 8B C4 44 88 48 20 44 89 40 18 89 50 10 89 48 08 55 53 56 57 41 54 41 55 41 56 41 57 48 8D 68 ? 48 81 EC ? ? 00 00, expected: 1, index: 0 -constexpr uintptr_t CRenderGlobal_Shutdown = 0x141037854 - ImageBase; // 40 53 48 83 EC 20 48 8B D9 48 8D 05 ? ? ? ? 48 81 C1 98 00 00 00 48 89 01 E8, expected: 1, index: 0 +constexpr uintptr_t CRenderGlobal_InstanceOffset = 0x1433106E8 - ImageBase; // 48 8B C4 48 89 58 08 48 89 68 10 48 89 70 18 4C 89 48 20 57 41 56 41 57 48 83 EC 30 8B 01 45 8B, expected: 1, index: 0, offset: 36 +constexpr uintptr_t CRenderGlobal__DoNotUse_RenderQueueOffset = 0x1B5F0E990 - ImageBase; // 39 72 24 74 5B 48 8B 4A 18 4C 8D 8C 24 88 00 00 00 8B 42 24 44 8B C7 48 8B 95 ? ? ? ?, expected: 1, index: 0, offset: 0 +constexpr uintptr_t CRenderGlobal_Resize = 0x1406BBF60 - ImageBase; // 48 8B C4 44 88 48 20 44 89 40 18 89 50 10 89 48 08 55 53 56 57 41 54 41 55 41 56 41 57 48 8D 68 ? 48 81 EC ? ? 00 00, expected: 1, index: 0 +constexpr uintptr_t CRenderGlobal_Shutdown = 0x140667BF4 - ImageBase; // 40 53 48 83 EC 20 48 8B D9 48 8D 05 ? ? ? ? 48 81 C1 98 00 00 00 48 89 01 E8, expected: 1, index: 0 #pragma endregion #pragma region CRenderNode_Present -constexpr uintptr_t CRenderNode_Present_DoInternal = - 0x1405EED20 - ImageBase; // 48 8B C4 48 89 58 08 48 89 68 10 48 89 70 18 4C 89 48 20 57 41 56 41 57 48 83 EC 30 8B 01 45 8B, expected: 1, index: 0 +constexpr uintptr_t CRenderNode_Present_DoInternal = 0x1405314C0 - ImageBase; // 48 8B C4 48 89 58 08 48 89 68 10 48 89 70 18 4C 89 48 20 57 41 56 41 57 48 83 EC 30 8B 01 45 8B, expected: 1, index: 0 #pragma endregion #pragma region CRunningState -constexpr uintptr_t CRunningState_OnTick = 0x14080DDCC - ImageBase; // 40 53 48 83 EC 30 83 64 24 28 00 48 8D 05 ? ? ? ? 48 8B 0D ? ? ? ? 48 8B DA, expected: 1, index: 0 +constexpr uintptr_t CRunningState_OnTick = 0x1408B43D4 - ImageBase; // 40 53 48 83 EC 30 83 64 24 28 00 48 8D 05 ? ? ? ? 48 8B 0D ? ? ? ? 48 8B DA, expected: 1, index: 0 #pragma endregion #pragma region CScript -constexpr uintptr_t CScript_RunPureScript = 0x140238744 - ImageBase; // 40 55 48 81 EC D0 00 00 00 48 8D 6C 24 40 8B, expected: 1, index: 0 -constexpr uintptr_t CScript_AllocateFunction = 0x141F92284 - ImageBase; // 40 53 48 83 EC 30 BA B8 00 00 00 48 8D 4C 24 20 E8, expected: 2, index: 0 -constexpr uintptr_t CScript_Log = 0x140EC160C - ImageBase; // 48 8B C4 53 48 83 EC 70 48 83 60 C0 00 48 8D 48 C8 83 60 BC 00, expected: 3, index: 0 -constexpr uintptr_t CScript_LogError = 0x141097738 - ImageBase; // 48 8B C4 53 48 83 EC 70 48 83 60 C0 00 48 8D 48 C8 83 60 BC 00, expected: 3, index: 1 -constexpr uintptr_t CScript_LogWarning = 0x141132CD0 - ImageBase; // 48 8B C4 53 48 83 EC 70 48 83 60 C0 00 48 8D 48 C8 83 60 BC 00, expected: 3, index: 2 -constexpr uintptr_t CScript_ToStringDEBUG = 0x140E08BF4 - ImageBase; // 48 89 5C 24 08 57 48 83 EC 20 83 64 24 38 00 4C 8D 15 ? ? ? ? FE 42 62 33 C0, expected: 4, index: 1 -constexpr uintptr_t CScript_LogChannel = 0x140CFD440 - ImageBase; // 48 89 5C 24 08 48 89 74 24 18 55 48 8B EC 48 83 EC 70 48 8B 02 48 8D 35 ? ? ? ? 48 83 65 18 00 4C 8D 45 18 48 - // 83 62 30 00 45 33 C9 48 83 62 38 00, expected: 2, index: 0 -constexpr uintptr_t CScript_LogChannelWarning = 0x141F9EDC8 - ImageBase; // 48 89 5C 24 08 48 89 74 24 18 55 48 8B EC 48 83 EC 70 48 8B 02 48 8D 35 ? ? ? ? 48 83 65 18 00 4C 8D 45 - // 18 48 83 62 30 00 45 33 C9 48 83 62 38 00, expected: 2, index: 1 -constexpr uintptr_t CScript_TDBIDConstructorDerive = 0x1404E61A8 - ImageBase; // 48 89 5C 24 10 48 89 6C 24 18 48 89 74 24 20 57 45 33 C9 48 8B FA, expected: 1, index: 0 -constexpr uintptr_t CScript_TranslateBytecode = - 0x14020BE10 - ImageBase; // 48 89 5C 24 08 48 89 6C 24 10 48 89 74 24 18 57 48 83 EC 20 48 8B 1A 48 8B E9 8B 42 0C, expected: 2, index: 0 -constexpr uintptr_t CScript_TweakDBLoad = - 0x14140F574 - ImageBase; // 48 89 5C 24 10 48 89 7C 24 18 55 48 8B EC 48 83 EC 70 48 8B F9 48 8B DA 48 8B 0D ? ? ? ? 48 8B 01 FF 90 B8 00 00 00, expected: 1, index: 0 -constexpr uintptr_t CScript_RegisterMemberFunction = - 0x140794064 - ImageBase; // 40 53 48 83 EC 20 49 8B C1 4D 8B D0 44 8B 4C 24 58 4C 8B DA 41 83 C9 03 4C 8B C0 49 8B D2 48 8B D9 E8, expected: 1, index: 0 +constexpr uintptr_t CScript_RunPureScript = 0x1401874F0 - ImageBase; // 40 55 48 81 EC D0 00 00 00 48 8D 6C 24 40 8B, expected: 1, index: 0 +constexpr uintptr_t CScript_AllocateFunction = 0x141FA3DF0 - ImageBase; // 40 53 48 83 EC 30 BA B8 00 00 00 48 8D 4C 24 20 E8, expected: 2, index: 0 +constexpr uintptr_t CScript_Log = 0x140EB23B8 - ImageBase; // 48 8B C4 53 48 83 EC 70 48 83 60 C0 00 48 8D 48 C8 83 60 BC 00, expected: 3, index: 0 +constexpr uintptr_t CScript_LogError = 0x14109A770 - ImageBase; // 48 8B C4 53 48 83 EC 70 48 83 60 C0 00 48 8D 48 C8 83 60 BC 00, expected: 3, index: 1 +constexpr uintptr_t CScript_LogWarning = 0x14112E59C - ImageBase; // 48 8B C4 53 48 83 EC 70 48 83 60 C0 00 48 8D 48 C8 83 60 BC 00, expected: 3, index: 2 +constexpr uintptr_t CScript_ToStringDEBUG = 0x140DF7BA0 - ImageBase; // 48 89 5C 24 08 57 48 83 EC 20 83 64 24 38 00 4C 8D 15 ? ? ? ? FE 42 62 33 C0, expected: 4, index: 1 +constexpr uintptr_t CScript_LogChannel = 0x140CCC6D0 - ImageBase; // 48 89 5C 24 08 48 89 74 24 18 55 48 8B EC 48 83 EC 70 48 8B 02 48 8D 35 ? ? ? ? 48 83 65 18 00 4C 8D 45 18 48 83 62 30 00 45 33 C9 48 83 62 38 00, expected: 2, index: 0 +constexpr uintptr_t CScript_LogChannelWarning = 0x141FB0728 - ImageBase; // 48 89 5C 24 08 48 89 74 24 18 55 48 8B EC 48 83 EC 70 48 8B 02 48 8D 35 ? ? ? ? 48 83 65 18 00 4C 8D 45 18 48 83 62 30 00 45 33 C9 48 83 62 38 00, expected: 2, index: 1 +constexpr uintptr_t CScript_TDBIDConstructorDerive = 0x14020B6C4 - ImageBase; // 48 89 5C 24 10 48 89 6C 24 18 48 89 74 24 20 57 45 33 C9 48 8B FA, expected: 1, index: 0 +constexpr uintptr_t CScript_TranslateBytecode = 0x1402ED8DC - ImageBase; // 48 89 5C 24 08 48 89 6C 24 10 48 89 74 24 18 57 48 83 EC 20 48 8B 1A 48 8B E9 8B 42 0C, expected: 2, index: 0 +constexpr uintptr_t CScript_TweakDBLoad = 0x1404986F0 - ImageBase; // 48 89 5C 24 10 48 89 7C 24 18 55 48 8B EC 48 ? EC 80 00 00 00 48 8B F9 48 8B DA 48 8B 0D, expected: 1, index: 0 +constexpr uintptr_t CScript_RegisterMemberFunction = 0x140A4E43C - ImageBase; // 40 53 48 83 EC 20 49 8B C1 4D 8B D0 44 8B 4C 24 58 4C 8B DA 41 83 C9 03 4C 8B C0 49 8B D2 48 8B D9 E8, expected: 1, index: 0 #pragma endregion #pragma region CShutdownState -constexpr uintptr_t CShutdownState_OnTick = 0x140A4DFD8 - ImageBase; // 40 53 48 83 EC 20 48 8B DA E8 ? ? ? ? 48 8B CB 89 83 B0 02 00 00 , expected: 1, index: 0 +constexpr uintptr_t CShutdownState_OnTick = 0x14043C194 - ImageBase; // 48 89 5C 24 08 57 48 83 EC 20 48 8B 0D ? ? ? ? 48, expected: 1, index: 0 #pragma endregion #pragma region CWinapi -constexpr uintptr_t CWinapi_ClipToCenter = 0x140251D18 - ImageBase; // 48 89 5C 24 08 55 48 8B EC 48 83 EC 30 48 8B D9 48 8B 89 68 01 00 00, expected: 1, index: 0 +constexpr uintptr_t CWinapi_ClipToCenter = 0x1402188E8 - ImageBase; // 48 89 5C 24 08 55 48 8B EC 48 83 EC 30 48 8B D9 48 8B 89 68 01 00 00, expected: 1, index: 0 #pragma endregion #pragma region gameIGameSystem -constexpr uintptr_t gameIGameSystem_Initialize = 0x140618E64 - ImageBase; // 48 89 5C 24 08 57 48 83 EC 30 48 8B 42 78 4C 8B CA 48 8B D9, expected: 1, index: 0 -constexpr uintptr_t gameIGameSystem_UnInitialize = 0x141F94FEC - ImageBase; // 48 89 5C 24 10 48 89 74 24 18 57 48 83 EC 20 48 8B F9 48 8D 51 42, expected: 2, index: 1 -constexpr uintptr_t gameIGameSystem_Spawn = - 0x14060200C - ImageBase; // 48 89 5C 24 10 48 89 74 24 18 55 57 41 56 48 8D 6C 24 B0 48 81 EC 50 01 00 00 48 83 79 50 00 49 8B D9 4D 8B F0, expected: 1, index: 0 -constexpr uintptr_t gameIGameSystem_Despawn = - 0x1404C6C18 - - ImageBase; // 48 8B C4 48 89 58 08 48 89 68 10 48 89 70 18 48 89 78 20 41 56 48 83 EC 40 48 8B E9 0F 57 C0 48 83 C1 41 48 8B F2 F3 0F 7F 40 D8 E8, expected: 1, index: 0 -constexpr uintptr_t gameIGameSystem_SpawnCallback = - 0x140425F14 - ImageBase; // 48 89 5C 24 10 48 89 6C 24 18 48 89 74 24 20 57 48 83 EC 60 48 8B F1 48 8B FA 48 83 C1 48 E8, expected: 1, index: 0 +constexpr uintptr_t gameIGameSystem_Initialize = 0x14081776C - ImageBase; // 48 89 5C 24 08 57 48 83 EC 30 48 8B 42 78 4C 8B CA 48 8B D9, expected: 1, index: 0 +constexpr uintptr_t gameIGameSystem_UnInitialize = 0x141FA30B8 - ImageBase; // 48 89 5C 24 10 48 89 74 24 18 57 48 83 EC 20 48 8B F9 48 8D 51 42, expected: 2, index: 1 +constexpr uintptr_t gameIGameSystem_Spawn = 0x14040A664 - ImageBase; // 48 89 5C 24 10 48 89 74 24 18 55 57 41 56 48 8D 6C 24 B0 48 81 EC 50 01 00 00 48 83 79 50 00 49 8B D9 4D 8B F0, expected: 1, index: 0 +constexpr uintptr_t gameIGameSystem_Despawn = 0x1407F22E8 - ImageBase; // 48 8B C4 48 89 58 08 48 89 68 10 48 89 70 18 48 89 78 20 41 56 48 83 EC 40 48 8B E9 0F 57 C0 48 83 C1 41 48 8B F2 F3 0F 7F 40 D8 E8, expected: 1, index: 0 +constexpr uintptr_t gameIGameSystem_SpawnCallback = 0x14035415C - ImageBase; // 48 89 5C 24 10 48 89 6C 24 18 48 89 74 24 20 57 48 83 EC 60 48 8B F1 48 8B FA 48 83 C1 48 E8, expected: 1, index: 0 #pragma endregion #pragma region PlayerSystem -constexpr uintptr_t PlayerSystem_OnPlayerSpawned = - 0x1409ECD54 - ImageBase; // 48 89 5C 24 18 48 89 74 24 20 55 57 41 54 41 56 41 57 48 8B EC 48 83 EC 50 48 8B DA 48 8B F9, expected: 1, index: 0 +constexpr uintptr_t PlayerSystem_OnPlayerSpawned = 0x1409713B4 - ImageBase; // 48 89 5C 24 18 48 89 74 24 20 55 57 41 54 41 56 41 57 48 8B EC 48 83 EC 50 48 8B DA 48 8B F9, expected: 1, index: 0 #pragma endregion } // namespace CyberEngineTweaks::Addresses diff --git a/vendor/RED4ext.SDK b/vendor/RED4ext.SDK index 9df79fd6..83dc9205 160000 --- a/vendor/RED4ext.SDK +++ b/vendor/RED4ext.SDK @@ -1 +1 @@ -Subproject commit 9df79fd6b51ab262ea17e070a4bf1b1b034a34e9 +Subproject commit 83dc92058687e117ea01db1990b75e2dfb4c31a8