From 1c83a7538b283f2d46a73b0391692369f1431b7c Mon Sep 17 00:00:00 2001 From: Sonic Dreamcaster Date: Sat, 17 May 2025 03:50:17 -0300 Subject: [PATCH] Tag Smoke and Dust --- src/code_80057C60.c | 6 ++++++ src/port/interpolation/FrameInterpolation.h | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/code_80057C60.c b/src/code_80057C60.c index f9d56af83..840ea88c4 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -6574,6 +6574,10 @@ void func_8006D474(Player* player, s8 playerId, s8 screenId) { s16 var_s2; if ((player->unk_002 & (8 << (screenId * 4))) == (8 << (screenId * 4))) { for (var_s2 = 0; var_s2 < 10; var_s2++) { + // @port: Tag the transform. + FrameInterpolation_RecordOpenChild( + "SmokeDust", TAG_SMOKE_DUST(((u32) player->unk_258[var_s2].unk_012 << 8) + (playerId << 16) + var_s2)); + switch (player->unk_258[var_s2].unk_012) { case 1: if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) { @@ -6694,6 +6698,8 @@ void func_8006D474(Player* player, s8 playerId, s8 screenId) { } break; } + // @port Pop the transform id. + FrameInterpolation_RecordCloseChild(); } } if ((gModeSelection == BATTLE) && (player->unk_002 & (2 << (screenId * 4)))) { diff --git a/src/port/interpolation/FrameInterpolation.h b/src/port/interpolation/FrameInterpolation.h index 5d3f9cb35..016dc691a 100644 --- a/src/port/interpolation/FrameInterpolation.h +++ b/src/port/interpolation/FrameInterpolation.h @@ -17,8 +17,10 @@ std::unordered_map FrameInterpolation_Interpolate(float step); extern "C" { #endif -#define TAG_ITEM_ADDR(x) ((u32) 0x10000000 | (u32) x) -#define TAG_OBJECT(x) ((u32) 0x40000000 | (u32) (x)) +#define TAG_ITEM_ADDR(x) ((u32) 0x10000000 | (u32)x) +#define TAG_SMOKE_DUST(x) ((u32) 0x20000000 | (u32) (x)) +#define TAG_LETTER(x) ((u32)0x30000000 | (u32) (x)) +#define TAG_OBJECT(x) ((u32)0x40000000 | (u32)(x)) void FrameInterpolation_ShouldInterpolateFrame(bool shouldInterpolate);