Skip to content

Commit dc5254c

Browse files
committed
Merge Remove support for older RDR builds (pr-3385)
772985d - tweak(rdr): remove support for older rdr builds
2 parents 639c50d + 772985d commit dc5254c

File tree

27 files changed

+134
-650
lines changed

27 files changed

+134
-650
lines changed

code/client/launcher/ExecutableLoader.Snapshot.cpp

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -108,22 +108,7 @@ inline uintptr_t GetTriggerEP()
108108
return ep;
109109
}
110110

111-
if (xbr::IsGameBuild<1355>())
112-
{
113-
return 0x142DE455C; // 1355.18
114-
}
115-
116-
if (xbr::IsGameBuild<1436>())
117-
{
118-
return 0x142E13DA4; // 1436.31
119-
}
120-
121-
if (xbr::IsGameBuild<1491>())
122-
{
123-
return 0x142E4FAD0; // 1491.50
124-
}
125-
126-
return 0x142E0F92C; // 1311.20
111+
return 0x142E4FAD0; // 1491.50
127112
}
128113

129114
#define TRIGGER_EP (GetTriggerEP())

code/client/launcher/GameCache.cpp

Lines changed: 1 addition & 191 deletions
Large diffs are not rendered by default.

code/components/citizen-server-impl/include/state/ServerGameState.h

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -174,36 +174,6 @@ inline bool Is3407()
174174
return value;
175175
}
176176
#elif defined(STATE_RDR3)
177-
inline bool Is1311()
178-
{
179-
static bool value = ([]()
180-
{
181-
return fx::GetEnforcedGameBuildNumber() >= 1311;
182-
})();
183-
184-
return value;
185-
}
186-
187-
inline bool Is1355()
188-
{
189-
static bool value = ([]()
190-
{
191-
return fx::GetEnforcedGameBuildNumber() >= 1355;
192-
})();
193-
194-
return value;
195-
}
196-
197-
inline bool Is1436()
198-
{
199-
static bool value = ([]()
200-
{
201-
return fx::GetEnforcedGameBuildNumber() >= 1436;
202-
})();
203-
204-
return value;
205-
}
206-
207177
inline bool Is1491()
208178
{
209179
static bool value = ([]()

code/components/citizen-server-impl/include/state/SyncTrees_RDR3.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -435,10 +435,7 @@ struct CBoatGameStateDataNode
435435
bool unk52 = state.buffer.ReadBit();
436436
bool forcedBoatLocationWhenAnchored = state.buffer.ReadBit();
437437

438-
if (Is1355())
439-
{
440-
bool unk54 = state.buffer.ReadBit();
441-
}
438+
bool unk54 = state.buffer.ReadBit();
442439

443440
bool movementResistant = state.buffer.ReadBit(); // resistance >= 0.0
444441

code/components/citizen-server-impl/src/state/ServerGameState.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6193,7 +6193,7 @@ void CExplosionEvent::Parse(rl::MessageBufferView& buffer)
61936193
f142 = buffer.ReadBit();
61946194
f273 = buffer.ReadBit();
61956195

6196-
unkHash1436 = Is1436() ? buffer.Read<uint32_t>(32) : 0;
6196+
unkHash1436 = buffer.Read<uint32_t>(32);
61976197

61986198
attachEntityId = buffer.Read<uint16_t>(13);
61996199
f244 = buffer.Read<uint8_t>(5); // 1311+

code/components/extra-natives-rdr3/src/NativeFixes.cpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -159,13 +159,10 @@ static HookFunction hookFunction([]()
159159
hook::put<uintptr_t>(&vtable[204], (uintptr_t)CanBlendWhenFixed);
160160
}
161161

162-
if (xbr::IsGameBuildOrGreater<1436>())
163-
{
164-
auto location = hook::get_pattern<char>("0F 28 05 ? ? ? ? 83 25 ? ? ? ? 00 83 25 ? ? ? ? 00");
162+
auto location = hook::get_pattern<char>("0F 28 05 ? ? ? ? 83 25 ? ? ? ? 00 83 25 ? ? ? ? 00");
165163

166-
g_textCentre = hook::get_address<bool*>(location + 0x33) + 2;
167-
g_textDropshadow = hook::get_address<bool*>(location + 0x3B) + 1;
168-
}
164+
g_textCentre = hook::get_address<bool*>(location + 0x33) + 2;
165+
g_textDropshadow = hook::get_address<bool*>(location + 0x3B) + 1;
169166

170167
rage::scrEngine::OnScriptInit.Connect([]()
171168
{
@@ -174,12 +171,8 @@ static HookFunction hookFunction([]()
174171
// R* removed some text related natives since RDR3 1436.25 build.
175172
// Redirecting original natives to their successors to keep cross build compatibility.
176173
// Also re-implementing entirely removed natives.
177-
if (xbr::IsGameBuildOrGreater<1436>())
178-
{
179-
RedirectNoppedTextNatives();
180-
ImplementRemovedTextNatives();
181-
}
182-
174+
RedirectNoppedTextNatives();
175+
ImplementRemovedTextNatives();
183176
FixPedCombatAttributes();
184177
});
185178

code/components/gta-core-rdr3/src/GameCrashLogHandler.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,6 @@ static bool WriteGameLog(const char* path)
3838

3939
static HookFunction hookFunction([]
4040
{
41-
if (!xbr::IsGameBuildOrGreater<1311>())
42-
{
43-
return;
44-
}
45-
4641
g_gameLogWriter = (decltype(g_gameLogWriter))hook::get_pattern("48 8B D9 E8 ? ? ? ? 48 8B CB E8 ? ? ? ? 48 8D 15", -0xD);
4742

4843
if (auto func = (void (*)(bool (*)(const char*)))GetProcAddress(GetModuleHandleW(L"CoreRT.dll"), "SetCrashLogHandler"))

code/components/gta-core-rdr3/src/GameInitRage.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -269,14 +269,11 @@ static HookFunction hookFunctionNet([]()
269269
hook::jump(hook::get_pattern("84 C0 74 04 32 C0 EB 0E 4C 8B C7 48 8B D6", -0x1D), ReturnTrueAndForcePedMPFlag);
270270
hook::jump(hook::get_pattern("40 8A F2 48 8B F9 E8 ? ? ? ? 84 C0 74", -0x12), ReturnTrueAndForcePedMPFlag);
271271

272-
if (xbr::IsGameBuildOrGreater<1436>())
273-
{
274-
// nop checks used for not syncing some "unwanted" metaped components
275-
hook::nop(hook::get_pattern("8B 40 18 3D CC E2 69 9D"), 0x2F);
272+
// nop checks used for not syncing some "unwanted" metaped components
273+
hook::nop(hook::get_pattern("8B 40 18 3D CC E2 69 9D"), 0x2F);
276274

277-
// skip tunable checks for explosion/fire related natives
278-
hook::jump(hook::get_pattern("B9 BD C5 AF E3 BA B2 A0 A7 92", -0x14), Return1);
279-
}
275+
// skip tunable checks for explosion/fire related natives
276+
hook::jump(hook::get_pattern("B9 BD C5 AF E3 BA B2 A0 A7 92", -0x14), Return1);
280277

281278
//hook::jump(0x1406B50E8, LogStubLog1);
282279

code/components/gta-core-rdr3/src/SimpleAllocator.cpp

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -474,21 +474,10 @@ static HookFunction hookFunction([]()
474474
hook::call(ptr + 0x21, corrupt_this.GetCode());
475475
hook::call(ptr + 0x75, corrupt_next.GetCode());
476476
#elif IS_RDR3
477-
if (xbr::IsGameBuildOrGreater<1436>())
478-
{
479-
char* ptr = hook::get_pattern<char>("F7 46 ? ? ? ? ? 48 8D 5E");
477+
char* ptr = hook::get_pattern<char>("F7 46 ? ? ? ? ? 48 8D 5E");
480478

481-
hook::call(ptr + 0x18, already_free.GetCode());
482-
hook::call(ptr + 0x31, corrupt_this.GetCode());
483-
hook::call(ptr + 0xA1, corrupt_next.GetCode());
484-
}
485-
else
486-
{
487-
char* ptr = hook::get_pattern<char>("8B 43 ? 48 83 C3 ? 0F BA E0");
488-
489-
hook::call(ptr + 0x17, already_free.GetCode());
490-
hook::call(ptr + 0x34, corrupt_this.GetCode());
491-
hook::call(ptr + 0xA4, corrupt_next.GetCode());
492-
}
479+
hook::call(ptr + 0x18, already_free.GetCode());
480+
hook::call(ptr + 0x31, corrupt_this.GetCode());
481+
hook::call(ptr + 0xA1, corrupt_next.GetCode());
493482
#endif
494483
});

code/components/gta-game-rdr3/include/NetworkPlayerMgr.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@
1616
#endif
1717

1818
#define DECLARE_ACCESSOR(x) \
19-
decltype(impl.m1311.x)& x() \
19+
decltype(impl.m1491.x)& x() \
2020
{ \
21-
return (impl.m1311.x); \
21+
return (impl.m1491.x); \
2222
} \
23-
const decltype(impl.m1311.x)& x() const \
23+
const decltype(impl.m1491.x)& x() const \
2424
{ \
25-
return (impl.m1311.x); \
25+
return (impl.m1491.x); \
2626
}
2727

2828
namespace rage
@@ -81,13 +81,13 @@ class CNetGamePlayer : public rage::netPlayer
8181

8282
union
8383
{
84-
Impl m1311;
84+
Impl m1491;
8585
} impl;
8686

8787
public:
8888
void* GetPlayerInfo()
8989
{
90-
if (auto pedPlayerComponent = (void*)(impl.m1311.pedPlayerComponent))
90+
if (auto pedPlayerComponent = (void*)(impl.m1491.pedPlayerComponent))
9191
{
9292
return (void*)((char*)pedPlayerComponent + 0x130);
9393
}

code/components/gta-net-five/src/CloneExperiments.cpp

Lines changed: 18 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,7 +1334,8 @@ static void* NetworkObjectMgrCtorStub(void* mgr, void* bw, void* unk)
13341334
auto alloc = rage::GetAllocator();
13351335
alloc->Free(mgr);
13361336

1337-
int initialSize = (xbr::IsGameBuildOrGreater<1355>()) ? 268672 : 163056;
1337+
// TODO: Remove if not needed, was used for new rdr version checks
1338+
int initialSize = 268672;
13381339

13391340
mgr = alloc->Allocate(initialSize + 4096, 16, 0);
13401341

@@ -1645,20 +1646,10 @@ static HookFunction hookFunction([]()
16451646
hook::call_rcx(location, ownerLoop.GetCode());
16461647
hook::put<uint16_t>(location + 0x3F, 0xC084); // test al, al
16471648
#elif IS_RDR3
1648-
if (xbr::IsGameBuildOrGreater<1436>())
1649-
{
1650-
auto location = hook::get_pattern<char>("48 8B CB E8 ? ? ? ? 48 85 C0 75 27 8D 50 01");
1651-
hook::nop(location, 0x6E);
1652-
hook::call_rcx(location, ownerLoop.GetCode());
1653-
hook::put<uint16_t>(location + 0x6E, 0xC084); // test al, al
1654-
}
1655-
else
1656-
{
1657-
auto location = hook::get_pattern<char>("48 8B CB E8 ? ? ? ? 48 85 C0 74 57 48 8B CB");
1658-
hook::nop(location, 0x47);
1659-
hook::call_rcx(location, ownerLoop.GetCode());
1660-
hook::put<uint16_t>(location + 0x47, 0xC084); // test al, al
1661-
}
1649+
auto location = hook::get_pattern<char>("48 8B CB E8 ? ? ? ? 48 85 C0 75 27 8D 50 01");
1650+
hook::nop(location, 0x6E);
1651+
hook::call_rcx(location, ownerLoop.GetCode());
1652+
hook::put<uint16_t>(location + 0x6E, 0xC084); // test al, al
16621653
#endif
16631654
}
16641655

@@ -1720,8 +1711,8 @@ static HookFunction hookFunction([]()
17201711
MH_CreateHook(hook::get_pattern("4C 8B F1 41 BD 05", -0x22), PassObjectControlStub, (void**)&g_origPassObjectControl);
17211712
MH_CreateHook(hook::get_pattern("8A 41 49 4C 8B F2 48 8B", -0x10), SetOwnerStub, (void**)&g_origSetOwner);
17221713
#elif IS_RDR3
1723-
MH_CreateHook(hook::get_pattern("48 8B D9 E8 ? ? ? ? 33 ? 66 C7 83", (xbr::IsGameBuildOrGreater<1355>()) ? -0xA : -0x6), NetworkObjectMgrCtorStub, (void**)&g_origNetworkObjectMgrCtor);
1724-
MH_CreateHook(hook::get_pattern("83 FE 01 41 0F 9F C4 48 85 DB 74", (xbr::IsGameBuildOrGreater<1436>()) ? -0x99 : -0x71), PassObjectControlStub, (void**)&g_origPassObjectControl);
1714+
MH_CreateHook(hook::get_pattern("48 8B D9 E8 ? ? ? ? 33 ? 66 C7 83", -0xA), NetworkObjectMgrCtorStub, (void**)&g_origNetworkObjectMgrCtor);
1715+
MH_CreateHook(hook::get_pattern("83 FE 01 41 0F 9F C4 48 85 DB 74", -0x99), PassObjectControlStub, (void**)&g_origPassObjectControl);
17251716
MH_CreateHook(hook::get_call(hook::get_pattern("E8 ? ? ? ? 80 7B 47 00 75 ? 48 8B 03")), SetOwnerStub, (void**)&g_origSetOwner);
17261717
#endif
17271718

@@ -1774,8 +1765,8 @@ static HookFunction hookFunction([]()
17741765
MH_CreateHook(hook::get_pattern("8A 41 49 3C FF 74 17 3C 20 73 13 0F B6 C8"), netObject__GetPlayerOwner, (void**)&g_origGetOwnerNetPlayer);
17751766
MH_CreateHook(hook::get_pattern("8A 41 4A 3C FF 74 17 3C 20 73 13 0F B6 C8"), netObject__GetPendingPlayerOwner, (void**)&g_origGetPendingPlayerOwner);
17761767
#elif IS_RDR3
1777-
MH_CreateHook(hook::get_pattern((xbr::IsGameBuildOrGreater<1436>()) ? "8A 49 45 80 F9 20 72 03 33 C0 C3" : "80 79 45 20 72 ? 33 C0 C3"), netObject__GetPlayerOwner, (void**)&g_origGetOwnerNetPlayer);
1778-
MH_CreateHook(hook::get_pattern((xbr::IsGameBuildOrGreater<1436>()) ? "8A 49 46 80 F9 FF 75 03" : "8A 41 46 3C FF 74"), netObject__GetPendingPlayerOwner, (void**)&g_origGetPendingPlayerOwner);
1768+
MH_CreateHook(hook::get_pattern("8A 49 45 80 F9 20 72 03 33 C0 C3"), netObject__GetPlayerOwner, (void**)&g_origGetOwnerNetPlayer);
1769+
MH_CreateHook(hook::get_pattern("8A 49 46 80 F9 FF 75 03"), netObject__GetPendingPlayerOwner, (void**)&g_origGetPendingPlayerOwner);
17791770
#endif
17801771

17811772
// function is only 4 bytes, can't be hooked like this
@@ -1816,7 +1807,7 @@ static HookFunction hookFunction([]()
18161807
#ifdef GTA_FIVE
18171808
auto location = hook::get_pattern("48 8B D0 E8 ? ? ? ? E8 ? ? ? ? 83 BB ? ? ? ? 04", 3);
18181809
#elif IS_RDR3
1819-
auto location = (xbr::IsGameBuildOrGreater<1436>()) ? hook::get_pattern("40 0F B6 CF 48 89 44 CB 40 48", -5) : hook::get_pattern("48 85 C9 74 ? 4C 8D 44 24 40 40 88 7C", 18);
1810+
auto location = hook::get_pattern("40 0F B6 CF 48 89 44 CB 40 48", -5);
18201811
#endif
18211812

18221813
hook::set_call(&g_origJoinBubble, location);
@@ -1840,10 +1831,9 @@ static HookFunction hookFunction([]()
18401831
MH_CreateHook(hook::get_call(hook::get_pattern("40 0F 92 C7 40 84 FF 0F 85 ? ? ? ? 40 8A CE E8", 16)), GetPlayerByIndex, nullptr);
18411832
}
18421833
#elif IS_RDR3
1843-
auto pattern = (xbr::IsGameBuildOrGreater<1436>()) ? "80 F9 20 72 2B BA" : "80 F9 20 73 13 48 8B";
1844-
auto match = hook::pattern(pattern).count(2);
1845-
MH_CreateHook(match.get(0).get<void>((xbr::IsGameBuildOrGreater<1436>()) ? -19 : 0), GetPlayerByIndex, (void**)&g_origGetPlayerByIndex);
1846-
MH_CreateHook(match.get(1).get<void>((xbr::IsGameBuildOrGreater<1436>()) ? -19 : 0), GetPlayerByIndex, nullptr);
1834+
auto match = hook::pattern("80 F9 20 72 2B BA").count(2);
1835+
MH_CreateHook(match.get(0).get<void>(-19), GetPlayerByIndex, (void**)&g_origGetPlayerByIndex);
1836+
MH_CreateHook(match.get(1).get<void>(-19), GetPlayerByIndex, nullptr);
18471837
#endif
18481838
}
18491839

@@ -1946,7 +1936,7 @@ static HookFunction hookFunction([]()
19461936

19471937
#ifdef IS_RDR3
19481938
// in RDR3 net player relevance position is cached in array indexed with physical player index, we need to patch it
1949-
MH_CreateHook((xbr::IsGameBuildOrGreater<1436>()) ? hook::get_pattern("0F A3 D0 0F 92 C0 88 06", -0x76) : hook::get_pattern("44 0F A3 C0 0F 92 C0 41 88 02", -0x32), getNetPlayerRelevancePosition, (void**)&g_origGetNetPlayerRelevancePosition);
1939+
MH_CreateHook(hook::get_pattern("0F A3 D0 0F 92 C0 88 06", -0x76), getNetPlayerRelevancePosition, (void**)&g_origGetNetPlayerRelevancePosition);
19501940
#endif
19511941

19521942
// always allow to migrate, even if not cloned on bit test
@@ -1986,14 +1976,7 @@ static HookFunction hookFunction([]()
19861976
#ifdef GTA_FIVE
19871977
hook::call(hook::get_pattern("48 C1 EA 04 E8 ? ? ? ? 48 8B 03", 17), delStub.GetCode());
19881978
#elif IS_RDR3
1989-
if (xbr::IsGameBuildOrGreater<1436>())
1990-
{
1991-
hook::call(hook::get_pattern("48 8B 06 41 8B D4 48 8B CE FF 10 48 8B 5C", 6), delStub.GetCode());
1992-
}
1993-
else
1994-
{
1995-
hook::call(hook::get_pattern("48 8B 06 BA 01 00 00 00 48 8B CE FF 10 48 8B 5C 24 50", 8), delStub.GetCode());
1996-
}
1979+
hook::call(hook::get_pattern("48 8B 06 41 8B D4 48 8B CE FF 10 48 8B 5C", 6), delStub.GetCode());
19971980
#endif
19981981

19991982
#ifdef IS_RDR3
@@ -2026,7 +2009,7 @@ static HookFunction hookFunction([]()
20262009

20272010
// patch SerializePlayerIndex methods of sync data reader/writer
20282011
MH_CreateHook(hook::get_pattern("80 3B 20 73 ? 65 4C 8B 0C", -0x2F), SyncDataReaderSerializePlayerIndex, (void**)&g_origSyncDataReaderSerializePlayerIndex);
2029-
MH_CreateHook(xbr::IsGameBuildOrGreater<1436>() ? hook::get_pattern("41 B2 3F 48 8D 54 24 30 44 88", -30) : hook::get_pattern("80 3A 20 48 8B D9 C6 44", -6), SyncDataWriterSerializePlayerIndex, (void**)&g_origSyncDataWriterSerializePlayerIndex);
2012+
MH_CreateHook(hook::get_pattern("41 B2 3F 48 8D 54 24 30 44 88", -30), SyncDataWriterSerializePlayerIndex, (void**)&g_origSyncDataWriterSerializePlayerIndex);
20302013

20312014
// also patch sync data size calculator allowing more bits
20322015
{
@@ -2468,7 +2451,7 @@ static HookFunction hookFunction2([]()
24682451
#ifdef GTA_FIVE
24692452
MH_CreateHook(hook::get_pattern("48 8B 03 48 8B D6 48 8B CB EB 06", -0x48), ReadDataNodeStub, (void**)&g_origReadDataNode);
24702453
#elif IS_RDR3
2471-
MH_CreateHook(xbr::IsGameBuildOrGreater<1436>() ? hook::get_pattern("42 8A BC 6B", -0x33) : hook::get_pattern("40 8A BC 43", -0x3D), ReadDataNodeStub, (void**)&g_origReadDataNode);
2454+
MH_CreateHook(hook::get_pattern("42 8A BC 6B", -0x33), ReadDataNodeStub, (void**)&g_origReadDataNode);
24722455
#endif
24732456

24742457
#ifdef GTA_FIVE

code/components/gta-net-five/src/CloneExperiments_ArrayHandler.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ static hook::cdecl_stub<rage::netArrayHandlerBase*(rage::netArrayManager*, int,
1818
#ifdef GTA_FIVE
1919
return hook::get_call(hook::get_pattern("48 8B 0D ? ? ? ? BA 06 00 00 00 45 33 C0", 0xF));
2020
#elif IS_RDR3
21-
return hook::get_call((xbr::IsGameBuildOrGreater<1436>()) ? hook::get_pattern("48 8B 0D ? ? ? ? 41 8D 56 06 45 33 C0", 0xE) : hook::get_pattern("48 8B 0D ? ? ? ? BA 06 00 00 00 45 33 C0", 0xF));
21+
return hook::get_call(hook::get_pattern("48 8B 0D ? ? ? ? 41 8D 56 06 45 33 C0", 0xE));
2222
#endif
2323
});
2424

@@ -112,7 +112,7 @@ static HookFunction hookFunctionArray([]()
112112
#ifdef GTA_FIVE
113113
g_arrayManager = hook::get_address<rage::netArrayManager**>(hook::get_pattern("48 8B 0D ? ? ? ? BA 06 00 00 00 45 33 C0", 3));
114114
#elif IS_RDR3
115-
g_arrayManager = hook::get_address<rage::netArrayManager**>((xbr::IsGameBuildOrGreater<1436>()) ? hook::get_pattern("48 8B 0D ? ? ? ? 41 8D 56 06 45 33 C0", 3) : hook::get_pattern("48 8B 0D ? ? ? ? BA 06 00 00 00 45 33 C0", 3));
115+
g_arrayManager = hook::get_address<rage::netArrayManager**>(hook::get_pattern("48 8B 0D ? ? ? ? 41 8D 56 06 45 33 C0", 3));
116116
#endif
117117
});
118118

code/components/gta-net-five/src/CloneObjectManager.cpp

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -202,20 +202,11 @@ static HookFunction hookFunction([]()
202202
MH_CreateHook(hook::get_pattern("44 38 33 75 30 66 44", -0x40), netObjectMgrBase__GetNetworkObject, (void**)&g_orig_netObjectMgrBase__GetNetworkObject); //
203203
MH_CreateHook(hook::get_pattern("41 80 78 ? FF 74 2D 41 0F B6 40"), netObjectMgrBase__GetNetworkObjectForPlayer, (void**)&g_orig_netObjectMgrBase__GetNetworkObjectForPlayer);
204204
#elif IS_RDR3
205-
if (xbr::IsGameBuildOrGreater<1436>())
206-
{
207-
MH_CreateHook(hook::get_pattern("48 8B F2 41 B0 01 0F B7 52", -0x1B), netObjectMgrBase__RegisterNetworkObject, (void**)&g_orig_netObjectMgrBase__RegisterNetworkObject);
208-
MH_CreateHook(hook::get_call(hook::get_pattern("E8 ? ? ? ? 48 8D 76 08 48 83 EB 01 75 E8")), netObjectMgrBase__DestroyNetworkObject, (void**)&g_orig_netObjectMgrBase__DestroyNetworkObject);
209-
MH_CreateHook(hook::get_pattern("0F B6 43 ? 48 03 C0 48 8B 4C C7 08 EB", -0x64), netObjectMgrBase__GetNetworkObjectForPlayer, (void**)&g_orig_netObjectMgrBase__GetNetworkObjectForPlayer);
210-
}
211-
else
212-
{
213-
MH_CreateHook(hook::get_pattern("41 0F B7 55 00 41 B0 01 48 8B E9 E8", xbr::IsGameBuildOrGreater<1355>() ? -0x20 : -0x27), netObjectMgrBase__RegisterNetworkObject, (void**)&g_orig_netObjectMgrBase__RegisterNetworkObject);
214-
MH_CreateHook(hook::get_pattern("45 33 FF C1 E8 03 48 8B F2 48 8B E9 A8 01", -0x24), netObjectMgrBase__DestroyNetworkObject, (void**)&g_orig_netObjectMgrBase__DestroyNetworkObject);
215-
MH_CreateHook(hook::get_pattern("0F B6 43 ? 48 03 C0 48 8B 4C C7 08 EB", -0x3B), netObjectMgrBase__GetNetworkObjectForPlayer, (void**)&g_orig_netObjectMgrBase__GetNetworkObjectForPlayer);
216-
}
205+
MH_CreateHook(hook::get_pattern("48 8B F2 41 B0 01 0F B7 52", -0x1B), netObjectMgrBase__RegisterNetworkObject, (void**)&g_orig_netObjectMgrBase__RegisterNetworkObject);
206+
MH_CreateHook(hook::get_call(hook::get_pattern("E8 ? ? ? ? 48 8D 76 08 48 83 EB 01 75 E8")), netObjectMgrBase__DestroyNetworkObject, (void**)&g_orig_netObjectMgrBase__DestroyNetworkObject);
207+
MH_CreateHook(hook::get_pattern("0F B6 43 ? 48 03 C0 48 8B 4C C7 08 EB", -0x64), netObjectMgrBase__GetNetworkObjectForPlayer, (void**)&g_orig_netObjectMgrBase__GetNetworkObjectForPlayer);
217208

218-
MH_CreateHook(hook::get_pattern("41 83 F9 04 75 ? 8D 4B 20 E8 ? ? ? ? 48", xbr::IsGameBuildOrGreater<1491>() ? -0x39 : -0x31), netObjectMgrBase__ChangeOwner, (void**)&g_orig_netObjectMgrBase__ChangeOwner);
209+
MH_CreateHook(hook::get_pattern("41 83 F9 04 75 ? 8D 4B 20 E8 ? ? ? ? 48", -0x39), netObjectMgrBase__ChangeOwner, (void**)&g_orig_netObjectMgrBase__ChangeOwner);
219210
MH_CreateHook(hook::get_pattern("45 8A F0 0F B7 F2 E8 ? ? ? ? 33 DB 38", -0x24), netObjectMgrBase__GetNetworkObject, (void**)&g_orig_netObjectMgrBase__GetNetworkObject);
220211
#endif
221212

0 commit comments

Comments
 (0)