From c902e200ab1b465f557b2e35c1cdc1a06a74eba8 Mon Sep 17 00:00:00 2001 From: MegaMech Date: Thu, 5 Feb 2026 12:44:26 -0700 Subject: Fix Interp Issues (#641) * Update Seagull.cpp * Update Seagull.h * Update Thwomp.cpp * Update Thwomp.h * Update Crab.cpp * Update render.inc.c * Update Mole.cpp * Update Mole.h * Update Mole.cpp * Update Thwomp.cpp * Update Thwomp.cpp * Update Thwomp.cpp * Update HotAirBalloon.cpp * Update HotAirBalloon.cpp * Update ChainChomp.cpp * Update Hedgehog.h * Update Hedgehog.cpp * Update Snowman.cpp * Update Flagpole.h * Update Flagpole.cpp * Update Flagpole.cpp --- src/engine/objects/Hedgehog.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/engine/objects/Hedgehog.cpp') diff --git a/src/engine/objects/Hedgehog.cpp b/src/engine/objects/Hedgehog.cpp index a028fde36..d2ffb95af 100644 --- a/src/engine/objects/Hedgehog.cpp +++ b/src/engine/objects/Hedgehog.cpp @@ -81,9 +81,10 @@ void OHedgehog::func_800555BC(s32 objectIndex, s32 cameraId) { if (gObjectList[objectIndex].state >= 2) { camera = &camera1[cameraId]; - OHedgehog::func_8004A870(objectIndex, 0.7f); + OHedgehog::func_8004A870(cameraId, objectIndex, 0.7f); gObjectList[objectIndex].orientation[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); + FrameInterpolation_RecordOpenChild("hedgehog2", TAG_OBJECT((_idx << 5) | cameraId)); rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].orientation, gObjectList[objectIndex].sizeScaling); gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007D78); auto tlut = (u8*) gObjectList[objectIndex].activeTLUT; @@ -96,10 +97,11 @@ void OHedgehog::func_800555BC(s32 objectIndex, s32 cameraId) { gSPVertex(gDisplayListHead++, (uintptr_t) vtx, 4, 0); gSPDisplayList(gDisplayListHead++, (Gfx*) common_rectangle_display); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); + FrameInterpolation_RecordCloseChild(); } } -void OHedgehog::func_8004A870(s32 objectIndex, f32 arg1) { +void OHedgehog::func_8004A870(s32 cameraId, s32 objectIndex, f32 arg1) { Mat4 mtx; Object* object; @@ -110,9 +112,7 @@ void OHedgehog::func_8004A870(s32 objectIndex, f32 arg1) { D_80183E50[1] = object->surfaceHeight + 0.8; D_80183E50[2] = object->pos[2]; - // @port: Tag the transform. - FrameInterpolation_RecordOpenChild("hedgehog", (uintptr_t) &gObjectList[objectIndex]); - + FrameInterpolation_RecordOpenChild("hedgehog", (uintptr_t) (_idx << 5) | cameraId); set_transform_matrix(mtx, object->unk_01C, D_80183E50, 0U, arg1); // convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], mtx); // gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), @@ -121,7 +121,6 @@ void OHedgehog::func_8004A870(s32 objectIndex, f32 arg1) { AddHudMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, (Gfx*) D_0D007B98); - // @port Pop the transform id. FrameInterpolation_RecordCloseChild(); } } @@ -248,4 +247,4 @@ void OHedgehog::DrawEditorProperties() { if (ImGui::Button(ICON_FA_UNDO "##ResetPatrolLoc")) { PatrolEnd = FVector2D(0.0f, 0.0f); } -} \ No newline at end of file +} -- cgit v1.2.3