diff options
| author | Zeclos <Zeclos99@gmail.com> | 2026-07-26 17:32:13 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-26 11:32:13 -0400 |
| commit | 7fae08bcd1e75242b3cdcb7a0704488911561e78 (patch) | |
| tree | 39096aad5ab919926909e51783d7d2855c82d7b1 | |
| parent | 20913851558a8d86101a025c60078905534622a6 (diff) | |
Hi1_demo zl1 cleanup (#1136)
* matching
* cleanup
* d_a_npc_tt matching outside of _create and rodata
* matching
* demo matching + cleanup zl1
* undo removed line
* sorry
| -rwxr-xr-x | configure.py | 2 | ||||
| -rw-r--r-- | src/d/actor/d_a_npc_hi1.cpp | 86 | ||||
| -rw-r--r-- | src/d/actor/d_a_npc_zl1.cpp | 4 |
3 files changed, 66 insertions, 26 deletions
diff --git a/configure.py b/configure.py index 073b927e..1f490ae6 100755 --- a/configure.py +++ b/configure.py @@ -1667,7 +1667,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_npc_ds1"), ActorRel(NonMatching, "d_a_npc_gk1"), ActorRel(NonMatching, "d_a_npc_gp1"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_hi1"), + ActorRel(Matching, "d_a_npc_hi1"), ActorRel(Matching, "d_a_npc_ho"), ActorRel(Matching, "d_a_npc_hr"), ActorRel(Matching, "d_a_npc_jb1"), diff --git a/src/d/actor/d_a_npc_hi1.cpp b/src/d/actor/d_a_npc_hi1.cpp index 94f0eb96..bcd314a1 100644 --- a/src/d/actor/d_a_npc_hi1.cpp +++ b/src/d/actor/d_a_npc_hi1.cpp @@ -63,7 +63,9 @@ daNpc_Hi1_HIO_c::daNpc_Hi1_HIO_c() { field_0x8 = -1; } -static const char* l_evn_tbl = "dummy"; +static const char* l_evn_tbl[1] = { + "dummy" +}; /* 00000198-000001E4 .text nodeCB_Head__FP7J3DNodei */ static BOOL nodeCB_Head(J3DNode* i_node, int i_param) { @@ -80,7 +82,7 @@ static BOOL nodeCB_Head(J3DNode* i_node, int i_param) { void daNpc_Hi1_c::_nodeCB_Head(J3DNode* i_node, J3DModel* i_pModel) { static cXyz a_eye_pos_off(20.0f, 30.0f, 0.0f); - u16 jointIdx = ((J3DJoint*)(i_node))->getJntNo(); + s32 jointIdx = ((J3DJoint*)(i_node))->getJntNo(); mDoMtx_stack_c::copy(i_pModel->getAnmMtx(jointIdx)); mDoMtx_stack_c::multVecZero(&field_0x768); @@ -104,7 +106,7 @@ static BOOL nodeCB_BackBone(J3DNode* i_node, int i_param) { /* 0000038C-0000042C .text _nodeCB_BackBone__11daNpc_Hi1_cFP7J3DNodeP8J3DModel */ void daNpc_Hi1_c::_nodeCB_BackBone(J3DNode* i_node, J3DModel* i_pModel) { - u16 jointIdx = ((J3DJoint*)(i_node))->getJntNo(); + s32 jointIdx = ((J3DJoint*)(i_node))->getJntNo(); mDoMtx_stack_c::copy(i_pModel->getAnmMtx(jointIdx)); mDoMtx_stack_c::XrotM(m_jnt.getBackbone_y()); mDoMtx_stack_c::ZrotM(-m_jnt.getBackbone_x()); @@ -126,8 +128,9 @@ bool daNpc_Hi1_c::init_HI1_0() { /* 00000498-00000618 .text createInit__11daNpc_Hi1_cFv */ bool daNpc_Hi1_c::createInit() { bool ret; - - mEventIdx[0] = dComIfGp_evmng_getEventIdx(l_evn_tbl, 0xff); + for(int i = 0; i < ARRAY_SSIZE(l_evn_tbl); i++) { + mEventIdx[i] = dComIfGp_evmng_getEventIdx(l_evn_tbl[i]); + } mEventCut.setActorInfo2("Hi1", this); attention_info.flags = fopAc_Attn_LOCKON_TALK_e | fopAc_Attn_ACTION_SPEAK_e; @@ -459,13 +462,9 @@ bool daNpc_Hi1_c::chk_talk() { /* 00000FFC-0000103C .text chk_parts_notMov__11daNpc_Hi1_cFv */ bool daNpc_Hi1_c::chk_parts_notMov() { - bool ret = false; - if(field_0x788.y != m_jnt.getHead_y() || + return field_0x788.y != m_jnt.getHead_y() || field_0x788.z != m_jnt.getBackbone_y() || - field_0x788.x != current.angle.y) { - ret = true; - } - return ret; + field_0x788.x != current.angle.y; } /* 0000103C-00001090 .text searchByID__11daNpc_Hi1_cFUiPi */ @@ -523,11 +522,13 @@ void daNpc_Hi1_c::lookBack() { /* 00001254-000012D4 .text chkAttention__11daNpc_Hi1_cFv */ bool daNpc_Hi1_c::chkAttention() { - if(dComIfGp_getAttention().LockonTruth()) { - return this == dComIfGp_getAttention().LockonTarget(0); + dAttention_c& attention = dComIfGp_getAttention(); + if(attention.LockonTruth()) { + return this == attention.LockonTarget(0); } - return this == dComIfGp_getAttention().ActionTarget(0); + + return this == attention.ActionTarget(0); } /* 000012D4-0000132C .text setAttention__11daNpc_Hi1_cFb */ @@ -568,8 +569,34 @@ void daNpc_Hi1_c::privateCut(int i_staffIdx) { if(mActIdx == -1) { dComIfGp_evmng_cutEnd(i_staffIdx); } else { +#if VERSION == VERSION_DEMO + bool temp; + if(dComIfGp_evmng_getIsAddvance(i_staffIdx)) { + + switch(mActIdx) { + case 0: + // to match codegen + speedF = speedF; + break; + } + } + + switch(mActIdx) { + case 0: + break; + default: + temp = true; + break; + + } + + if(temp) { + dComIfGp_evmng_cutEnd(i_staffIdx); + } +#else dComIfGp_evmng_getIsAddvance(i_staffIdx); dComIfGp_evmng_cutEnd(i_staffIdx); +#endif } } } @@ -837,7 +864,7 @@ BOOL daNpc_Hi1_c::_execute() { if(!demo()) { int temp = -1; - if(dComIfGp_event_runCheck() && !eventInfo.checkCommandTalk()) { + if(dComIfGp_event_runCheck() && eventInfo.checkCommandTalk() == false) { temp = isEventEntry(); } @@ -874,10 +901,15 @@ BOOL daNpc_Hi1_c::_execute() { /* 00001EDC-00001F30 .text _delete__11daNpc_Hi1_cFv */ BOOL daNpc_Hi1_c::_delete() { - fopAcM_GetID(this); - dComIfG_resDeleteDemo(&mPhs, mArcName); - if(heap && mpMorf) { - mpMorf->stopZelAnime(); + if(DEMO_SELECT(mStateIsComplaete, true)){ +#if VERSION == VERSION_DEMO + l_HIO.removeHIO(); +#endif + dComIfG_resDelete(&mPhs, mArcName); + + if (DEMO_SELECT(mpMorf, heap && mpMorf)) { + mpMorf->stopZelAnime(); + } } return TRUE; } @@ -890,7 +922,7 @@ cPhs_State daNpc_Hi1_c::_create() { }; cPhs_State state; - fopAcM_ct(this, daNpc_Hi1_c); + fopAcM_ct_Retail(this, daNpc_Hi1_c); if(!decideType(fopAcM_GetParam(this) & 0xFF)) { return cPhs_ERROR_e; } @@ -900,10 +932,18 @@ cPhs_State daNpc_Hi1_c::_create() { if(!mStateIsComplaete) { return state; } +#if VERSION == VERSION_DEMO + l_HIO.entryHIO("ハイラル王"); +#endif + fopAcM_ct_Demo(this, daNpc_Hi1_c); if(!fopAcM_entrySolidHeap(this, CheckCreateHeap, a_siz_tbl[field_0x7C5])) { +#if VERSION == VERSION_DEMO + mStateIsComplaete = false; +#endif return cPhs_ERROR_e; } + fopAcM_SetMtx(this, this->mpMorf->getModel()->getBaseTRMtx()); fopAcM_setCullSizeBox(this, -110.0f, -20.0f, -100.0f, 110.0f, 280.0f, 100.0f); @@ -916,7 +956,7 @@ cPhs_State daNpc_Hi1_c::_create() { /* 000024F4-00002768 .text bodyCreateHeap__11daNpc_Hi1_cFv */ BOOL daNpc_Hi1_c::bodyCreateHeap() { J3DModelData* a_mdl_dat = (J3DModelData*)dComIfG_getObjectIDRes(mArcName, dRes_ID_HI_BDL_HI_e); - JUT_ASSERT(0x5BB, a_mdl_dat != NULL); + JUT_ASSERT(DEMO_SELECT(1469, 1467), a_mdl_dat != NULL); mpMorf = new mDoExt_McaMorf( a_mdl_dat, NULL, NULL, NULL, @@ -936,9 +976,9 @@ BOOL daNpc_Hi1_c::bodyCreateHeap() { return FALSE; } m_hed_jnt_num = a_mdl_dat->getJointName()->getIndex("head"); - JUT_ASSERT(0x5CF, m_hed_jnt_num >= 0); + JUT_ASSERT(DEMO_SELECT(1489, 1487), m_hed_jnt_num >= 0); m_bbone_jnt_num = a_mdl_dat->getJointName()->getIndex("backbone1"); - JUT_ASSERT(0x5D1, m_bbone_jnt_num >= 0); + JUT_ASSERT(DEMO_SELECT(1491, 1489), m_bbone_jnt_num >= 0); mpMorf->getModel()->getModelData()->getJointNodePointer(m_hed_jnt_num & 0xffff)->setCallBack(nodeCB_Head); mpMorf->getModel()->getModelData()->getJointNodePointer(m_bbone_jnt_num & 0xffff)->setCallBack(nodeCB_BackBone); diff --git a/src/d/actor/d_a_npc_zl1.cpp b/src/d/actor/d_a_npc_zl1.cpp index b72de352..fbc44e3b 100644 --- a/src/d/actor/d_a_npc_zl1.cpp +++ b/src/d/actor/d_a_npc_zl1.cpp @@ -389,8 +389,8 @@ bool daNpc_Zl1_c::init_ZL1_7() { bool daNpc_Zl1_c::createInit() { bool ret; int temp = 0xff; - for(int i = 0; i < 4; i++) { - mEventIdx[i] = dComIfGp_evmng_getEventIdx(l_evn_tbl[i], 0xff); + for(int i = 0; i < ARRAY_SSIZE(l_evn_tbl); i++) { + mEventIdx[i] = dComIfGp_evmng_getEventIdx(l_evn_tbl[i]); } mEventCut.setActorInfo2("Zl1", this); attention_info.flags = fopAc_Attn_LOCKON_TALK_e | fopAc_Attn_ACTION_SPEAK_e; |
