summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSonic Dreamcaster <alejandro.asenjo88@gmail.com>2025-05-17 03:50:17 -0300
committerSonic Dreamcaster <alejandro.asenjo88@gmail.com>2025-05-17 03:50:17 -0300
commit1c83a7538b283f2d46a73b0391692369f1431b7c (patch)
tree7a34f675ffe9d29b5361650846ccce245df839ba
parent6c5249c5b1c756a680176c1db1f8a8487ed469a8 (diff)
Tag Smoke and Dust
-rw-r--r--src/code_80057C60.c6
-rw-r--r--src/port/interpolation/FrameInterpolation.h6
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<Mtx*, MtxF> 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);