diff --git a/src/code_80057C60.c b/src/code_80057C60.c index 0a8e22749..50622a10a 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -6101,6 +6101,10 @@ void render_battle_balloon(Player* player, s8 arg1, s16 arg2, s8 arg3) { sp12C[1] = player->unk_048[arg3]; sp12C[2] = D_8018D7D0[arg1][arg2] - (D_8018D860[arg1][arg2] * coss(temp_t1)) - ((D_8018D890[arg1][arg2] * 8) * sins(temp_t1)); + + // @port: Tag the transform. + FrameInterpolation_RecordOpenChild((uintptr_t) player, arg1 | arg2 << 16); + mtxf_translate_rotate(mtx, sp134, sp12C); mtxf_scale(mtx, var_f20); // convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], sp140); @@ -6130,6 +6134,10 @@ void render_battle_balloon(Player* player, s8 arg1, s16 arg2, s8 arg3) { gSPVertex(gDisplayListHead++, gBalloonVertexPlane2, 4, 0); gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF); + + // @port Pop the transform id. + FrameInterpolation_RecordCloseChild(); + gMatrixEffectCount++; } diff --git a/src/engine/actors/Finishline.cpp b/src/engine/actors/Finishline.cpp index 0680e60bd..33f12120f 100644 --- a/src/engine/actors/Finishline.cpp +++ b/src/engine/actors/Finishline.cpp @@ -6,6 +6,7 @@ #include "engine/Actor.h" #include "World.h" #include "assets/common_data.h" +#include "src/port/Game.h" extern "C" { #include "macros.h" @@ -20,6 +21,10 @@ extern f32 gKartGravityTable[]; AFinishline::AFinishline(std::optional pos) { Name = "Finishline"; + if (GetCup() == GetBattleCup()) { + return; + } + if (pos.has_value()) { // Set spawn point to the provided position Pos[0] = D_8015F8D0[0] = pos.value().x;