Clean up HIO for TUs using HIOParam/Param_c/HIO_c pattern (#3043)

This commit is contained in:
Max Roncace
2026-01-13 17:58:15 -05:00
committed by GitHub
parent 235cb9a9ad
commit c0e0bbaaf3
143 changed files with 6215 additions and 4094 deletions
+72 -47
View File
@@ -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;