Refactor local player interpolation handling

This commit is contained in:
Isaac0-dev 2025-12-22 12:37:00 +10:00 committed by GitHub
parent 7b6f6360c5
commit 4f497d1f65
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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;
}
}