summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_obj_smtile.cpp
diff options
context:
space:
mode:
authorMax Roncace <me@caseif.net>2026-01-13 17:58:15 -0500
committerGitHub <noreply@github.com>2026-01-13 14:58:15 -0800
commitc0e0bbaaf3ff70413498d2ce41f281e8aa41db07 (patch)
treeb7b24673595d7226d7d135a09802d25f86cf6214 /src/d/actor/d_a_obj_smtile.cpp
parent235cb9a9ad1b23da2a562c7b3bc5c25f2404299a (diff)
Clean up HIO for TUs using HIOParam/Param_c/HIO_c pattern (#3043)
Diffstat (limited to 'src/d/actor/d_a_obj_smtile.cpp')
-rw-r--r--src/d/actor/d_a_obj_smtile.cpp59
1 files changed, 42 insertions, 17 deletions
diff --git a/src/d/actor/d_a_obj_smtile.cpp b/src/d/actor/d_a_obj_smtile.cpp
index 57586d252e..ebe2baaffa 100644
--- a/src/d/actor/d_a_obj_smtile.cpp
+++ b/src/d/actor/d_a_obj_smtile.cpp
@@ -27,8 +27,33 @@ static s8 l_tileMoveData[21][4] = {
0x02, 0x02, -0x1, 0x03, 0x05, 0x02, -0x1, 0x02, 0x04, 0x02, -0x1, 0x01, 0x03, 0x02,
};
+static OBJ_SMTILE_HIO_CLASS l_HIO;
+
+daObj_SMTile_HIOParam const daObj_SMTile_Param_c::m = {600.0f, 20.0f};
+
+#if DEBUG
+daObj_SMTile_HIO_c::daObj_SMTile_HIO_c() {
+ m = daObj_SMTile_Param_c::m;
+}
+
+void daObj_SMTile_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
+ // NONMATCHING
+}
+
+void daObj_SMTile_HIO_c::genMessage(JORMContext* ctx) {
+ // NONMATCHING
+}
+#endif
+
daObj_SMTile_c::~daObj_SMTile_c() {
OS_REPORT("|%06d:%x|daObj_SMTile_c -> デストラクト\n", g_Counter.mCounter0, this);
+
+#if DEBUG
+ if (mpHIO != NULL) {
+ mpHIO->removeHIO();
+ }
+#endif
+
dComIfG_resDelete(
&mPhase,
l_resNameList[l_bmdData[mType][1]]);
@@ -53,16 +78,18 @@ int daObj_SMTile_c::create() {
if (fopAcM_entrySolidHeap(this, createHeapCallBack, 0x800) == 0) {
return cPhs_ERROR_e;
}
+
+#if DEBUG
+ mpHIO = &l_HIO;
+ mpHIO->entryHIO("石像の間の光るタイル");
+#endif
+
field_0xb2b = 1;
Execute();
}
return rv;
}
-f32 const daObj_SMTile_Param_c::m[2] = {
- 600.0f, 20.0f,
-};
-
int daObj_SMTile_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(
l_resNameList[l_bmdData[mType][1]],
@@ -191,8 +218,8 @@ void daObj_SMTile_c::setDstPos() {
local_2c.x = l_tileMoveData[i][0];
local_2c.z = l_tileMoveData[i][1];
local_38 = local_2c;
- local_38.x *= daObj_SMTile_Param_c::m[0];
- local_38.z *= daObj_SMTile_Param_c::m[0];
+ local_38.x *= mpHIO->m.field_0x0;
+ local_38.z *= mpHIO->m.field_0x0;
mDoMtx_stack_c::multVec(&local_38, &field_0x68c[i]);
switch ((u8)l_tileMoveData[i][3]) {
case 0:
@@ -209,8 +236,8 @@ void daObj_SMTile_c::setDstPos() {
break;
}
- local_2c.x *= daObj_SMTile_Param_c::m[0];
- local_2c.z *= daObj_SMTile_Param_c::m[0];
+ local_2c.x *= mpHIO->m.field_0x0;
+ local_2c.z *= mpHIO->m.field_0x0;
mDoMtx_stack_c::multVec(&local_2c, &field_0x590[i]);
}
}
@@ -225,7 +252,7 @@ void daObj_SMTile_c::setPrtcls(int param_1, int param_2) {
mDoAud_seStart(Z2SE_OBJ_SEKI_TILE_EMERGE, &field_0x788[i], 0, 0);
}
field_0x788[i] = current.pos + field_0x68c[i];
- mParticleTimers[i] = daObj_SMTile_Param_c::m[1];
+ mParticleTimers[i] = mpHIO->m.field_0x4;
field_0xa28[i] = param_1;
}
}
@@ -254,21 +281,21 @@ void daObj_SMTile_c::touchPrtcls(f32 param_1) {
dComIfGp_particle_set(mParticleIds[i], id[field_0xa28[i]], &field_0x788[i], 0, 0);
JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(mParticleIds[i]);
if (emitter != NULL) {
- f32 dVar6 = daObj_SMTile_Param_c::m[1] - mParticleTimers[i];
- dVar6 /= daObj_SMTile_Param_c::m[1];
+ f32 dVar6 = mpHIO->m.field_0x4 - mParticleTimers[i];
+ dVar6 /= mpHIO->m.field_0x4;
local_3c.setall(0.0f);
switch ((u8)l_tileMoveData[i][3]) {
case 0:
- local_3c.z = daObj_SMTile_Param_c::m[0] * dVar6;
+ local_3c.z = mpHIO->m.field_0x0 * dVar6;
break;
case 1:
- local_3c.x = daObj_SMTile_Param_c::m[0] * dVar6;
+ local_3c.x = mpHIO->m.field_0x0 * dVar6;
break;
case 2:
- local_3c.x = daObj_SMTile_Param_c::m[0] * dVar6 * -1.0f;
+ local_3c.x = mpHIO->m.field_0x0 * dVar6 * -1.0f;
break;
case 3:
- local_3c.z = daObj_SMTile_Param_c::m[0] * dVar6 * -1.0f;
+ local_3c.z = mpHIO->m.field_0x0 * dVar6 * -1.0f;
break;
}
@@ -313,8 +340,6 @@ static int daObj_SMTile_IsDelete(void* i_this) {
return 1;
}
-static daObj_SMTile_Param_c l_HIO;
-
static actor_method_class daObj_SMTile_MethodTable = {
(process_method_func)daObj_SMTile_Create,
(process_method_func)daObj_SMTile_Delete,