From ddd47126ecc19841cd7fb7adb89767475dbcd707 Mon Sep 17 00:00:00 2001 From: MegaMech Date: Wed, 4 Feb 2026 17:18:33 -0700 Subject: Maybe fix some interpolation (#637) * Update render_player.c * Refactor FrameInterpolation_RecordOpenChild calls * Update GrandPrixBalloons.cpp * Modify func_80053D74 to include an additional parameter --- src/engine/objects/GrandPrixBalloons.cpp | 10 ++++------ src/engine/objects/GrandPrixBalloons.h | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) (limited to 'src/engine') diff --git a/src/engine/objects/GrandPrixBalloons.cpp b/src/engine/objects/GrandPrixBalloons.cpp index 2180f85c0..91b41bc5f 100644 --- a/src/engine/objects/GrandPrixBalloons.cpp +++ b/src/engine/objects/GrandPrixBalloons.cpp @@ -92,19 +92,19 @@ void OGrandPrixBalloons::Draw(s32 cameraId) { for (var_s1 = 0; var_s1 < _numBalloons; var_s1++) { objectIndex = gObjectParticle3[var_s1]; if ((objectIndex != NULL_OBJECT_ID) && (gObjectList[objectIndex].state >= 2)) { - OGrandPrixBalloons::func_80053D74(objectIndex, cameraId, 0); + OGrandPrixBalloons::func_80053D74(objectIndex, cameraId, 0, var_s1); } } rsp_load_texture((uint8_t*) gTextureBalloon2, 64, 32); for (var_s1 = 0; var_s1 < _numBalloons; var_s1++) { objectIndex = gObjectParticle3[var_s1]; if ((objectIndex != NULL_OBJECT_ID) && (gObjectList[objectIndex].state >= 2)) { - OGrandPrixBalloons::func_80053D74(objectIndex, cameraId, 4); + OGrandPrixBalloons::func_80053D74(objectIndex, cameraId, 4, var_s1); } } } -void OGrandPrixBalloons::func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 vertexIndex) { +void OGrandPrixBalloons::func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 vertexIndex, s32 index) { Object* object; Vtx* vtx = (Vtx*) LOAD_ASSET_RAW(common_vtx_hedgehog); @@ -113,9 +113,7 @@ void OGrandPrixBalloons::func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 ver if (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX) { object = &gObjectList[objectIndex]; - // @port: Tag the transform. - FrameInterpolation_RecordOpenChild("Balloon", - TAG_ITEM_ADDR((objectIndex << 32) + i++)); // Not working properly just yet + FrameInterpolation_RecordOpenChild("Balloon", TAG_ITEM_ADDR((objectIndex << 7 | index))); D_80183E80[2] = (s16) (object->unk_084[6] + 0x8000); rsp_set_matrix_transformation(object->pos, (u16*) D_80183E80, object->sizeScaling); diff --git a/src/engine/objects/GrandPrixBalloons.h b/src/engine/objects/GrandPrixBalloons.h index f807fb350..3eb4a1dfa 100644 --- a/src/engine/objects/GrandPrixBalloons.h +++ b/src/engine/objects/GrandPrixBalloons.h @@ -39,7 +39,7 @@ public: virtual void Tick() override; virtual void Draw(s32 cameraId) override; - void func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 vertexIndex); + void func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 vertexIndex, s32 index); void func_80074924(s32 objectIndex); void func_80074D94(s32 objectIndex); -- cgit v1.2.3