summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_npc_myna2.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_npc_myna2.cpp
parent235cb9a9ad1b23da2a562c7b3bc5c25f2404299a (diff)
Clean up HIO for TUs using HIOParam/Param_c/HIO_c pattern (#3043)
Diffstat (limited to 'src/d/actor/d_a_npc_myna2.cpp')
-rw-r--r--src/d/actor/d_a_npc_myna2.cpp119
1 files changed, 72 insertions, 47 deletions
diff --git a/src/d/actor/d_a_npc_myna2.cpp b/src/d/actor/d_a_npc_myna2.cpp
index 86fd8dbec7..de8756360b 100644
--- a/src/d/actor/d_a_npc_myna2.cpp
+++ b/src/d/actor/d_a_npc_myna2.cpp
@@ -14,7 +14,7 @@ enum {
NUM_EVT_CUTS_e = 5,
};
-static daNpc_myna2_Param_c l_HIO;
+static NPC_MYNA2_HIO_CLASS l_HIO;
static daNpc_GetParam1 l_bmdGetParamList[] = {
{0x17, 0},
@@ -106,24 +106,6 @@ daNpc_myna2_c::EventFn daNpc_myna2_c::mEvtCutList[] = {
&daNpc_myna2_c::ECut_gameGoalSuccess,
};
-daNpc_myna2_c::daNpc_myna2_c() {}
-
-daNpc_myna2_c::~daNpc_myna2_c() {
- OS_REPORT("|%06d:%x|daNpc_myna2_c -> デストラクト%d\n", g_Counter.mCounter0, mType);
-
- if (mType == 1) {
- daNpcF_offTmpBit(0x4A);
- }
-
- for (int i = 0; l_loadRes_list[mType][i] >= 0; i++) {
- dComIfG_resDelete(&mPhase[i], l_resNames[l_loadRes_list[mType][i]]);
- }
-
- if (heap != NULL) {
- mAnm_p->stopZelAnime();
- }
-}
-
const daNpc_myna2_HIOParam daNpc_myna2_Param_c::m = {
60.0f,
0.0f,
@@ -162,6 +144,44 @@ const daNpc_myna2_HIOParam daNpc_myna2_Param_c::m = {
2500.0f,
};
+#if DEBUG
+daNpc_myna2_HIO_c::daNpc_myna2_HIO_c() {
+ m = daNpc_myna2_Param_c::m;
+}
+
+void daNpc_myna2_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) {
+ // NONMATCHING
+}
+
+void daNpc_myna2_HIO_c::genMessage(JORMContext* ctx) {
+ // NONMATCHING
+}
+#endif
+
+daNpc_myna2_c::daNpc_myna2_c() {}
+
+daNpc_myna2_c::~daNpc_myna2_c() {
+ OS_REPORT("|%06d:%x|daNpc_myna2_c -> デストラクト%d\n", g_Counter.mCounter0, mType);
+
+ if (mType == 1) {
+ daNpcF_offTmpBit(0x4A);
+ }
+
+ for (int i = 0; l_loadRes_list[mType][i] >= 0; i++) {
+ dComIfG_resDelete(&mPhase[i], l_resNames[l_loadRes_list[mType][i]]);
+ }
+
+ if (heap != NULL) {
+ mAnm_p->stopZelAnime();
+ }
+
+#if DEBUG
+ if (mpHIO != NULL) {
+ mpHIO->removeHIO();
+ }
+#endif
+}
+
int daNpc_myna2_c::create() {
fopAcM_ct(this, daNpc_myna2_c);
@@ -205,11 +225,16 @@ int daNpc_myna2_c::create() {
fopAcM_setCullSizeBox(this, -300.0f, -50.0f, -300.0f, 300.0f, 450.0f, 300.0f);
mSound.init(&current.pos, &eyePos, 3, 1);
- mAcchCir.SetWall(daNpc_myna2_Param_c::m.common.width, daNpc_myna2_Param_c::m.common.knee_length);
+#if DEBUG
+ mpHIO = &l_HIO;
+ mpHIO->entryHIO("トリル2");
+#endif
+
+ mAcchCir.SetWall(mpHIO->m.common.width, mpHIO->m.common.knee_length);
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
&mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
- mCcStts.Init(daNpc_myna2_Param_c::m.common.weight, 0, this);
+ mCcStts.Init(mpHIO->m.common.weight, 0, this);
mCyl.Set(mCcDCyl);
mCyl.SetStts(&mCcStts);
mCyl.SetTgHitCallback(tgHitCallBack);
@@ -266,7 +291,7 @@ int daNpc_myna2_c::Execute() {
}
int daNpc_myna2_c::Draw() {
- return draw(chkAction(&daNpc_myna2_c::test), FALSE, daNpc_myna2_Param_c::m.common.real_shadow_size, NULL, 0);
+ return draw(chkAction(&daNpc_myna2_c::test), FALSE, mpHIO->m.common.real_shadow_size, NULL, 0);
}
int daNpc_myna2_c::createHeapCallBack(fopAc_ac_c* actor) {
@@ -292,10 +317,10 @@ void daNpc_myna2_c::setParam() {
attention_info.distances[fopAc_attn_SPEAK_e] = 0x50;
attention_info.flags = fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e;
- scale.set(daNpc_myna2_Param_c::m.common.scale, daNpc_myna2_Param_c::m.common.scale, daNpc_myna2_Param_c::m.common.scale);
- mAcchCir.SetWallR(daNpc_myna2_Param_c::m.common.width);
- mAcchCir.SetWallH(daNpc_myna2_Param_c::m.common.knee_length);
- gravity = daNpc_myna2_Param_c::m.common.gravity;
+ scale.set(mpHIO->m.common.scale, mpHIO->m.common.scale, mpHIO->m.common.scale);
+ mAcchCir.SetWallR(mpHIO->m.common.width);
+ mAcchCir.SetWallH(mpHIO->m.common.knee_length);
+ gravity = mpHIO->m.common.gravity;
}
BOOL daNpc_myna2_c::main() {
@@ -307,7 +332,7 @@ BOOL daNpc_myna2_c::main() {
attention_info.flags = 0;
}
- if (!daNpc_myna2_Param_c::m.common.debug_mode_ON && (!dComIfGp_event_runCheck() || (mOrderNewEvt && dComIfGp_getEvent()->isOrderOK()))) {
+ if (!mpHIO->m.common.debug_mode_ON && (!dComIfGp_event_runCheck() || (mOrderNewEvt && dComIfGp_getEvent()->isOrderOK()))) {
if (mOrderEvtNo != 0) {
eventInfo.setArchiveName(l_resNames[l_evtGetParamList[mOrderEvtNo].arcIdx]);
}
@@ -355,7 +380,7 @@ void daNpc_myna2_c::setAttnPos() {
static cXyz eyeOffset(30.0f, 10.0f, 0.0f);
cXyz sp2C, sp20, sp14, sp18;
- f32 attention_offset = daNpc_myna2_Param_c::m.common.attention_offset;
+ f32 attention_offset = mpHIO->m.common.attention_offset;
setMtx();
@@ -389,8 +414,8 @@ void daNpc_myna2_c::setAttnPos() {
}
mCyl.SetC(sp2C);
- mCyl.SetH(daNpc_myna2_Param_c::m.common.height + var_f30);
- mCyl.SetR(daNpc_myna2_Param_c::m.common.width + var_f29);
+ mCyl.SetH(mpHIO->m.common.height + var_f30);
+ mCyl.SetR(mpHIO->m.common.width + var_f29);
dComIfG_Ccsp()->Set(&mCyl);
}
@@ -569,31 +594,31 @@ void daNpc_myna2_c::reset() {
}
void daNpc_myna2_c::playMotion() {
- daNpcF_anmPlayData dat0 = {0, daNpc_myna2_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData dat0 = {0, mpHIO->m.common.morf_frame, 0};
daNpcF_anmPlayData* pDat0[] = {&dat0};
- daNpcF_anmPlayData dat1 = {12, daNpc_myna2_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData dat1 = {12, mpHIO->m.common.morf_frame, 0};
daNpcF_anmPlayData* pDat1[] = {&dat1};
- daNpcF_anmPlayData dat2a = {13, daNpc_myna2_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData dat2a = {13, mpHIO->m.common.morf_frame, 0};
daNpcF_anmPlayData* pDat2[] = {&dat2a};
- daNpcF_anmPlayData dat3a = {9, daNpc_myna2_Param_c::m.common.morf_frame, 1};
- daNpcF_anmPlayData dat3b = {12, daNpc_myna2_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData dat3a = {9, mpHIO->m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat3b = {12, mpHIO->m.common.morf_frame, 0};
daNpcF_anmPlayData* pDat3[] = {&dat3a, &dat3b};
- daNpcF_anmPlayData dat4a = {10, daNpc_myna2_Param_c::m.common.morf_frame, 1};
- daNpcF_anmPlayData dat4b = {13, daNpc_myna2_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData dat4a = {10, mpHIO->m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat4b = {13, mpHIO->m.common.morf_frame, 0};
daNpcF_anmPlayData* pDat4[] = {&dat4a, &dat4b};
- daNpcF_anmPlayData dat5a = {11, daNpc_myna2_Param_c::m.common.morf_frame, 1};
- daNpcF_anmPlayData dat5b = {14, daNpc_myna2_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData dat5a = {11, mpHIO->m.common.morf_frame, 1};
+ daNpcF_anmPlayData dat5b = {14, mpHIO->m.common.morf_frame, 0};
daNpcF_anmPlayData* pDat5[] = {&dat5a, &dat5b};
- daNpcF_anmPlayData dat6 = {14, daNpc_myna2_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData dat6 = {14, mpHIO->m.common.morf_frame, 0};
daNpcF_anmPlayData* pDat6[] = {&dat6};
- daNpcF_anmPlayData dat7 = {7, daNpc_myna2_Param_c::m.common.morf_frame, 0};
+ daNpcF_anmPlayData dat7 = {7, mpHIO->m.common.morf_frame, 0};
daNpcF_anmPlayData* pDat7[] = {&dat7};
daNpcF_anmPlayData** ppDat[8] = {
@@ -636,7 +661,7 @@ int daNpc_myna2_c::setAction(int (daNpc_myna2_c::*i_action)(void*)) {
int daNpc_myna2_c::selectAction() {
mNextAction = NULL;
- if (daNpc_myna2_Param_c::m.common.debug_mode_ON) {
+ if (mpHIO->m.common.debug_mode_ON) {
mNextAction = &daNpc_myna2_c::test;
} else {
switch (mType) {
@@ -664,7 +689,7 @@ void daNpc_myna2_c::doNormalAction(int param_0) {
if (mCutType == daPy_py_c::CUT_TYPE_TURN_RIGHT) {
damage_time = 20;
} else {
- damage_time = daNpc_myna2_Param_c::m.common.damage_time;
+ damage_time = mpHIO->m.common.damage_time;
}
setLookMode(LOOK_RESET);
@@ -805,7 +830,7 @@ int daNpc_myna2_c::waitHovering(void* param_0) {
mSound.playSumomoBgm((sp2C - current.pos).abs());
calcHovering(0, 0);
- if ((sp2C - current.pos).absXZ() >= daNpc_myna2_Param_c::m.field_0x70 && fopAcM_CheckCondition(this, 4)) {
+ if ((sp2C - current.pos).absXZ() >= mpHIO->m.field_0x70 && fopAcM_CheckCondition(this, 4)) {
dComIfGs_offSwitch(field_0xe0d, fopAcM_GetRoomNo(this));
daNpcF_offTmpBit(0x4A);
fopAcM_delete(this);
@@ -813,7 +838,7 @@ int daNpc_myna2_c::waitHovering(void* param_0) {
}
if (!daNpcF_chkEvtBit(0x11D) && daPy_py_c::checkNowWolf()) {
- if (((sp2C - current.pos).absXZ() <= daNpc_myna2_Param_c::m.field_0x6c && (home.pos.y - sp2C.y) < 100.0f) && !player->checkPlayerFly() && daPy_getPlayerActorClass()->checkSwimUp()) {
+ if (((sp2C - current.pos).absXZ() <= mpHIO->m.field_0x6c && (home.pos.y - sp2C.y) < 100.0f) && !player->checkPlayerFly() && daPy_getPlayerActorClass()->checkSwimUp()) {
mOrderEvtNo = 1;
}
}
@@ -956,8 +981,8 @@ int daNpc_myna2_c::test(void* param_0) {
mMode = 2;
/* fallthrough */
case 2:
- setMotion(daNpc_myna2_Param_c::m.common.motion, daNpc_myna2_Param_c::m.common.morf_frame, 0);
- setLookMode(daNpc_myna2_Param_c::m.common.look_mode);
+ setMotion(mpHIO->m.common.motion, mpHIO->m.common.morf_frame, 0);
+ setLookMode(mpHIO->m.common.look_mode);
mOrderEvtNo = 0;
attention_info.flags = 0;
break;