From 4f497d1f656c9d48cb74dd38d3afa3853daa4bde Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:37:00 +1000 Subject: [PATCH] Refactor local player interpolation handling --- src/pc/game_main.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/pc/game_main.c b/src/pc/game_main.c index b5ea2f93f..690f0c6fd 100644 --- a/src/pc/game_main.c +++ b/src/pc/game_main.c @@ -69,6 +69,8 @@ #include "pc/mumble/mumble.h" #endif +#include "game/local_multiplayer.h" + extern Vp D_8032CF00; OSMesg D_80339BEC; @@ -218,7 +220,10 @@ void produce_interpolation_frames_and_delay(void) { gRenderingDelta = delta; gfx_start_frame(); - if (!gSkipInterpolationTitleScreen) { patch_interpolations(delta); } + for (u8 i = 0; i < gNumPlayersLocal; i++) { + set_local_player(i); + if (!gSkipInterpolationTitleScreen) { patch_interpolations(delta); } + } send_display_list(gGfxSPTask); gfx_end_frame(); @@ -232,7 +237,7 @@ void produce_interpolation_frames_and_delay(void) { expectedTime += (targetTime - curTime) / (f64) numFramesToDraw; f64 delay = (expectedTime - elapsedTime) * 1000.0; if (delay > 0.0) { - wm_api->delay((u32)delay); + WAPI.delay((u32)delay); } numFramesToDraw--; } while ((curTime = clock_elapsed_f64()) < targetTime && numFramesToDraw > 0); @@ -418,4 +423,4 @@ void* main_game_init(UNUSED void* dummy) { #endif gGameInited = true; -} \ No newline at end of file +}