diff --git a/src/engine/PlayerBombKart.cpp b/src/engine/PlayerBombKart.cpp index 9c17a2742..42b18a0f2 100644 --- a/src/engine/PlayerBombKart.cpp +++ b/src/engine/PlayerBombKart.cpp @@ -107,17 +107,17 @@ void PlayerBombKart::func_8005669C(s32 cameraId, s32 arg2) { FrameInterpolation_RecordCloseChild(); D_80183E40[0] = pos.x + 2.0; D_80183E40[2] = pos.z - 2.0; - FrameInterpolation_RecordOpenChild("player_bomb_kart_rect", (1 << 12) | (_idx << 5) | cameraId); + FrameInterpolation_RecordOpenChild("player_bomb_kart_rect2", (1 << 12) | (_idx << 5) | cameraId); func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle); FrameInterpolation_RecordCloseChild(); D_80183E40[0] = pos.x - 2.0; D_80183E40[2] = pos.z - 2.0; - FrameInterpolation_RecordOpenChild("player_bomb_kart_rect", (2 << 12) | (_idx << 5) | cameraId); + FrameInterpolation_RecordOpenChild("player_bomb_kart_rect3", (2 << 12) | (_idx << 5) | cameraId); func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle); FrameInterpolation_RecordCloseChild(); D_80183E40[0] = pos.x - 2.0; D_80183E40[2] = pos.z + 2.0; - FrameInterpolation_RecordOpenChild("player_bomb_kart_rect", (3 << 12) | (_idx << 5) | cameraId); + FrameInterpolation_RecordOpenChild("player_bomb_kart_rect4", (3 << 12) | (_idx << 5) | cameraId); func_800431B0(D_80183E40, D_80183E80, 0.15f, (Vtx*) common_vtx_rectangle); FrameInterpolation_RecordCloseChild(); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); diff --git a/src/engine/actors/Text.cpp b/src/engine/actors/Text.cpp index 9e6423239..ad99430eb 100644 --- a/src/engine/actors/Text.cpp +++ b/src/engine/actors/Text.cpp @@ -360,7 +360,7 @@ void AText::DrawText3D(Camera* camera) { // Based on func_80095BD0 AddObjectMatrix(mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - FrameInterpolation_RecordOpenChild("actor_text", TAG_LETTER(this)); + FrameInterpolation_RecordOpenChild("actor_text", ((uintptr_t)this << 6) | camera->cameraId); gSPDisplayList(gDisplayListHead++, (Gfx*)D_020077A8); for (CharacterList& tex : TextureList) { diff --git a/src/engine/objects/BombKart.cpp b/src/engine/objects/BombKart.cpp index 8a0afdb95..fd8d65efd 100644 --- a/src/engine/objects/BombKart.cpp +++ b/src/engine/objects/BombKart.cpp @@ -381,7 +381,7 @@ void OBombKart::Draw(s32 cameraId) { D_80183E80[1] = func_800418AC(Pos[0], Pos[2], camera->pos); D_80183E80[2] = 0x8000; func_800563DC(_objectIndex, cameraId, 0x000000FF); - OBombKart::SomeRender(camera->pos); + OBombKart::SomeRender(cameraId, camera->pos); if (((u32) temp_s4 < 0x4E21U) && (state != OBombKart::States::EXPLODE)) { OBombKart::LoadMtx(cameraId); } @@ -393,19 +393,27 @@ void OBombKart::DrawBattle(s32 cameraId) { } -void OBombKart::SomeRender(Vec3f arg1) { +void OBombKart::SomeRender(s32 cameraId, Vec3f arg1) { D_80183E80[0] = 0; D_80183E80[2] = 0x8000; gSPDisplayList(gDisplayListHead++, (Gfx*)D_0D0079C8); load_texture_block_rgba16_mirror((u8*) D_0D02AA58, 0x00000010, 0x00000010); D_80183E80[1] = func_800418AC(WheelPos[0][0], WheelPos[0][2], arg1); + FrameInterpolation_RecordOpenChild("bomb_kart_rect", (0 << 12) | (_idx << 5) | cameraId); func_800431B0(WheelPos[0], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + FrameInterpolation_RecordCloseChild(); D_80183E80[1] = func_800418AC(WheelPos[1][0], WheelPos[1][2], arg1); + FrameInterpolation_RecordOpenChild("bomb_kart_rect2", (1 << 12) | (_idx << 5) | cameraId); func_800431B0(WheelPos[1], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + FrameInterpolation_RecordCloseChild(); D_80183E80[1] = func_800418AC(WheelPos[2][0], WheelPos[2][2], arg1); + FrameInterpolation_RecordOpenChild("bomb_kart_rect3", (2 << 12) | (_idx << 5) | cameraId); func_800431B0(WheelPos[2], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + FrameInterpolation_RecordCloseChild(); D_80183E80[1] = func_800418AC(WheelPos[3][0], WheelPos[3][2], arg1); + FrameInterpolation_RecordOpenChild("bomb_kart_rect4", (3 << 12) | (_idx << 5) | cameraId); func_800431B0(WheelPos[3], D_80183E80, 0.15f, (Vtx*)common_vtx_rectangle); + FrameInterpolation_RecordCloseChild(); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); } diff --git a/src/engine/objects/BombKart.h b/src/engine/objects/BombKart.h index 3f4a7a28e..c6fb03abd 100644 --- a/src/engine/objects/BombKart.h +++ b/src/engine/objects/BombKart.h @@ -85,7 +85,7 @@ class OBombKart : public OObject { virtual void Translate(FVector pos) override; virtual void DrawEditorProperties() override; void DrawBattle(s32 cameraId); - void SomeRender(Vec3f arg1); + void SomeRender(s32 cameraId, Vec3f arg1); void LoadMtx(s32 cameraId); void Waypoint(s32 screenId);