diff --git a/src/code_80057C60.c b/src/code_80057C60.c index ec2f6f59a..7e820f65b 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -5785,8 +5785,7 @@ void render_battle_balloon(Player* player, s8 arg1, s16 arg2, s8 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); + FrameInterpolation_RecordOpenChild("battle_balloon", (arg1 << 8) | (arg3 << 4) | arg2); mtxf_translate_rotate(mtx, sp134, sp12C); mtxf_scale(mtx, var_f20); @@ -6303,7 +6302,7 @@ void func_8006D474(Player* player, s8 playerId, s8 screenId) { if ((player->unk_002 & (SIDE_OF_KART << (screenId * 4))) == (SIDE_OF_KART << (screenId * 4))) { for (var_s2 = 0; var_s2 < 10; var_s2++) { // @port: Tag the transform. - FrameInterpolation_RecordOpenChild("SmokeDust", TAG_SMOKE_DUST((playerId << 8) + var_s2)); + FrameInterpolation_RecordOpenChild("smoke_dust", TAG_SMOKE_DUST((playerId << 8) | (screenId << 4) | var_s2)); switch (player->particlePool0[var_s2].type) { case 1: if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) { @@ -6325,7 +6324,7 @@ void func_8006D474(Player* player, s8 playerId, s8 screenId) { break; } FrameInterpolation_RecordCloseChild(); - FrameInterpolation_RecordOpenChild("SmokeDust", TAG_SMOKE_DUST((playerId << 8) + var_s2 + 30)); + FrameInterpolation_RecordOpenChild("smoke_dust2", TAG_SMOKE_DUST((playerId << 8) | (screenId << 4) | var_s2)); switch (player->particlePool3[var_s2].type) { case 1: case 9: @@ -6388,7 +6387,7 @@ void func_8006D474(Player* player, s8 playerId, s8 screenId) { break; } FrameInterpolation_RecordCloseChild(); - FrameInterpolation_RecordOpenChild("SmokeDust", TAG_SMOKE_DUST((playerId << 8) + var_s2 + 10)); + FrameInterpolation_RecordOpenChild("smoke_dust3", TAG_SMOKE_DUST((playerId << 8) | (screenId << 4) | var_s2)); switch (player->particlePool1[var_s2].type) { case DRIFT_PARTICLE: if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) { @@ -6475,7 +6474,7 @@ void func_8006DD3C(Player* player, s8 playerId, s8 arg2) { } if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && (arg2 == playerId)) { - FrameInterpolation_RecordOpenChild("onomatopoeia", TAG_SMOKE_DUST((playerId << 8) + 20)); + FrameInterpolation_RecordOpenChild("onomatopoeia", TAG_SMOKE_DUST((playerId << 8) | (arg2 << 4))); switch (player->particlePool2[0].type) { case 2: render_player_onomatopoeia_crash(player, playerId, player->particlePool2[0].scale, arg2, 0); 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); diff --git a/src/render_player.c b/src/render_player.c index 1408e5bc9..2aa5bdbf1 100644 --- a/src/render_player.c +++ b/src/render_player.c @@ -1183,7 +1183,7 @@ void render_player_shadow(Player* player, s8 playerId, s8 screenId) { f32 var_f2; // @port: Tag the transform. - FrameInterpolation_RecordOpenChild("Kart Shadow", TAG_ITEM_ADDR(player)); + FrameInterpolation_RecordOpenChild("kart_shadow", TAG_ITEM_ADDR((playerId << 8) | (screenId << 4))); temp_t9 = (u16) (player->unk_048[screenId] + player->rotation[1] + player->unk_0C0) / 128; // << 7) & 0xFFFF; spC0 = -player->rotation[1] - player->unk_0C0; @@ -1309,7 +1309,7 @@ void render_kart(Player* player, s8 playerId, s8 screenId, s8 flipOffset) { s16 temp_v1; s16 thing; - FrameInterpolation_RecordOpenChild("player_kart", playerId | screenId << 8); + FrameInterpolation_RecordOpenChild("player_kart", (playerId << 4) | screenId); if (player->kartProps & UNUSED_0x2000) { sp14C[0] = 0; sp14C[1] = player->unk_048[screenId]; @@ -1505,7 +1505,7 @@ void func_80025DE8(Player* player, s8 playerId, s8 screenId, s8 flipOffset) { sp94[1] = player->unk_048[screenId]; sp94[2] = player->unk_050[screenId]; - FrameInterpolation_RecordOpenChild("player_boost", playerId | screenId << 8); + FrameInterpolation_RecordOpenChild("player_boost", (playerId << 4) | screenId); mtxf_translate_rotate(mtx, sp9C, sp94); mtxf_scale(mtx, gCharacterSize[player->characterId] * player->size); @@ -1554,7 +1554,7 @@ void render_player_ice_reflection(Player* player, s8 playerId, s8 screenId, s8 f } // @port: Tag the transform. - FrameInterpolation_RecordOpenChild("PlayerReflection", playerId | screenId << 8); + FrameInterpolation_RecordOpenChild("player_reflection", (playerId << 4) | screenId); mtxf_translate_rotate(mtx, sp9C, sp94); mtxf_scale(mtx, gCharacterSize[player->characterId] * player->size);