diff --git a/configure.py b/configure.py index 0dbaabf08..c5e4de06f 100755 --- a/configure.py +++ b/configure.py @@ -1485,7 +1485,7 @@ config.libs = [ ActorRel(Matching, "d_a_obj_demo_barrel"), ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_doguu"), ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_doguu_demo"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_gryw00"), + ActorRel(Matching, "d_a_obj_gryw00"), ActorRel(Matching, "d_a_obj_hfuck1"), ActorRel(Matching, "d_a_obj_hole"), ActorRel(Matching, "d_a_obj_ice"), diff --git a/src/d/actor/d_a_npc_fa1.cpp b/src/d/actor/d_a_npc_fa1.cpp index 2cc947657..d8b6d89e4 100644 --- a/src/d/actor/d_a_npc_fa1.cpp +++ b/src/d/actor/d_a_npc_fa1.cpp @@ -770,7 +770,7 @@ void daNpc_Fa1_c::bottle_baba_move() { BGCheck(); u8 dVar1 = getSubMode(); (this->*bottleBabaSubProc[dVar1])(); - if ((dVar1 == 1) && (current.pos.y > m764->current.pos.y + 150.0f)) { + if (dVar1 == 1 && current.pos.y > m764->current.pos.y + 150.0f) { fopAcM_delete(this); } } @@ -813,7 +813,7 @@ void daNpc_Fa1_c::bottle_baba_move2() { current.pos += speed; BGCheck(); (this->*bottleBabaSubProc[getSubMode()])(); - if ((current.pos.y > m764->current.pos.y + 180.0f)) { + if (current.pos.y > m764->current.pos.y + 180.0f) { init_bottle_baba_move(); } } @@ -911,7 +911,7 @@ BOOL daNpc_Fa1_c::_delete() { if (l_hio_counter != 0) { l_hio_counter--; } - if ((l_hio_counter <= 0) && (l_HIO.mNo >= 0)) { + if (l_hio_counter <= 0 && l_HIO.mNo >= 0) { mDoHIO_deleteChild(l_HIO.mNo); l_HIO.mNo = -1; } diff --git a/src/d/actor/d_a_obj_gryw00.cpp b/src/d/actor/d_a_obj_gryw00.cpp index 0bed11a29..5db6f158e 100644 --- a/src/d/actor/d_a_obj_gryw00.cpp +++ b/src/d/actor/d_a_obj_gryw00.cpp @@ -21,6 +21,35 @@ namespace { static const char l_arcname[] = "Gryw00"; } +#if VERSION == VERSION_DEMO +class daObjGryw00_HIO_c : public JORReflexible { +public: + daObjGryw00_HIO_c(); + virtual ~daObjGryw00_HIO_c() {} + + void genMessage(JORMContext* ctx) { UNUSED(ctx); } + +public: + /* 0x04 */ s8 mNo; + /* 0x08 */ f32 field_0x08; + /* 0x0C */ f32 field_0x0C; + /* 0x10 */ u8 field_0x10; + /* 0x11 */ u8 field_0x11; + /* 0x12 */ u8 field_0x12; +}; // Size: 0x14 + +static daObjGryw00_HIO_c l_HIO; + +daObjGryw00_HIO_c::daObjGryw00_HIO_c() { + mNo = -1; + field_0x08 = 0.0f; + field_0x0C = GEYSER_SOUND_LEN; + field_0x10 = true; + field_0x11 = true; + field_0x12 = true; +} +#endif + /* 00000078-00000090 .text get_draw_water_lv__13daObjGryw00_cFPv */ f32 daObjGryw00_c::get_draw_water_lv(void* p) { daObjGryw00_c* actr = static_cast(p); @@ -29,9 +58,10 @@ f32 daObjGryw00_c::get_draw_water_lv(void* p) { /* 00000090-00000168 .text setup_high_water_level_btk_anm__13daObjGryw00_cFv */ BOOL daObjGryw00_c::setup_high_water_level_btk_anm() { + J3DAnmTextureSRTKey* btk_anm_p; BOOL ret = TRUE; - J3DAnmTextureSRTKey* btk_anm_p = static_cast(dComIfG_getObjectRes(l_arcname, dRes_INDEX_GRYW00_BTK_GRYW00_e)); - JUT_ASSERT(223, btk_anm_p != NULL); + btk_anm_p = static_cast(dComIfG_getObjectRes(l_arcname, dRes_INDEX_GRYW00_BTK_GRYW00_e)); + JUT_ASSERT(DEMO_SELECT(219, 223), btk_anm_p != NULL); if (!mBtk.init(mpModel->getModelData(), btk_anm_p, 1, J3DFrameCtrl::EMode_LOOP, 1.0f, 0x191, -1, -1, 0)) { ret = FALSE; } @@ -83,10 +113,16 @@ void daObjGryw00_c::set_se() { } if (mGeyserSeRemaining > 0) { mGeyserSeRemaining--; - fopAcM_seStartCurrent(this, JA_SE_OBJ_RDUN_MAE_GEYSER, 0); + if (DEMO_SELECT(l_HIO.field_0x10, true) == true) { + fopAcM_seStartCurrent(this, JA_SE_OBJ_RDUN_MAE_GEYSER, 0); + } + } + if (DEMO_SELECT(l_HIO.field_0x11, true) == true) { + fopAcM_seStartCurrent(this, JA_SE_OBJ_RDUN_MAE_W_OUT, 0); + } + if (DEMO_SELECT(l_HIO.field_0x12, true) == true) { + fopAcM_seStartCurrent(this, JA_SE_OBJ_RDUN_MAE_W_UP, 0); } - fopAcM_seStartCurrent(this, JA_SE_OBJ_RDUN_MAE_W_OUT, 0); - fopAcM_seStartCurrent(this, JA_SE_OBJ_RDUN_MAE_W_UP, 0); } /* 000004C4-00000654 .text CreateHeap__13daObjGryw00_cFv */ @@ -96,7 +132,7 @@ BOOL daObjGryw00_c::CreateHeap() { J3DAnmTextureSRTKey* pbtk = static_cast(dComIfG_getObjectRes(l_arcname, dRes_INDEX_GRYW00_BTK_GRYW00_e)); J3DAnmTransform* pbck = static_cast(dComIfG_getObjectRes(l_arcname, dRes_INDEX_GRYW00_BCK_GRYW00_e)); if (!mdlData || !pbtk || !pbck) { - JUT_ASSERT(409, FALSE); + JUT_ASSERT(DEMO_SELECT(404, 409), FALSE); ret = FALSE; } else { mpModel = mDoExt_J3DModel__create(mdlData, 0x80000U, 0x11000222U); @@ -145,6 +181,11 @@ BOOL daObjGryw00_c::Create() { this->home.pos.z); mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); +#if VERSION == VERSION_DEMO + if (l_HIO.mNo < 0) { + l_HIO.mNo = mDoHIO_createChild("竜の山ダンジョン前の水", &l_HIO); // "Water Before Dragon Roost Dungeon" + } +#endif return TRUE; } @@ -155,7 +196,7 @@ cPhs_State daObjGryw00_c::Mthd_Create() { cPhs_State phase_state = dComIfG_resLoad(&mPhs, l_arcname); if (phase_state == cPhs_COMPLEATE_e) { phase_state = MoveBGCreate(l_arcname, dRes_INDEX_GRYW00_DZB_EWATER_e, dBgS_MoveBGProc_Trans, 0x9a0); - JUT_ASSERT(519, (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e)); + JUT_ASSERT(DEMO_SELECT(514, 519), (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e)); } return phase_state; } @@ -163,6 +204,12 @@ cPhs_State daObjGryw00_c::Mthd_Create() { /* 00000A0C-00000A30 .text Delete__13daObjGryw00_cFv */ BOOL daObjGryw00_c::Delete() { particle_delete(); +#if VERSION == VERSION_DEMO + if (l_HIO.mNo >= 0) { + mDoHIO_deleteChild(l_HIO.mNo); + l_HIO.mNo = -1; + } +#endif return TRUE; } @@ -189,7 +236,7 @@ void daObjGryw00_c::switch_wait_act_proc() { mWaterLvIncrement = WATER_WAVE_GROWTH_SPEED; mWaterMaxLv = 5; particle_set(); - mGeyserSeRemaining = GEYSER_SOUND_LEN; + mGeyserSeRemaining = DEMO_SELECT(l_HIO.field_0x0C, GEYSER_SOUND_LEN); mShouldPlaySe = TRUE; mIsHidden = FALSE; modeFunc = &daObjGryw00_c::spread_water_face_act_proc;