From ddbb24ba066f9e8c29718870678c7dda92a9f798 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Sat, 25 Apr 2026 23:54:54 -0400 Subject: [PATCH] Demo work --- configure.py | 26 ++++++------- src/d/actor/d_a_obj_ganonbed.cpp | 65 ++++++++++++++++++++++++++++++-- src/d/actor/d_a_obj_gaship.cpp | 12 +++++- src/d/actor/d_a_obj_gaship2.cpp | 20 ++++++++-- src/d/actor/d_a_obj_hha.cpp | 11 ++++-- src/d/actor/d_a_obj_ojtree.cpp | 6 +-- src/d/actor/d_a_obj_pbka.cpp | 2 +- src/d/actor/d_a_obj_rforce.cpp | 29 ++++++++++---- src/d/actor/d_a_obj_smplbg.cpp | 13 +++++-- src/d/actor/d_a_obj_vgnfd.cpp | 35 ++++++++++++----- src/d/actor/d_a_obj_vmsdz.cpp | 2 +- src/d/actor/d_a_obj_zouK.cpp | 53 +++++++++++++++++++------- 12 files changed, 210 insertions(+), 64 deletions(-) diff --git a/configure.py b/configure.py index d51815ba3..d1298ddf3 100755 --- a/configure.py +++ b/configure.py @@ -1700,9 +1700,9 @@ config.libs = [ ActorRel(NonMatching, "d_a_obj_firewall"), ActorRel(NonMatching, "d_a_obj_flame"), ActorRel(NonMatching, "d_a_obj_ftree"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_ganonbed"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_gaship"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_gaship2"), + ActorRel(Matching, "d_a_obj_ganonbed"), + ActorRel(Matching, "d_a_obj_gaship"), + ActorRel(Matching, "d_a_obj_gaship2"), ActorRel(Matching, "d_a_obj_gnnbtltaki"), ActorRel(Matching, "d_a_obj_gnndemotakie"), ActorRel(Matching, "d_a_obj_gnndemotakis"), @@ -1714,7 +1714,7 @@ config.libs = [ ActorRel(Matching, "d_a_obj_hat"), ActorRel(Matching, "d_a_obj_hbrf1"), ActorRel(NonMatching, "d_a_obj_hcbh"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_hha"), + ActorRel(Matching, "d_a_obj_hha"), ActorRel(NonMatching, "d_a_obj_hlift"), ActorRel(Matching, "d_a_obj_homen"), ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_homensmoke"), @@ -1735,15 +1735,15 @@ config.libs = [ ActorRel(NonMatching, "d_a_obj_msdan_sub2"), ActorRel(Matching, "d_a_obj_mtest"), ActorRel(Matching, "d_a_obj_nest"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_ojtree"), + ActorRel(Matching, "d_a_obj_ojtree"), ActorRel(Matching, "d_a_obj_ospbox"), ActorRel(Matching, "d_a_obj_paper"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_pbka"), + ActorRel(Matching, "d_a_obj_pbka"), ActorRel(Matching, "d_a_obj_pfall"), - ActorRel(Matching, "d_a_obj_plant"), - ActorRel(Matching, "d_a_obj_rflw"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_rforce"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_smplbg"), + ActorRel(Matching, "d_a_obj_plant"), + ActorRel(Matching, "d_a_obj_rflw"), + ActorRel(Matching, "d_a_obj_rforce"), + ActorRel(Matching, "d_a_obj_smplbg"), ActorRel(NonMatching, "d_a_obj_tapestry"), ActorRel(NonMatching, "d_a_obj_tntrap"), ActorRel(Matching, "d_a_obj_tower"), @@ -1752,15 +1752,15 @@ config.libs = [ ActorRel(NonMatching, "d_a_obj_try"), ActorRel(Matching, "d_a_obj_usovmc"), ActorRel(Matching, "d_a_obj_vfan"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_vgnfd"), + ActorRel(Matching, "d_a_obj_vgnfd"), ActorRel(Matching, "d_a_obj_vmc"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_vmsdz"), + ActorRel(Matching, "d_a_obj_vmsdz"), ActorRel(Matching, "d_a_obj_vmsms"), ActorRel(Matching, "d_a_obj_volcano"), ActorRel(NonMatching, "d_a_obj_vtil"), ActorRel(NonMatching, "d_a_obj_vyasi"), ActorRel(Matching, "d_a_obj_xfuta"), - ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_zouK"), + ActorRel(Matching, "d_a_obj_zouK"), ActorRel(Matching, "d_a_oship"), ActorRel(NonMatching, "d_a_ph"), ActorRel(NonMatching, "d_a_pt"), diff --git a/src/d/actor/d_a_obj_ganonbed.cpp b/src/d/actor/d_a_obj_ganonbed.cpp index c74886be4..9413c55a2 100644 --- a/src/d/actor/d_a_obj_ganonbed.cpp +++ b/src/d/actor/d_a_obj_ganonbed.cpp @@ -19,6 +19,29 @@ namespace { static const char l_arcname[] = "Gbed"; }; +#if VERSION == VERSION_DEMO +class daObjGbed_HIO_c : public JORReflexible { +public: + daObjGbed_HIO_c(); + virtual ~daObjGbed_HIO_c() {} + + void genMessage(JORMContext*) {} + +public: + /* 0x04 */ s8 mNo; + /* 0x05 */ u8 field_0x5; + /* 0x06 */ u8 field_0x6; +}; + +static daObjGbed_HIO_c l_HIO; + +daObjGbed_HIO_c::daObjGbed_HIO_c() { + mNo = -1; + field_0x5 = 0; + field_0x6 = 0; +} +#endif + /* 00000078-00000100 .text init_mtx__11daObjGbed_cFv */ void daObjGbed_c::init_mtx() { mpModel->setBaseScale(scale); @@ -39,7 +62,7 @@ bool daObjGbed_c::create_heap() { J3DModelData* pModelData = static_cast(dComIfG_getObjectRes(l_arcname, GBED_BDL_K_GBED)); if (!pModelData) { - JUT_ASSERT(0xb1, FALSE); + JUT_ASSERT(DEMO_SELECT(173, 177), FALSE); ret = false; } else { mpModel = mDoExt_J3DModel__create(pModelData, 0x80000, 0x11000022); @@ -71,6 +94,12 @@ cPhs_State daObjGbed_c::_create() { } } +#if VERSION == VERSION_DEMO + if (l_HIO.mNo < 0) { + l_HIO.mNo = mDoHIO_createChild("ガノンベッド", &l_HIO); // "Ganon bed" + } +#endif + return ret; } @@ -78,27 +107,57 @@ cPhs_State daObjGbed_c::_create() { bool daObjGbed_c::_delete() { dComIfG_resDelete(&mPhs, l_arcname); - if (heap != NULL && mpBgW != NULL) { + if ( +#if VERSION > VERSION_DEMO + heap != NULL && +#endif + mpBgW != NULL + ) { if (mpBgW->ChkUsed()) { dComIfG_Bgsp()->Release(mpBgW); } +#if VERSION > VERSION_DEMO mpBgW = NULL; +#endif +} + +#if VERSION == VERSION_DEMO + if (l_HIO.mNo >= 0) { + mDoHIO_deleteChild(l_HIO.mNo); + l_HIO.mNo = -1; } +#endif return true; } /* 0000038C-000003E4 .text _execute__11daObjGbed_cFv */ bool daObjGbed_c::_execute() { - if (mpBgW != NULL && mpBgW->ChkUsed()) + if (mpBgW != NULL && mpBgW->ChkUsed()) { mpBgW->Move(); + } + +#if VERSION == VERSION_DEMO + if (l_HIO.field_0x5 == 1) { + fopAcM_delete(this); + } +#endif + return true; } /* 000003E4-00000444 .text _draw__11daObjGbed_cFv */ bool daObjGbed_c::_draw() { +#if VERSION == VERSION_DEMO + if (l_HIO.field_0x6 == 1) { + g_env_light.settingTevStruct(TEV_TYPE_BG0, ¤t.pos, &tevStr); + } else { + g_env_light.settingTevStruct(TEV_TYPE_ACTOR, ¤t.pos, &tevStr); + } +#else g_env_light.settingTevStruct(TEV_TYPE_ACTOR, ¤t.pos, &tevStr); +#endif g_env_light.setLightTevColorType(mpModel, &tevStr); mDoExt_modelUpdateDL(mpModel); return true; diff --git a/src/d/actor/d_a_obj_gaship.cpp b/src/d/actor/d_a_obj_gaship.cpp index a196d2ead..32562abcc 100644 --- a/src/d/actor/d_a_obj_gaship.cpp +++ b/src/d/actor/d_a_obj_gaship.cpp @@ -31,7 +31,7 @@ void daObjGaship::Act_c::birth_flag() { cXyz offset; mDoMtx_multVec(mtx, &flag_offset[i], &offset); csXyz angle(flag_angle[i]); - fpc_ProcID pid = fopAcM_create(PROC_MAJUU_FLAG, 0x01, &offset, current.roomNo, &angle); + fpc_ProcID pid = fopAcM_create(PROC_MAJUU_FLAG, 0x01, &offset, fopAcM_GetRoomNo(this), &angle); if (pid != fpcM_ERROR_PROCESS_ID_e) birthFlag[i] = true; } @@ -46,13 +46,21 @@ BOOL daObjGaship::Act_c::solidHeapCB(fopAc_ac_c* i_ac) { /* 00000378-00000448 .text create_heap__Q211daObjGaship5Act_cFv */ bool daObjGaship::Act_c::create_heap() { J3DModelData* mdl_data = static_cast(dComIfG_getObjectRes(M_arcname, GASHIP_BDL_GASHIP)); - JUT_ASSERT(0x8c, mdl_data != NULL); + JUT_ASSERT(140, mdl_data != NULL); +#if VERSION > VERSION_DEMO if (mdl_data != NULL) +#endif + { mModel = mDoExt_J3DModel__create(mdl_data, 0, 0x11000002); + } set_mtx(); +#if VERSION == VERSION_DEMO + return mdl_data != NULL ? TRUE : FALSE; +#else return mdl_data != NULL && mModel != NULL; +#endif } /* 00000448-000004F8 .text _create__Q211daObjGaship5Act_cFv */ diff --git a/src/d/actor/d_a_obj_gaship2.cpp b/src/d/actor/d_a_obj_gaship2.cpp index 2d0405f02..065526ddc 100644 --- a/src/d/actor/d_a_obj_gaship2.cpp +++ b/src/d/actor/d_a_obj_gaship2.cpp @@ -26,20 +26,29 @@ bool daObjGaship2::Act_c::create_heap() { cBgD_t *bgw_data; mdl_data = (J3DModelData *) (dComIfG_getObjectRes(M_arcname, YAKEROM_BDL_YAKEROM)); - JUT_ASSERT(0x5A, mdl_data != NULL); + JUT_ASSERT(90, mdl_data != NULL); mpModel = mDoExt_J3DModel__create(mdl_data, 0, 0x11000002); set_mtx(); bgw_data = (cBgD_t *) (dComIfG_getObjectRes(M_arcname, YAKEROM_DZB_YAKEROM)); - JUT_ASSERT(0x67, bgw_data != NULL); - if (bgw_data != NULL) { + JUT_ASSERT(103, bgw_data != NULL); +#if VERSION > VERSION_DEMO + if (bgw_data != NULL) +#endif + { mpBgW = new dBgW(); if (mpBgW != NULL && (mpBgW->Set(bgw_data, cBgW::MOVE_BG_e, &mMtx) == true)) { +#if VERSION > VERSION_DEMO return false; +#endif } } +#if VERSION == VERSION_DEMO + return mdl_data != NULL && bgw_data != NULL && mpBgW != NULL; +#else return mdl_data != NULL && mpModel != NULL && bgw_data != NULL && mpBgW != NULL; +#endif } /* 00000220-000002F8 .text _create__Q212daObjGaship25Act_cFv */ @@ -60,7 +69,10 @@ cPhs_State daObjGaship2::Act_c::_create() { /* 000002F8-00000384 .text _delete__Q212daObjGaship25Act_cFv */ bool daObjGaship2::Act_c::_delete() { - if (heap != NULL && mpBgW != NULL) { +#if VERSION > VERSION_DEMO + if (heap != NULL && mpBgW != NULL) +#endif + { if (mpBgW->ChkUsed()) { dComIfG_Bgsp()->Release(mpBgW); } diff --git a/src/d/actor/d_a_obj_hha.cpp b/src/d/actor/d_a_obj_hha.cpp index c39254afd..2528e4993 100644 --- a/src/d/actor/d_a_obj_hha.cpp +++ b/src/d/actor/d_a_obj_hha.cpp @@ -265,7 +265,10 @@ int daObjHha_c::solidHeapCB(fopAc_ac_c* i_this) { /* 00000C4C-00000E48 .text create_heap__10daObjHha_cFv */ BOOL daObjHha_c::create_heap() { + J3DModelData* mdl_data; + J3DAnmTextureSRTKey* btk_data; int i; + BOOL ret = TRUE; for(i = 0; i < 2; i++){ @@ -276,13 +279,13 @@ BOOL daObjHha_c::create_heap() { } if(ret != FALSE){ - J3DModelData* mdl_data = static_cast(dComIfG_getObjectRes(M_arcname, HHA_BDL_YSWTR00)); - JUT_ASSERT(0x324, mdl_data != NULL); + mdl_data = static_cast(dComIfG_getObjectRes(M_arcname, HHA_BDL_YSWTR00)); + JUT_ASSERT(DEMO_SELECT(741, 804), mdl_data != NULL); if(mdl_data != NULL){ mpModel = mDoExt_J3DModel__create(mdl_data, 0x80000, 0x11000222); for(i = 0; i < 2; i++){ - J3DAnmTextureSRTKey* btk_data = static_cast(dComIfG_getObjectRes(M_arcname, l_daObjHha_btk_idx_table[i])); - JUT_ASSERT(0x32f, btk_data != NULL); + btk_data = static_cast(dComIfG_getObjectRes(M_arcname, l_daObjHha_btk_idx_table[i])); + JUT_ASSERT(DEMO_SELECT(752, 815), btk_data != NULL); if(mBtkA[i].init(mdl_data, btk_data, true, l_daObjHha_btk_mode_table[i]) == FALSE){ ret = FALSE; break; diff --git a/src/d/actor/d_a_obj_ojtree.cpp b/src/d/actor/d_a_obj_ojtree.cpp index 77bcee5ee..96f8ecd22 100644 --- a/src/d/actor/d_a_obj_ojtree.cpp +++ b/src/d/actor/d_a_obj_ojtree.cpp @@ -32,7 +32,7 @@ BOOL daObjOjtree::Act_c::Create() { fopAcM_setCullSizeBox(this, -500.0f, -1.0f, -300.0f, 251.0f, 5001.0f, 251.0f); pos.set(current.pos); pos.y += 5000.0f; - fopAcM_create(PROC_JBO, daJbo_Type_NORMAL_e, &pos, home.roomNo, &shape_angle, NULL, 0xff, NULL); + fopAcM_create(PROC_JBO, daJbo_Type_NORMAL_e, &pos, fopAcM_GetHomeRoomNo(this), &shape_angle, NULL, 0xff, NULL); mLockTimer = 2; return TRUE; } @@ -43,7 +43,7 @@ cPhs_State daObjOjtree::Act_c::Mthd_Create() { cPhs_State phase_state = dComIfG_resLoad(&mPhs, M_arcname); if (phase_state == cPhs_COMPLEATE_e) { - phase_state = MoveBGCreate(M_arcname, OJTREE_DZB_OJTREE, NULL, 0x26a0); + phase_state = MoveBGCreate(M_arcname, OJTREE_DZB_OJTREE, NULL, DEMO_SELECT(0x34A0, 0x26A0)); JUT_ASSERT(123, (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e)); } @@ -58,7 +58,7 @@ BOOL daObjOjtree::Act_c::Delete() { /* 000002EC-00000338 .text Mthd_Delete__Q211daObjOjtree5Act_cFv */ BOOL daObjOjtree::Act_c::Mthd_Delete() { s32 result = MoveBGDelete(); - dComIfG_resDelete(&mPhs, M_arcname); + dComIfG_resDeleteDemo(&mPhs, M_arcname); return result; } diff --git a/src/d/actor/d_a_obj_pbka.cpp b/src/d/actor/d_a_obj_pbka.cpp index 02d9b2455..592b463d2 100644 --- a/src/d/actor/d_a_obj_pbka.cpp +++ b/src/d/actor/d_a_obj_pbka.cpp @@ -65,7 +65,7 @@ static cPhs_State daObjPbka_Create(void* i_this) { } bool daObjPbka_c::_delete() { - dComIfG_resDelete(&mPhase,"Pbka"); + dComIfG_resDeleteDemo(&mPhase,"Pbka"); return TRUE; } diff --git a/src/d/actor/d_a_obj_rforce.cpp b/src/d/actor/d_a_obj_rforce.cpp index b4e09111c..4a9c824a1 100644 --- a/src/d/actor/d_a_obj_rforce.cpp +++ b/src/d/actor/d_a_obj_rforce.cpp @@ -28,18 +28,25 @@ bool daObjRforce::Act_c::create_heap() { cBgD_t* bgw_data = static_cast(dComIfG_getObjectRes(M_arcname, STPTETU_DZB_STPTETU)); JUT_ASSERT(0x64, bgw_data != NULL); - if(bgw_data != NULL){ +#if VERSION > VERSION_DEMO + if(bgw_data != NULL) +#endif + { mpBgw = new dBgW(); if(mpBgw != NULL){ - if(mpBgw->Set(bgw_data, cBgW::MOVE_BG_e, &mtx) == true) return false; + if(mpBgw->Set(bgw_data, cBgW::MOVE_BG_e, &mtx) == true) { +#if VERSION > VERSION_DEMO + return false; +#endif + } } } - bool ret = false; - if(mdl_data != NULL && mpModel != NULL && bgw_data != NULL && mpBgw != NULL){ - ret = true; - } - return ret; +#if VERSION == VERSION_DEMO + return mdl_data != NULL && bgw_data != NULL && mpBgw != NULL; +#else + return mdl_data != NULL && mpModel != NULL && bgw_data != NULL && mpBgw != NULL; +#endif } /* 00000220-000002F8 .text _create__Q211daObjRforce5Act_cFv */ @@ -64,7 +71,13 @@ cPhs_State daObjRforce::Act_c::_create() { /* 000002F8-00000384 .text _delete__Q211daObjRforce5Act_cFv */ bool daObjRforce::Act_c::_delete() { - if(heap != NULL && mpBgw != NULL && mpBgw->ChkUsed()){ + if( +#if VERSION > VERSION_DEMO + heap != NULL && + mpBgw != NULL && +#endif + mpBgw->ChkUsed() + ){ dComIfG_Bgsp()->Release(mpBgw); } dComIfG_resDelete(&mPhs, M_arcname); diff --git a/src/d/actor/d_a_obj_smplbg.cpp b/src/d/actor/d_a_obj_smplbg.cpp index 18e880a2d..407bc38e9 100644 --- a/src/d/actor/d_a_obj_smplbg.cpp +++ b/src/d/actor/d_a_obj_smplbg.cpp @@ -11,7 +11,7 @@ #include "d/res/res_qtkhd.h" const daObjSmplbg::Act_c::Attr_c daObjSmplbg::Act_c::M_attr[] = { - /* mHeapSize */ 0x15E0, + /* mHeapSize */ DEMO_SELECT(0x8000, 0x15E0), /* mResName */ "Qtkhd", /* mBDLFileIndex */ QTKHD_BDL_QTKHD, /* mDZBFileIndex */ QTKHD_DZB_QTKHD, @@ -57,12 +57,19 @@ BOOL daObjSmplbg::Act_c::Create() { /* 0000032C-00000474 .text Mthd_Create__Q211daObjSmplbg5Act_cFv */ cPhs_State daObjSmplbg::Act_c::Mthd_Create() { +#if VERSION > VERSION_DEMO fopAcM_SetupActor(this, Act_c); +#endif mType = prm_get_type(); if(mType >= 1){ mType = 0; } + +#if VERSION == VERSION_DEMO + fopAcM_SetupActor(this, Act_c); +#endif + cPhs_State phase_state = dComIfG_resLoad(&mPhs, attr().mResName); if(phase_state == cPhs_COMPLEATE_e){ phase_state = MoveBGCreate(attr().mResName, attr().mDZBFileIndex, attr().mMoveBGProc, attr().mHeapSize); @@ -79,7 +86,7 @@ BOOL daObjSmplbg::Act_c::Delete() { /* 0000047C-000004D8 .text Mthd_Delete__Q211daObjSmplbg5Act_cFv */ BOOL daObjSmplbg::Act_c::Mthd_Delete() { BOOL result = MoveBGDelete(); - dComIfG_resDelete(&mPhs, attr().mResName); + dComIfG_resDeleteDemo(&mPhs, attr().mResName); return result; } @@ -183,7 +190,7 @@ actor_process_profile_definition g_profile_Obj_Smplbg = { /* Leaf SubMtd */ &g_fopAc_Method.base, /* Priority */ PRIO_Obj_Smplbg, /* Actor SubMtd */ &daObjSmplbg::Mthd_Table, - /* Status */ fopAcStts_NOCULLEXEC_e | fopAcStts_CULL_e | fopAcStts_UNK40000_e, + /* Status */ fopAcStts_NOCULLEXEC_e | fopAcStts_CULL_e | DEMO_SELECT(fopAcStts_UNK4000_e, 0) | fopAcStts_UNK40000_e, /* Group */ fopAc_ACTOR_e, /* CullType */ fopAc_CULLBOX_0_e, }; diff --git a/src/d/actor/d_a_obj_vgnfd.cpp b/src/d/actor/d_a_obj_vgnfd.cpp index bdfc9544d..41f734a00 100644 --- a/src/d/actor/d_a_obj_vgnfd.cpp +++ b/src/d/actor/d_a_obj_vgnfd.cpp @@ -86,14 +86,16 @@ BOOL daObjVgnfd_c::solidHeapCB(fopAc_ac_c* i_ac) { /* 00000098-0000022C .text create_bdl_brk__12daObjVgnfd_cFi */ BOOL daObjVgnfd_c::create_bdl_brk(int i) { + J3DModelData* mdl_data; + J3DAnmTevRegKey* brk_p; BOOL ret = FALSE; - J3DModelData* mdl_data = static_cast(dComIfG_getObjectRes(M_arcname, M_bdl_table[i])); - JUT_ASSERT(0xfe, mdl_data != NULL); + mdl_data = static_cast(dComIfG_getObjectRes(M_arcname, M_bdl_table[i])); + JUT_ASSERT(254, mdl_data != NULL); if (mdl_data != NULL) { mModel[i] = mDoExt_J3DModel__create(mdl_data, 0, 0x11020203); if (mModel[i] != NULL) { if (M_brk_table[i] != -1) { - J3DAnmTevRegKey* brk_p = static_cast(dComIfG_getObjectRes(M_arcname, M_brk_table[i])); + brk_p = static_cast(dComIfG_getObjectRes(M_arcname, M_brk_table[i])); JUT_ASSERT(0x105, brk_p != NULL); if (brk_p != NULL) { if (mBrkAnm[i].init(mdl_data, brk_p, TRUE, J3DFrameCtrl::EMode_NONE)) @@ -109,6 +111,7 @@ BOOL daObjVgnfd_c::create_bdl_brk(int i) { /* 0000022C-000004A4 .text create_heap__12daObjVgnfd_cFv */ BOOL daObjVgnfd_c::create_heap() { + J3DModelData* mdl_data; BOOL ret = TRUE; s32 i; for (i = 0; i < (s32)ARRAY_SIZE(mModel); i++) { @@ -120,7 +123,7 @@ BOOL daObjVgnfd_c::create_heap() { if (ret) { for (i = 0; i < (s32)ARRAY_SIZE(mModel2); i++) { - J3DModelData* mdl_data = static_cast(dComIfG_getObjectRes(M_arcname, M_door_bdl_table[i])); + mdl_data = static_cast(dComIfG_getObjectRes(M_arcname, M_door_bdl_table[i])); JUT_ASSERT(0x133, mdl_data != NULL); if (mdl_data != NULL) { @@ -146,9 +149,11 @@ BOOL daObjVgnfd_c::create_heap() { } if (ret) { - Mtx* mtx = &mModel[0]->getBaseTRMtx(); - cBgD_t* dzb_data = (cBgD_t*)dComIfG_getObjectRes(M_arcname, VGNFD_DZB_VGNFD); - M_bgw = dBgW_NewSet(dzb_data, dBgW::MOVE_BG_e, mtx); + M_bgw = dBgW_NewSet( + (cBgD_t*)dComIfG_getObjectRes(M_arcname, VGNFD_DZB_VGNFD), + dBgW::MOVE_BG_e, + &mModel[0]->getBaseTRMtx() + ); JUT_ASSERT(0x151, M_bgw != NULL); if (M_bgw == NULL) @@ -206,14 +211,24 @@ cPhs_State daObjVgnfd_c::_create() { /* 00000830-000008D8 .text _delete__12daObjVgnfd_cFv */ bool daObjVgnfd_c::_delete() { - if (heap != NULL) { +#if VERSION > VERSION_DEMO + if (heap != NULL) +#endif + { if (M_bgw != NULL && M_bgw->ChkUsed()) { dComIfG_Bgsp()->Release(M_bgw); +#if VERSION > VERSION_DEMO M_bgw = NULL; +#endif } } - mSmoke.remove(); +#if VERSION == VERSION_DEMO + if (mInit) +#endif + { + mSmoke.remove(); + } dComIfG_resDelete(&mPhs, M_arcname); return true; } @@ -333,7 +348,9 @@ bool daObjVgnfd_c::_execute() { if (mTimer <= 0) { dComIfGp_evmng_cutEnd(mStaffId); mBrkAnm[M_demo_idx + 1].setPlaySpeed(1.0f); + #if VERSION > VERSION_DEMO mDoAud_seStart(JA_SE_OBJ_B_BOSS_DR_LT_1); + #endif if (check_fin()) { mDoAud_seStart(JA_SE_READ_RIDDLE_1); } diff --git a/src/d/actor/d_a_obj_vmsdz.cpp b/src/d/actor/d_a_obj_vmsdz.cpp index b21dcba93..3208e2a80 100644 --- a/src/d/actor/d_a_obj_vmsdz.cpp +++ b/src/d/actor/d_a_obj_vmsdz.cpp @@ -56,7 +56,7 @@ cPhs_State daObjVmsdz_c::_create() { /* 00000208-00000238 .text _delete__12daObjVmsdz_cFv */ bool daObjVmsdz_c::_delete() { - dComIfG_resDelete(&mPhs, M_arcname); + dComIfG_resDeleteDemo(&mPhs, M_arcname); return true; } diff --git a/src/d/actor/d_a_obj_zouK.cpp b/src/d/actor/d_a_obj_zouK.cpp index 64a3c6386..b42297073 100644 --- a/src/d/actor/d_a_obj_zouK.cpp +++ b/src/d/actor/d_a_obj_zouK.cpp @@ -68,10 +68,14 @@ BOOL daObjZouk::Act_c::solidHeapCB(fopAc_ac_c* i_this) { /* 0000009C-00000468 .text create_heap__Q29daObjZouk5Act_cFv */ bool daObjZouk::Act_c::create_heap() { J3DModelData* mdl_data = (J3DModelData*)dComIfG_getObjectRes(M_arcname, VZOUK_INDEX_BDL_VZOUK); - JUT_ASSERT(0x171, mdl_data != NULL); + JUT_ASSERT(369, mdl_data != NULL); M_bck_data = (J3DAnmTransformKey*)dComIfG_getObjectRes(M_arcname, VZOUK_INDEX_BCK_VZOUK); - JUT_ASSERT(0x175, M_bck_data != NULL); - if (mdl_data != NULL && M_bck_data != NULL) { + JUT_ASSERT(373, M_bck_data != NULL); + +#if VERSION > VERSION_DEMO + if (mdl_data != NULL && M_bck_data != NULL) +#endif + { M_anm = new mDoExt_McaMorf( mdl_data, NULL, NULL, @@ -82,7 +86,7 @@ bool daObjZouk::Act_c::create_heap() { 0x11020203 ); } - JUT_ASSERT(0x183, M_anm != NULL); + JUT_ASSERT(DEMO_SELECT(385, 387), M_anm != NULL); if (M_anm != NULL) { if (dComIfGs_isCollect(0, 1)) { M_anm->setPlaySpeed(0.0f); @@ -95,22 +99,34 @@ bool daObjZouk::Act_c::create_heap() { set_mtx(); cBgD_t* bgw_data_before = (cBgD_t*)dComIfG_getObjectRes(M_arcname, VZOUK_INDEX_DZB_MAEKISI); - JUT_ASSERT(0x196, bgw_data_before != NULL); - if (bgw_data_before != NULL) { + JUT_ASSERT(DEMO_SELECT(404, 406), bgw_data_before != NULL); +#if VERSION > VERSION_DEMO + if (bgw_data_before != NULL) +#endif + { mBgBefore = new dBgW(); if (mBgBefore != NULL) { - if (mBgBefore->Set(bgw_data_before, dBgW::MOVE_BG_e, &mBgMtx) == true) + if (mBgBefore->Set(bgw_data_before, dBgW::MOVE_BG_e, &mBgMtx) == true) { +#if VERSION > VERSION_DEMO return false; +#endif + } } } cBgD_t* bgw_data_after = (cBgD_t*)dComIfG_getObjectRes(M_arcname, VZOUK_INDEX_DZB_ATOKISI); - JUT_ASSERT(0x1a4, bgw_data_after != NULL); - if (bgw_data_after != NULL) { + JUT_ASSERT(DEMO_SELECT(414, 420), bgw_data_after != NULL); +#if VERSION > VERSION_DEMO + if (bgw_data_after != NULL) +#endif + { mBgAfter = new dBgW(); if (mBgAfter != NULL) { - if (mBgAfter->Set(bgw_data_after, dBgW::MOVE_BG_e, &mBgMtx) == true) + if (mBgAfter->Set(bgw_data_after, dBgW::MOVE_BG_e, &mBgMtx) == true) { +#if VERSION > VERSION_DEMO return false; +#endif + } } } @@ -129,7 +145,11 @@ cPhs_State daObjZouk::Act_c::_create() { if (ret == cPhs_COMPLEATE_e) { if (fopAcM_entrySolidHeap(this, solidHeapCB, 0x0)) { fopAcM_SetMtx(this, M_anm->getModel()->getBaseTRMtx()); + #if VERSION == VERSION_DEMO + fopAcM_setCullSizeBox(this, -550.0f, -0.0f, -600.0f, 550.0f, 1400.0f, 600.0f); + #else fopAcM_setCullSizeBox(this, -1000.0f, -0.0f, -1000.0f, 1000.0f, 2800.0f, 1000.0f); + #endif cXyz gndPos(current.pos.x, current.pos.y + 100.0f, current.pos.z); mGndChk.SetPos(&gndPos); mGndChk.SetActorPid(fopAcM_GetID(this)); @@ -182,7 +202,10 @@ cPhs_State daObjZouk::Act_c::_create() { /* 00001094-00001164 .text _delete__Q29daObjZouk5Act_cFv */ bool daObjZouk::Act_c::_delete() { - if (heap != NULL) { +#if VERSION > VERSION_DEMO + if (heap != NULL) +#endif + { if (mBgBefore != NULL && mBgBefore->ChkUsed()) dComIfG_Bgsp()->Release(mBgBefore); if (mBgAfter != NULL && mBgAfter->ChkUsed()) @@ -234,7 +257,9 @@ bool daObjZouk::Act_c::_execute() { fopAcM_rollPlayerCrash(this, 288.0f, 0x0D); if (!jokai_demo()) play_stop_joint_anime(); - if (param_get_arg0() == 0) { + + if (VERSION == VERSION_DEMO || param_get_arg0() == 0) { +#if VERSION > VERSION_DEMO if (dComIfGp_event_runCheck()) { if (mBgBefore != NULL && mBgAfter != NULL) { if (mBgAfter->ChkUsed()) @@ -248,7 +273,9 @@ bool daObjZouk::Act_c::_execute() { if (mBgBefore->ChkUsed()) mBgBefore->Move(); } - } else { + } else +#endif + { if (mBgMode == 0 && dComIfGs_isCollect(0, 1) && mBgBefore != NULL && mBgAfter != NULL) { if (mBgBefore->ChkUsed()) dComIfG_Bgsp()->Release(mBgBefore);