@@ -234,7 +234,9 @@ class ReplaceGameUpdateLoop : public Hook
234234 // This causes speed of flashing cars to change depending on framerate
235235 // We'll update it similar to SetTweeningTable so it only increments if a game tick is being ran
236236 // TODO: would probably be smoother to scale that 0.10471975 by deltatime instead
237- inline static SafetyHookMid EventDisplay_midhook = {};
237+ inline static SafetyHookMid EventDisplay_midhook1 = {};
238+ inline static SafetyHookMid EventDisplay_midhook2 = {};
239+ inline static SafetyHookMid DispPlCar_midhook = {};
238240 static void EventDisplay_dest (SafetyHookContext& ctx)
239241 {
240242 if (*Game::sprani_num_ticks == 0 )
@@ -293,9 +295,14 @@ class ReplaceGameUpdateLoop : public Hook
293295 if (Settings::FramerateUnlockExperimental)
294296 {
295297 constexpr int SetTweeningTable_Addr = 0xED60 ;
296- constexpr int EventDisplay_HookAddr = 0x3FC48 ;
297298 SetTweeningTable = safetyhook::create_inline (Module::exe_ptr (SetTweeningTable_Addr), SetTweeningTable_dest);
298- EventDisplay_midhook = safetyhook::create_mid (Module::exe_ptr (EventDisplay_HookAddr), EventDisplay_dest);
299+
300+ constexpr int EventDisplay_HookAddr1 = 0x3FC48 ;
301+ constexpr int EventDisplay_HookAddr2 = 0x3FE51 ;
302+ constexpr int DispPlCar_HookAddr = 0x6BE27 ;
303+ EventDisplay_midhook1 = safetyhook::create_mid (Module::exe_ptr (EventDisplay_HookAddr1), EventDisplay_dest);
304+ EventDisplay_midhook2 = safetyhook::create_mid (Module::exe_ptr (EventDisplay_HookAddr2), EventDisplay_dest);
305+ DispPlCar_midhook = safetyhook::create_mid (Module::exe_ptr (DispPlCar_HookAddr), EventDisplay_dest);
299306 }
300307 return !!dest_hook;
301308 }
0 commit comments