d_a_obj_gryw00 OK for demo

This commit is contained in:
LagoLunatic
2026-09-21 12:55:46 -04:00
parent d09d06562b
commit 496a768976
3 changed files with 59 additions and 12 deletions
+1 -1
View File
@@ -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"),
+3 -3
View File
@@ -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;
}
+55 -8
View File
@@ -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<daObjGryw00_c*>(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<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes(l_arcname, dRes_INDEX_GRYW00_BTK_GRYW00_e));
JUT_ASSERT(223, btk_anm_p != NULL);
btk_anm_p = static_cast<J3DAnmTextureSRTKey*>(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<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes(l_arcname, dRes_INDEX_GRYW00_BTK_GRYW00_e));
J3DAnmTransform* pbck = static_cast<J3DAnmTransform*>(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;