diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2025-07-30 01:15:52 -0400 |
|---|---|---|
| committer | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2025-07-30 01:15:52 -0400 |
| commit | 0d3fef9d3dba4a22db73d1974b4b9ca749944429 (patch) | |
| tree | 7141437e283797c5ac68827c66b81cd4de77a7dd /src/d/actor/d_a_obj_vmc.cpp | |
| parent | 4adfd27155f535c889366e6fecdc7235de2f43ee (diff) | |
obj_vmc OK for demo
Diffstat (limited to 'src/d/actor/d_a_obj_vmc.cpp')
| -rw-r--r-- | src/d/actor/d_a_obj_vmc.cpp | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/src/d/actor/d_a_obj_vmc.cpp b/src/d/actor/d_a_obj_vmc.cpp index bb04b7d8..f67eae7d 100644 --- a/src/d/actor/d_a_obj_vmc.cpp +++ b/src/d/actor/d_a_obj_vmc.cpp @@ -46,6 +46,38 @@ static dCcD_SrcCyl cyl_src_base = { }, }; +#if VERSION == VERSION_DEMO +static dCcD_SrcCyl cyl_src_tree = { + // dCcD_SrcGObjInf + { + /* Flags */ 0, + /* SrcObjAt Type */ 0, + /* SrcObjAt Atp */ 0, + /* SrcObjAt SPrm */ 0, + /* SrcObjTg Type */ ~(AT_TYPE_BOOMERANG | AT_TYPE_WATER | AT_TYPE_UNK20000 | AT_TYPE_WIND | AT_TYPE_UNK400000 | AT_TYPE_LIGHT), + /* SrcObjTg SPrm */ cCcD_TgSPrm_Set_e | cCcD_TgSPrm_IsEnemy_e | cCcD_TgSPrm_IsPlayer_e | cCcD_TgSPrm_IsOther_e, + /* SrcObjCo SPrm */ cCcD_CoSPrm_Set_e | cCcD_CoSPrm_VsEnemy_e | cCcD_CoSPrm_IsOther_e, + /* SrcGObjAt Se */ 0, + /* SrcGObjAt HitMark */ 0, + /* SrcGObjAt Spl */ 0, + /* SrcGObjAt Mtrl */ 0, + /* SrcGObjAt SPrm */ 0, + /* SrcGObjTg Se */ 0, + /* SrcGObjTg HitMark */ 0, + /* SrcGObjTg Spl */ 0, + /* SrcGObjTg Mtrl */ 0, + /* SrcGObjTg SPrm */ dCcG_TgSPrm_NoHitMark_e, + /* SrcGObjCo SPrm */ 0, + }, + // cM3dGCylS + { + /* Center */ 0.0f, 0.0f, 0.0f, + /* Radius */ 50.0f, + /* Height */ 300.0f, + }, +}; +#endif + const char daObjVmc::Act_c::M_arcname[4] = "Vmc"; /* 00000078-0000009C .text solidHeapCB__Q28daObjVmc5Act_cFP10fopAc_ac_c */ @@ -118,6 +150,9 @@ void daObjVmc::Act_c::CreateInit() { mHasTreeBg = true; mBckAnmGrow.setFrame(mBckAnmGrow.getEndFrame()); +#if VERSION == VERSION_DEMO + mCyl.Set(cyl_src_tree); +#endif mState = STATE_TREE_MAIN; mHasTree = true; } else { @@ -127,6 +162,9 @@ void daObjVmc::Act_c::CreateInit() { init_mtx(); mHookshotAnim = false; +#if VERSION == VERSION_DEMO + m4B4_demo = NULL; +#endif mSmoke.setRateOff(0); attention_info.distances[fopAc_Attn_TYPE_TALK_e] = 0xA7; attention_info.distances[fopAc_Attn_TYPE_SPEAK_e] = 0xA7; @@ -162,7 +200,7 @@ bool daObjVmc::Act_c::_delete() { if (mHasTreeBg == 1) dComIfG_Bgsp()->Release(mpBgTree); mSmoke.end(); - dComIfG_resDelete(&mPhs, M_arcname); + dComIfG_resDeleteDemo(&mPhs, M_arcname); return true; } @@ -187,7 +225,13 @@ void daObjVmc::Act_c::init_mtx() { /* 00000B1C-00000BD0 .text daObjVmc_base_main__Q28daObjVmc5Act_cFv */ void daObjVmc::Act_c::daObjVmc_base_main() { if (mHasTree == 1) { +#if VERSION == VERSION_DEMO + m4B4_demo = +#endif dComIfGp_particle_setToon(dPa_name::ID_SCENE_A1BC, ¤t.pos, ¤t.angle, NULL, 0xFF, &mSmoke, fopAcM_GetRoomNo(this)); +#if VERSION == VERSION_DEMO + mCyl.Set(cyl_src_tree); +#endif cLib_offBit<u32>(attention_info.flags, fopAc_Attn_UNK10000000_e); mState = STATE_TREE_DEMO_WAIT; shape_angle.y = fopAcM_searchActorAngleY(this, dComIfGp_getPlayer(0)) + 0x1800; @@ -225,7 +269,7 @@ void daObjVmc::Act_c::daObjVmc_tree_main() { if (!mHookshotAnim) { if (mCyl.ChkCoHit()) { J3DAnmTransform* bck_wh = (J3DAnmTransform*)dComIfG_getObjectRes(M_arcname, VMC_BCK_VMCWH); - JUT_ASSERT(0x1ad, bck_wh != NULL); + JUT_ASSERT(DEMO_SELECT(430, 429), bck_wh != NULL); mBckAnmHookshot.init(mModelTree->getModelData(), bck_wh, true, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, true); mHookshotAnim = true; } @@ -251,8 +295,13 @@ void daObjVmc::Act_c::daObjVmc_tree_main() { bool daObjVmc::Act_c::_execute() { /* Nonmatching */ mCyl.SetC(current.pos); +#if VERSION > VERSION_DEMO if (mState == STATE_BASE_MAIN) +#endif + { dComIfG_Ccsp()->Set(&mCyl); + } + switch (mState) { case STATE_BASE_MAIN: daObjVmc_base_main(); |
