diff --git a/include/d/actor/d_a_obj_ice.h b/include/d/actor/d_a_obj_ice.h index 01848e250..61f9ed0f8 100644 --- a/include/d/actor/d_a_obj_ice.h +++ b/include/d/actor/d_a_obj_ice.h @@ -4,6 +4,7 @@ #include "f_op/f_op_actor.h" #include "d/d_cc_d.h" #include "d/d_a_obj.h" +#include "f_op/f_op_actor_mng.h" class dBgW; class dBgS; @@ -18,7 +19,12 @@ class daObjIce_c : public fopAc_ac_c { public: s32 param_get_swSave() const { return daObj::PrmAbstract(this, PRM_SWSAVE_W, PRM_SWSAVE_S); } - void param_on_swSave() const { } + void param_on_swSave() const { + const s32 sw = param_get_swSave(); + if (sw != 0xFF) { + fopAcM_onSwitch((fopAc_ac_c*)this, sw); + } + } inline void setEffectMtx(); u8 chk_appear(); diff --git a/include/d/actor/d_a_obj_leaves.h b/include/d/actor/d_a_obj_leaves.h index 7e1cefef7..13d51719c 100644 --- a/include/d/actor/d_a_obj_leaves.h +++ b/include/d/actor/d_a_obj_leaves.h @@ -27,7 +27,12 @@ public: s32 param_get_itemNo() const { return daObj::PrmAbstract(this, PRM_ITEM_NO_W, PRM_ITEM_NO_S); } s32 param_get_itemSaveBitNo() const { return daObj::PrmAbstract(this, PRM_ITEM_SAVE_BIT_NO_W, PRM_ITEM_SAVE_BIT_NO_S); } s32 param_get_swSave() const { return daObj::PrmAbstract(this, PRM_SWSAVE_W, PRM_SWSAVE_S); } - void param_on_swSave() const { } + void param_on_swSave() const { + const s32 swSave = param_get_swSave(); + if (swSave != 0xFF) { + fopAcM_onSwitch((fopAc_ac_c*)this, swSave); + } + } bool chk_appear(); void setPEmitter(JPABaseEmitter*); diff --git a/include/d/actor/d_a_pirate_flag.h b/include/d/actor/d_a_pirate_flag.h index 6c1bee14e..cd24a5693 100644 --- a/include/d/actor/d_a_pirate_flag.h +++ b/include/d/actor/d_a_pirate_flag.h @@ -24,7 +24,7 @@ public: void setTevStr(dKy_tevstr_c* i_tevStr) { mTevStr = i_tevStr; } cXyz* getPos() { return mPos[m87E]; } cXyz* getNrm() { return mNrm[m87E]; } - cXyz* getBackNrm() { return m4F4[m87E]; } + cXyz* getBackNrm() { return mBackNrm[m87E]; } cXyz* getOffsetVec() { return m74C; } // Guessed based on size in debug maps s16 getEscapeNrmAngle() { return m87A; } void changeCurrentPos() { m87E ^= 1; } @@ -41,7 +41,7 @@ public: /* 0x040 */ dKy_tevstr_c* mTevStr; /* 0x044 */ cXyz mPos[2][25]; /* 0x29C */ cXyz mNrm[2][25]; - /* 0x4F4 */ cXyz m4F4[2][25]; + /* 0x4F4 */ cXyz mBackNrm[2][25]; /* 0x74C */ cXyz m74C[25]; /* 0x878 */ s16 m878; /* 0x87A */ s16 m87A; diff --git a/src/d/actor/d_a_obj_hfuck1.cpp b/src/d/actor/d_a_obj_hfuck1.cpp index a2ea16975..1a4e8fd2a 100644 --- a/src/d/actor/d_a_obj_hfuck1.cpp +++ b/src/d/actor/d_a_obj_hfuck1.cpp @@ -13,7 +13,9 @@ #include "d/d_priority.h" #include "d/actor/d_a_player.h" #include "m_Do/m_Do_ext.h" +#if VERSION == VERSION_DEMO #include "m_Do/m_Do_hostIO.h" +#endif #include "m_Do/m_Do_mtx.h" namespace { @@ -42,14 +44,14 @@ namespace { /* SrcGObjCo SPrm */ 0, }, // cM3dGSphS - { - /* Center */ 0.0f, 0.0f, 0.0f, + {{ + /* Center */ {0.0f, 0.0f, 0.0f}, #if VERSION == VERSION_DEMO /* Radius */ 35.0f, #else /* Radius */ 90.0f, #endif - }, + }}, }; static const Vec l_hook_offset = { 0.0f, 0.0f, 0.0f }; diff --git a/src/d/actor/d_a_obj_ice.cpp b/src/d/actor/d_a_obj_ice.cpp index 27c9e533b..262b6e8d9 100644 --- a/src/d/actor/d_a_obj_ice.cpp +++ b/src/d/actor/d_a_obj_ice.cpp @@ -386,11 +386,7 @@ void daObjIce_c::fade_out_retire_act_proc() { if (m44C < 0.4f && mBgw != NULL) { if (mBgw->ChkUsed()) { dComIfG_Bgsp()->Release(mBgw); - s32 sw = param_get_swSave(); - if (sw != 0xFF) { - param_on_swSave(); - fopAcM_onSwitch((fopAc_ac_c*)this, sw); - } + param_on_swSave(); } } diff --git a/src/d/actor/d_a_obj_leaves.cpp b/src/d/actor/d_a_obj_leaves.cpp index f10a32d69..add1f425d 100644 --- a/src/d/actor/d_a_obj_leaves.cpp +++ b/src/d/actor/d_a_obj_leaves.cpp @@ -96,15 +96,14 @@ static const dCcD_SrcCyl l_fire_cyl_src = { /* SrcGObjCo SPrm */ 0, }, // cM3dGCylS - { - /* Center */ 0.0f, - 0.0f, - 0.0f, + {{ + /* Center */ {0.0f, 0.0f, 0.0f}, /* Radius */ 70.0f, /* Height */ 50.0f, - }, + }}, }; #endif +} // namespace #if VERSION == VERSION_DEMO daObjLeaves_HIO_c::daObjLeaves_HIO_c() { @@ -122,7 +121,6 @@ daObjLeaves_HIO_c::daObjLeaves_HIO_c() { m24 = 0; } #endif -} // namespace #if VERSION >= VERSION_USA namespace { @@ -311,7 +309,7 @@ bool daObjLeaves_c::checkCollision() { if (hitObj != NULL) { u32 cVar5 = hitObj->GetAtType(); switch (cVar5) { - case AT_TYPE_WIND: + case AT_TYPE_WIND: { fopAc_ac_c* player = dComIfGp_getPlayer(0); s16 iVar3 = cM_atan2s(current.pos.x - player->current.pos.x, current.pos.z - player->current.pos.z); csXyz sp0C; @@ -323,7 +321,7 @@ bool daObjLeaves_c::checkCollision() { fopAcM_seStartCurrent(this, JA_SE_OBJ_OCHIBA_BLOW, 0); ret = true; break; - + } case AT_TYPE_BOMB: birthEffect(5, ¤t.pos, NULL, &tevStr.mColorK0); fopAcM_seStartCurrent(this, JA_SE_OBJ_OCHIBA_BLOW, 0); @@ -333,12 +331,13 @@ bool daObjLeaves_c::checkCollision() { default: f32 abs = (*mSph.GetTgHitPosP() - current.pos).absXZ(); #if VERSION == VERSION_DEMO - if (abs < l_HIO.m10) { + if (abs < l_HIO.m10) #elif VERSION == VERSION_JPN - if (abs < 95.0f) { + if (abs < 95.0f) #else - if (abs < 110.0f) { + if (abs < 110.0f) #endif + { switch (cVar5) { case AT_TYPE_HOOKSHOT: case AT_TYPE_MACHETE: @@ -400,7 +399,7 @@ void daObjLeaves_c::tg_hitCallback(fopAc_ac_c* a_this, dCcD_GObjInf* arg1, fopAc u32 cVar5 = hitObj->GetAtType(); switch (cVar5) { - case AT_TYPE_WIND: + case AT_TYPE_WIND: { fopAc_ac_c* player = dComIfGp_getPlayer(0); s16 iVar3 = cM_atan2s(a_this->current.pos.x - player->current.pos.x, a_this->current.pos.z - player->current.pos.z); csXyz sp0C; @@ -412,7 +411,7 @@ void daObjLeaves_c::tg_hitCallback(fopAc_ac_c* a_this, dCcD_GObjInf* arg1, fopAc fopAcM_seStartCurrent(a_this, JA_SE_OBJ_OCHIBA_BLOW, 0); i_this->m44C = true; break; - + } case AT_TYPE_BOMB: i_this->birthEffect(5, &a_this->current.pos, NULL, &a_this->tevStr.mColorK0); fopAcM_seStartCurrent(a_this, JA_SE_OBJ_OCHIBA_BLOW, 0); @@ -541,10 +540,11 @@ bool daObjLeaves_c::_delete() { mSmokeCallback.remove(); } #if VERSION > VERSION_DEMO - if (heap != NULL && mpBgW != NULL) { + if (heap != NULL && mpBgW != NULL) #else - if (mpBgW != NULL) { + if (mpBgW != NULL) #endif + { if (mpBgW->ChkUsed()) { dComIfG_Bgsp()->Release(mpBgW); } @@ -583,10 +583,6 @@ void daObjLeaves_c::wait_proc() { dComIfG_Ccsp()->Set(&mSph); } else { param_on_swSave(); - s32 swSave = param_get_swSave(); - if (swSave != 0xFF) { - fopAcM_onSwitch((fopAc_ac_c*)this, swSave); - } fopAcM_OffStatus(this, fopAcStts_NOCULLEXEC_e); if (mpBgW != NULL && mpBgW->ChkUsed()) { @@ -638,10 +634,11 @@ void daObjLeaves_c::item_set_wait_proc() { #endif m408 += m40C; #if VERSION == VERSION_DEMO - if (m408 <= l_HIO.m1C) { + if (m408 <= l_HIO.m1C) #else - if (m408 <= 200.0f) { + if (m408 <= 200.0f) #endif + { s32 item = param_get_itemNo(); s32 itemSaveBit = param_get_itemSaveBitNo(); diff --git a/src/d/actor/d_a_pirate_flag.cpp b/src/d/actor/d_a_pirate_flag.cpp index cf909ea9f..cdd37d1b9 100644 --- a/src/d/actor/d_a_pirate_flag.cpp +++ b/src/d/actor/d_a_pirate_flag.cpp @@ -121,14 +121,14 @@ void daPirate_Flag_packet_c::setCorrectNrmAngle(s16 param_0, f32 param_1) { /* 00000364-000003F0 .text setBackNrm__22daPirate_Flag_packet_cFv */ void daPirate_Flag_packet_c::setBackNrm() { - cXyz* a = getNrm(); - cXyz* b = getBackNrm(); + cXyz* nrm = mNrm[m87E]; + cXyz* nrmBack = mBackNrm[m87E]; for (int i = 0; i < (s32)ARRAY_SIZE(*mNrm); i++) { - b->setall(0.0f); - *b -= *a; + nrmBack->setall(0.0f); + *nrmBack -= *nrm; - a++; - b++; + nrm++; + nrmBack++; } } @@ -203,8 +203,8 @@ void daPirate_Flag_packet_c::draw() { GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_POS_XY, GX_F32, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_F32, 0); - GXSetArray(GX_VA_POS, getPos(), sizeof(cXyz)); - GXSetArray(GX_VA_NRM, getNrm(), sizeof(cXyz)); + GXSetArray(GX_VA_POS, mPos[m87E], sizeof(cXyz)); + GXSetArray(GX_VA_NRM, mNrm[m87E], sizeof(cXyz)); GXSetArray(GX_VA_TEX0, l_texCoord, sizeof(*l_texCoord)); GXTexObj texObj; ResTIMG* timg = static_cast(dComIfG_getObjectRes("Kaizokusen", KAIZOKUSEN_INDEX_BTI_TXA_KAIZOKU_HATA)); @@ -276,7 +276,7 @@ void daPirate_Flag_packet_c::draw() { GXCallDisplayList(l_pirate_flag_DL, sizeof(l_pirate_flag_DL) - 0x04); GXSetCullMode(GX_CULL_FRONT); - GXSetArray(GX_VA_NRM, getBackNrm(), sizeof(cXyz)); + GXSetArray(GX_VA_NRM, mBackNrm[m87E], sizeof(cXyz)); GXCallDisplayList(l_pirate_flag_DL, sizeof(l_pirate_flag_DL) - 0x04); #if VERSION > VERSION_JPN @@ -457,7 +457,7 @@ static void pirate_flag_move(pirate_flag_class* i_this) { #else DCStoreRangeNoSync(i_this->mPacket.getPos(), sizeof(*i_this->mPacket.mPos)); DCStoreRangeNoSync(i_this->mPacket.getNrm(), sizeof(*i_this->mPacket.mNrm)); - DCStoreRangeNoSync(i_this->mPacket.getBackNrm(), sizeof(*i_this->mPacket.m4F4)); + DCStoreRangeNoSync(i_this->mPacket.getBackNrm(), sizeof(*i_this->mPacket.mBackNrm)); #endif } diff --git a/src/d/actor/d_a_player_crawl.inc b/src/d/actor/d_a_player_crawl.inc index 3e353a448..33df02724 100644 --- a/src/d/actor/d_a_player_crawl.inc +++ b/src/d/actor/d_a_player_crawl.inc @@ -100,7 +100,7 @@ BOOL daPy_lk_c::changeCrawlAutoMoveProc(cXyz* param_1) { sp70.x = param_1->x + (75.0f * temp_f31); sp70.y = param_1->y; sp70.z = param_1->z + (75.0f * temp_f30); - mLinkLinChk.Set(param_1, &sp70, (fopAc_ac_c*)this); + mLinkLinChk.Set(param_1, &sp70, this); if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) { sp4C.x = sp70.x + (50.0f * temp_f30); sp4C.y = sp70.y; @@ -117,7 +117,7 @@ BOOL daPy_lk_c::changeCrawlAutoMoveProc(cXyz* param_1) { sp4C.z = param_1->z - (50.0f * temp_f29); sp40 = (*param_1 * 2.0f) - sp4C; - mLinkLinChk.Set(param_1, &sp4C, (fopAc_ac_c*)this); + mLinkLinChk.Set(param_1, &sp4C, this); if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) { var_r29 |= 8; sp58.x = sp40.x + (75.0f * temp_f29); @@ -134,7 +134,7 @@ BOOL daPy_lk_c::changeCrawlAutoMoveProc(cXyz* param_1) { if (!checkCrawlSideWall(&sp4C, &sp58, &sp34, &sp28, &spA, &sp8)) { return false; } - mLinkLinChk.Set(param_1, &sp40, (fopAc_ac_c*)this); + mLinkLinChk.Set(param_1, &sp40, this); if (!dComIfG_Bgsp()->LineCross(&mLinkLinChk)) { var_r29 |= 8; } diff --git a/src/d/actor/d_a_player_whide.inc b/src/d/actor/d_a_player_whide.inc index db4785153..435c57097 100644 --- a/src/d/actor/d_a_player_whide.inc +++ b/src/d/actor/d_a_player_whide.inc @@ -198,7 +198,7 @@ BOOL daPy_lk_c::checkWHideBackWall(cXyz* param_0) { cXyz local_18; local_18.set(param_0->x - 25.0f * cM_ssin(shape_angle.y), param_0->y, param_0->z - 25.0f * cM_scos(shape_angle.y)); - mLinkLinChk.Set(param_0, &local_18, (fopAc_ac_c*)this); + mLinkLinChk.Set(param_0, &local_18, this); if (dComIfG_Bgsp()->LineCross(&mLinkLinChk)) { return true; }