Disable unstable GPS multiplier hooks

This commit is contained in:
2026-06-20 15:01:20 -05:00
parent 2a5d4a6473
commit 56bfa2460c
+15 -8
View File
@@ -95,6 +95,7 @@ constexpr uint32_t kGameStateRunning = 2;
constexpr bool kEnableVerboseJournalListenerHooks = false; constexpr bool kEnableVerboseJournalListenerHooks = false;
constexpr bool kEnableVerboseRouteObserverHooks = false; constexpr bool kEnableVerboseRouteObserverHooks = false;
constexpr bool kEnableVerboseMappinRouteState = false; constexpr bool kEnableVerboseMappinRouteState = false;
constexpr bool kEnableGpsMultiplierHooks = false;
constexpr uintptr_t kGpsSystemTickRva = 0x0E6B62C; constexpr uintptr_t kGpsSystemTickRva = 0x0E6B62C;
constexpr uintptr_t kJournalTrackEntryImplRva = 0x05944FC; constexpr uintptr_t kJournalTrackEntryImplRva = 0x05944FC;
constexpr uintptr_t kJournalListenerArrayOffset = 0x210; constexpr uintptr_t kJournalListenerArrayOffset = 0x210;
@@ -3932,12 +3933,15 @@ RED4EXT_C_EXPORT bool RED4EXT_CALL Main(RED4ext::v1::PluginHandle aHandle, RED4e
reinterpret_cast<void**>(&gOriginalGpsSearch)); reinterpret_cast<void**>(&gOriginalGpsSearch));
AttachProbeHook("GPSEdgeCost 0x44f838", kGpsEdgeCostRva, reinterpret_cast<void*>(&DetourGpsEdgeCost), AttachProbeHook("GPSEdgeCost 0x44f838", kGpsEdgeCostRva, reinterpret_cast<void*>(&DetourGpsEdgeCost),
reinterpret_cast<void**>(&gOriginalGpsEdgeCost)); reinterpret_cast<void**>(&gOriginalGpsEdgeCost));
AttachProbeHook("GPSAuxMultiplier 0x40bb00", kGpsAuxMultiplierRva, if (kEnableGpsMultiplierHooks)
reinterpret_cast<void*>(&DetourGpsAuxMultiplier), {
reinterpret_cast<void**>(&gOriginalGpsAuxMultiplier)); AttachProbeHook("GPSAuxMultiplier 0x40bb00", kGpsAuxMultiplierRva,
AttachProbeHook("GPSNodeMultiplier 0x40bb40", kGpsNodeMultiplierRva, reinterpret_cast<void*>(&DetourGpsAuxMultiplier),
reinterpret_cast<void*>(&DetourGpsNodeMultiplier), reinterpret_cast<void**>(&gOriginalGpsAuxMultiplier));
reinterpret_cast<void**>(&gOriginalGpsNodeMultiplier)); AttachProbeHook("GPSNodeMultiplier 0x40bb40", kGpsNodeMultiplierRva,
reinterpret_cast<void*>(&DetourGpsNodeMultiplier),
reinterpret_cast<void**>(&gOriginalGpsNodeMultiplier));
}
AttachProbeHook("GPSSystem/Tick", kGpsSystemTickRva, reinterpret_cast<void*>(&DetourGpsSystemTick), AttachProbeHook("GPSSystem/Tick", kGpsSystemTickRva, reinterpret_cast<void*>(&DetourGpsSystemTick),
reinterpret_cast<void**>(&gOriginalGpsSystemTick)); reinterpret_cast<void**>(&gOriginalGpsSystemTick));
AttachProbeHook("JournalManager::TrackEntry impl", kJournalTrackEntryImplRva, AttachProbeHook("JournalManager::TrackEntry impl", kJournalTrackEntryImplRva,
@@ -4060,8 +4064,11 @@ RED4EXT_C_EXPORT bool RED4EXT_CALL Main(RED4ext::v1::PluginHandle aHandle, RED4e
DetachProbeHook("GPSRouteProducer 0x44cc7c", kGpsRouteProducerRva); DetachProbeHook("GPSRouteProducer 0x44cc7c", kGpsRouteProducerRva);
DetachProbeHook("GPSSearch 0x44f054", kGpsSearchRva); DetachProbeHook("GPSSearch 0x44f054", kGpsSearchRva);
DetachProbeHook("GPSEdgeCost 0x44f838", kGpsEdgeCostRva); DetachProbeHook("GPSEdgeCost 0x44f838", kGpsEdgeCostRva);
DetachProbeHook("GPSAuxMultiplier 0x40bb00", kGpsAuxMultiplierRva); if (kEnableGpsMultiplierHooks)
DetachProbeHook("GPSNodeMultiplier 0x40bb40", kGpsNodeMultiplierRva); {
DetachProbeHook("GPSAuxMultiplier 0x40bb00", kGpsAuxMultiplierRva);
DetachProbeHook("GPSNodeMultiplier 0x40bb40", kGpsNodeMultiplierRva);
}
DetachProbeHook("GPSSystem/Tick", kGpsSystemTickRva); DetachProbeHook("GPSSystem/Tick", kGpsSystemTickRva);
DetachProbeHook("JournalManager::TrackEntry impl", kJournalTrackEntryImplRva); DetachProbeHook("JournalManager::TrackEntry impl", kJournalTrackEntryImplRva);
if (kEnableVerboseJournalListenerHooks) if (kEnableVerboseJournalListenerHooks)