From 65c446628b65fa50322098da2957278099c63cd8 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Fri, 22 Aug 2025 00:56:51 -0400 Subject: [PATCH] obj_barrier OK on JPN --- configure.py | 2 +- include/d/actor/d_a_obj_barrier.h | 2 ++ src/d/actor/d_a_obj_barrier.cpp | 33 ++++++++++++++++++++++++------- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/configure.py b/configure.py index c0aa7e692..72e95a44d 100755 --- a/configure.py +++ b/configure.py @@ -1510,7 +1510,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_nzg"), ActorRel(NonMatching, "d_a_obj_aygr"), ActorRel(NonMatching, "d_a_obj_balancelift"), - ActorRel(MatchingFor("GZLE01", "GZLP01"), "d_a_obj_barrier"), + ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_barrier"), ActorRel(NonMatching, "d_a_obj_bemos"), ActorRel(Matching, "d_a_obj_canon"), ActorRel(Matching, "d_a_obj_eff"), diff --git a/include/d/actor/d_a_obj_barrier.h b/include/d/actor/d_a_obj_barrier.h index d56a474a4..8be88788a 100644 --- a/include/d/actor/d_a_obj_barrier.h +++ b/include/d/actor/d_a_obj_barrier.h @@ -97,8 +97,10 @@ public: /* 0x5D8 */ daObjBarrier_ef_c mEffect; /* 0x724 */ u8 mBarrierActive; /* 0x728 */ int mMoya; +#if VERSION > VERSION_JPN /* 0x72C */ s16 mEventID; /* 0x730 */ int mBarrierProc; +#endif }; #endif /* D_A_OBJ_BARRIER_H */ diff --git a/src/d/actor/d_a_obj_barrier.cpp b/src/d/actor/d_a_obj_barrier.cpp index 262faf419..20a0780dd 100644 --- a/src/d/actor/d_a_obj_barrier.cpp +++ b/src/d/actor/d_a_obj_barrier.cpp @@ -106,7 +106,7 @@ bool daObjBarrier_anm_c::init() { J3DAnmTevRegKey* pbrk = static_cast(dComIfG_getObjectRes(l_arcname, YCAGE_BRK_YCAGE00)); if (modelData == NULL || pbtk == NULL || pbrk == NULL) { - JUT_ASSERT(407, FALSE); + JUT_ASSERT(VERSION_SELECT(406, 406, 407, 407), FALSE); rt = false; } else { mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x1000200); @@ -225,6 +225,7 @@ void daObjBarrier_c::brkAnmPlay() { mAnm.setBrkFrame(brk_frame); } +#if VERSION > VERSION_JPN /* 00000884-000009F0 .text break_start_wait_proc__14daObjBarrier_cFv */ void daObjBarrier_c::break_start_wait_proc() { // 0x3980: Saw Hyrule 3 Electric Barrier Demo @@ -271,11 +272,26 @@ void daObjBarrier_c::break_end_wait_proc() { fopAcM_delete(this); } } +#endif /* 00000AB8-00000B34 .text break_check__14daObjBarrier_cFv */ bool daObjBarrier_c::break_check() { bool chk = false; +#if VERSION <= VERSION_JPN + + if (mMoya == 0) { + if (dComIfGs_isEventBit(0x3980) == true) { + daPy_py_c* player_p = (daPy_py_c*)daPy_getPlayerActorClass(); + + if ((player_p->current.pos - current.pos).absXZ() >= 8800.0f) { + dComIfGs_onEventBit(dSv_evtBit_c::BARRIER_BREAK); + dComIfGp_setNextStage("Hyrule", 0xE9, 0, 9); + chk = true; + } + } + } +#else if (mMoya == 0) { switch (mBarrierProc) { case PROC_BREAK_START_WAIT: @@ -291,6 +307,7 @@ bool daObjBarrier_c::break_check() { break; } } +#endif return chk; } @@ -301,8 +318,8 @@ void daObjBarrier_ef_c::setDummyTexture(int i_idx) { J3DTexture* texture = modelData->getTexture(); JUTNameTab* textureName = modelData->getTextureName(); - JUT_ASSERT(808, texture != NULL); - JUT_ASSERT(809, textureName != NULL); + JUT_ASSERT(VERSION_SELECT(710, 710, 808, 808), texture != NULL); + JUT_ASSERT(VERSION_SELECT(711, 711, 809, 809), textureName != NULL); for (u16 i = 0; i < texture->getNum(); i++) { if (strcmp(textureName->getName(i), "__dummy") == 0) { @@ -377,13 +394,13 @@ void daObjBarrier_ef_c::birth(fopAc_ac_c* i_hitActor, f32 i_radius, cXyz i_cente J3DModelData* modelData = mpModel[effect_idx]->getModelData(); J3DAnmTextureSRTKey* btk_anm_p = static_cast(dComIfG_getObjectRes(l_arcname, YCAGE_BTK_YHRBR00)); - JUT_ASSERT(937, btk_anm_p != NULL); + JUT_ASSERT(VERSION_SELECT(839, 839, 937, 937), btk_anm_p != NULL); J3DAnmTransform* bck_anm_p = static_cast(dComIfG_getObjectRes(l_arcname, YCAGE_BCK_YHRBR00)); - JUT_ASSERT(942, bck_anm_p != NULL); + JUT_ASSERT(VERSION_SELECT(844, 844, 942, 942), bck_anm_p != NULL); J3DAnmTevRegKey* brk_anm_p = static_cast(dComIfG_getObjectRes(l_arcname, YCAGE_BRK_YHRBR00)); - JUT_ASSERT(947, brk_anm_p != NULL); + JUT_ASSERT(VERSION_SELECT(849, 849, 947, 947), brk_anm_p != NULL); mBtk[effect_idx].init(modelData, btk_anm_p, TRUE, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, true, 0); @@ -409,7 +426,7 @@ bool daObjBarrier_ef_c::init() { J3DAnmTevRegKey* pbrk = static_cast(dComIfG_getObjectRes(l_arcname, YCAGE_BRK_YHRBR00)); if (modelData == NULL || pbtk == NULL || pbck == NULL || pbrk == NULL) { - JUT_ASSERT(1016, FALSE); + JUT_ASSERT(VERSION_SELECT(918, 918, 1016, 1016), FALSE); rt = false; } else { for (int i = 0; i < 4; i++) { @@ -572,9 +589,11 @@ bool daObjBarrier_c::_execute() { /* 00001B64-00001C1C .text _draw__14daObjBarrier_cFv */ bool daObjBarrier_c::_draw() { +#if VERSION > VERSION_JPN if (mBarrierProc) { return true; } +#endif if (mMoya == 0) { mAnm.getBtkAnmP()->entry(mAnm.getMdlP()->getModelData());