diff --git a/config/SOUE01/rels/d_a_obj_utajimaNP/splits.txt b/config/SOUE01/rels/d_a_obj_utajimaNP/splits.txt index 576b46a3..f60ff479 100644 --- a/config/SOUE01/rels/d_a_obj_utajimaNP/splits.txt +++ b/config/SOUE01/rels/d_a_obj_utajimaNP/splits.txt @@ -11,3 +11,5 @@ REL/executor.c: REL/d/a/obj/d_a_obj_utajima.cpp: .text start:0x00000070 end:0x000004E0 + .rodata start:0x00000000 end:0x0000000C + .data start:0x00000000 end:0x000000F8 diff --git a/config/SOUE01/rels/d_a_obj_utajimaNP/symbols.txt b/config/SOUE01/rels/d_a_obj_utajimaNP/symbols.txt index e44273e6..8a25e030 100644 --- a/config/SOUE01/rels/d_a_obj_utajimaNP/symbols.txt +++ b/config/SOUE01/rels/d_a_obj_utajimaNP/symbols.txt @@ -2,19 +2,19 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x00000030; // type:function size:0x2C scope:global _unresolved = .text:0x00000060; // type:function size:0x4 scope:global dAcOutajima_c_classInit__Fv = .text:0x00000070; // type:function size:0x7C -AcOutajima__bgInteraction = .text:0x000000F0; // type:function size:0x7C -AcOutajima__initModels = .text:0x00000170; // type:function size:0x18C -AcOutajima__init = .text:0x00000300; // type:function size:0xD8 -fn_368_3E0 = .text:0x000003E0; // type:function size:0x8 -fn_368_3F0 = .text:0x000003F0; // type:function size:0x8 -AcOutajima__draw = .text:0x00000400; // type:function size:0x60 +rideCallback__13dAcOutajima_cFP4dBgWP12dAcObjBase_cP12dAcObjBase_c = .text:0x000000F0; // type:function size:0x7C +createHeap__13dAcOutajima_cFv = .text:0x00000170; // type:function size:0x18C +create__13dAcOutajima_cFv = .text:0x00000300; // type:function size:0xD8 +doDelete__13dAcOutajima_cFv = .text:0x000003E0; // type:function size:0x8 +actorExecute__13dAcOutajima_cFv = .text:0x000003F0; // type:function size:0x8 +draw__13dAcOutajima_cFv = .text:0x00000400; // type:function size:0x60 __dt__13dAcOutajima_cFv = .text:0x00000460; // type:function size:0x80 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -lbl_368_rodata_0 = .rodata:0x00000000; // type:object size:0x8 data:4byte -lbl_368_rodata_8 = .rodata:0x00000008; // type:object size:0x4 data:float -lbl_368_data_0 = .data:0x00000000; // type:object size:0x8 -lbl_368_data_8 = .data:0x00000008; // type:object size:0x10 -g_profile_OBJ_UTAJIMA = .data:0x00000018; // type:object size:0x44 -lbl_368_data_5C = .data:0x0000005C; // type:object size:0x1C -lbl_368_data_78 = .data:0x00000078; // type:object size:0x80 +lbl_368_rodata_0 = .rodata:0x00000000; // type:object size:0x8 scope:local data:4byte +lbl_368_rodata_8 = .rodata:0x00000008; // type:object size:0x4 scope:local data:float +lbl_368_data_0 = .data:0x00000000; // type:object size:0x8 scope:local +lbl_368_data_8 = .data:0x00000008; // type:object size:0x10 scope:local +g_profile_OBJ_UTAJIMA = .data:0x00000018; // type:object size:0x10 +lbl_368_data_5C = .data:0x0000005C; // type:object size:0x1C scope:local +__vt__13dAcOutajima_c = .data:0x00000078; // type:object size:0x80 diff --git a/configure.py b/configure.py index 6429ab33..4316f255 100644 --- a/configure.py +++ b/configure.py @@ -1704,7 +1704,7 @@ config.libs = [ ), Rel(NonMatching, "d_a_obj_under_cloud", "REL/d/a/obj/d_a_obj_under_cloud.cpp"), Rel(NonMatching, "d_a_obj_updown_lava", "REL/d/a/obj/d_a_obj_updown_lava.cpp"), - Rel(NonMatching, "d_a_obj_utajima", "REL/d/a/obj/d_a_obj_utajima.cpp"), + Rel(Matching, "d_a_obj_utajima", "REL/d/a/obj/d_a_obj_utajima.cpp"), Rel( NonMatching, "d_a_obj_utajima_island", "REL/d/a/obj/d_a_obj_utajima_island.cpp" ), diff --git a/include/d/a/obj/d_a_obj_base.h b/include/d/a/obj/d_a_obj_base.h index 9d8eafce..23555bd9 100644 --- a/include/d/a/obj/d_a_obj_base.h +++ b/include/d/a/obj/d_a_obj_base.h @@ -2,6 +2,7 @@ #define D_A_OBJ_BASE_H #include "d/a/d_a_base.h" +#include "d/col/c/c_m3d_g_aab.h" #include "d/col/cc/d_cc_d.h" #include "m/m3d/m_shadow.h" #include "m/m3d/m_smdl.h" @@ -60,7 +61,7 @@ public: /* 0x14C */ f32 forwardMaxSpeed; /* 0x150 */ mVec3_c velocity; /* 0x15C */ mMtx_c mWorldMtx; - /* 0x18C */ nw4r::math::AABB boundingBox; + /* 0x18C */ cM3dGAab boundingBox; /* 0x1A4 */ f32 mCullingDistance; /* 0x1A8 */ f32 field_0x1A8; /* 0x1AC */ u32 mObjectActorFlags; @@ -161,13 +162,6 @@ public: char *name, u32 roomId, u32 params1, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, u32 params2, u16 id, u8 viewclipId ); - -protected: - // TODO May be cM3dGAab (has a very similar set func) - inline void setBoundingBox(mVec3_c min, mVec3_c max) { - boundingBox.min = min; - boundingBox.max = max; - } }; // Actors' createHeap functions often have patterns that can be matched with this macro diff --git a/include/d/a/obj/d_a_obj_utajima.h b/include/d/a/obj/d_a_obj_utajima.h index da893dfd..b21b1e9a 100644 --- a/include/d/a/obj/d_a_obj_utajima.h +++ b/include/d/a/obj/d_a_obj_utajima.h @@ -2,13 +2,30 @@ #define D_A_OBJ_UTAJIMA_H #include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_w.h" +#include "m/m3d/m_smdl.h" +#include "m/m_vec.h" +#include "nw4r/g3d/g3d_resfile.h" class dAcOutajima_c : public dAcObjBase_c { public: dAcOutajima_c() {} virtual ~dAcOutajima_c() {} + virtual bool createHeap() override; + virtual int create() override; + virtual int doDelete() override; + virtual int actorExecute() override; + virtual int draw() override; + private: + + static void rideCallback(dBgW *, dAcObjBase_c *, dAcObjBase_c *); + + m3d::smdl_c mMdls[2]; + nw4r::g3d::ResFile mRes; + dBgW mBgW; + mVec3_c mVec; }; #endif diff --git a/src/REL/d/a/d_a_t_wood_area.cpp b/src/REL/d/a/d_a_t_wood_area.cpp index ee4d8c02..fab69c33 100644 --- a/src/REL/d/a/d_a_t_wood_area.cpp +++ b/src/REL/d/a/d_a_t_wood_area.cpp @@ -13,8 +13,8 @@ STATE_DEFINE(dAcTWoodArea_c, Wait); int dAcTWoodArea_c::actorCreate() { mStateMgr.changeState(StateID_Init); PSMTXTrans(mWorldMtx.m, position.x, position.y, position.z); - boundingBox.min = mVec3_c(-0.0f, -0.0f, -0.0f); - boundingBox.max = mVec3_c(0.0f, 0.0f, 0.0f); + boundingBox.mMin = mVec3_c(-0.0f, -0.0f, -0.0f); + boundingBox.mMax = mVec3_c(0.0f, 0.0f, 0.0f); return SUCCEEDED; } diff --git a/src/REL/d/a/e/d_a_e_hb_leaf.cpp b/src/REL/d/a/e/d_a_e_hb_leaf.cpp index 5c9440c2..1c9856fa 100644 --- a/src/REL/d/a/e/d_a_e_hb_leaf.cpp +++ b/src/REL/d/a/e/d_a_e_hb_leaf.cpp @@ -21,7 +21,7 @@ bool dAcEhb_leaf_c::createHeap() { int dAcEhb_leaf_c::create() { CREATE_ALLOCATOR(dAcEhb_leaf_c); - setBoundingBox(mVec3_c(-100.0f, -100.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f)); + boundingBox.Set(mVec3_c(-100.0f, -100.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f)); rotation.y = cM::rndF(65535.0f); someRot = rotation.y.mVal; diff --git a/src/REL/d/a/obj/d_a_obj_appear_bridge.cpp b/src/REL/d/a/obj/d_a_obj_appear_bridge.cpp index 04ea7ed6..f7c6c176 100644 --- a/src/REL/d/a/obj/d_a_obj_appear_bridge.cpp +++ b/src/REL/d/a/obj/d_a_obj_appear_bridge.cpp @@ -28,7 +28,7 @@ bool dAcOappearBridge_c::createHeap() { PLC *plc = (PLC *)getOarcFile("TongueStage", "dat/TongueStage.plc"); updateMatrix(); mModel.setLocalMtx(mWorldMtx); - TRY_CREATE(!mCollision.Set(dzb, plc, 1, &mWorldMtx, &mScale)); + TRY_CREATE(!mCollision.Set(dzb, plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale)); mCollision.Lock(); return true; } @@ -48,7 +48,7 @@ int dAcOappearBridge_c::create() { mStateMgr.changeState(StateID_Wait); mModel.setPriorityDraw(0x1C, 0x9); - setBoundingBox(mVec3_c(-3000.0f, -200.0f, -600.0f), mVec3_c(50.0f, 800.0f, 600.0f)); + boundingBox.Set(mVec3_c(-3000.0f, -200.0f, -600.0f), mVec3_c(50.0f, 800.0f, 600.0f)); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_bamboo_island.cpp b/src/REL/d/a/obj/d_a_obj_bamboo_island.cpp index 910ade74..35aeb06e 100644 --- a/src/REL/d/a/obj/d_a_obj_bamboo_island.cpp +++ b/src/REL/d/a/obj/d_a_obj_bamboo_island.cpp @@ -34,7 +34,7 @@ bool dAcObambooIsland_c::createHeap() { for (int i = 0; i < 2; i++) { mModels[i].setLocalMtx(mWorldMtx); } - TRY_CREATE(!mCollision.Set(dzb, plc, 1, &mWorldMtx, &mScale)); + TRY_CREATE(!mCollision.Set(dzb, plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale)); mCollision.Lock(); return true; } @@ -45,7 +45,7 @@ int dAcObambooIsland_c::create() { dBgS::GetInstance()->Regist(&mCollision, this); mModels[0].setPriorityDraw(0x1C, 9); mModels[1].setPriorityDraw(0x22, 9); - setBoundingBox(mVec3_c(-2400.0f, -1600.0f, -2300.0f), mVec3_c(2400.0f, 3900.0f, 2400.0f)); + boundingBox.Set(mVec3_c(-2400.0f, -1600.0f, -2300.0f), mVec3_c(2400.0f, 3900.0f, 2400.0f)); mCullingDistance = 500000.0f; mCollision.SetRideCallback(rideCallback); return SUCCEEDED; diff --git a/src/REL/d/a/obj/d_a_obj_junk_repairing.cpp b/src/REL/d/a/obj/d_a_obj_junk_repairing.cpp index 5c2d574a..aff5ff3c 100644 --- a/src/REL/d/a/obj/d_a_obj_junk_repairing.cpp +++ b/src/REL/d/a/obj/d_a_obj_junk_repairing.cpp @@ -39,7 +39,7 @@ int dAcOJunkRep_c::create() { mStateMgr.changeState(StateID_Wait); - setBoundingBox(mVec3_c(-30.0f, -0.0f, -20.0f), mVec3_c(30.0f, 120.0f, 20.0f)); + boundingBox.Set(mVec3_c(-30.0f, -0.0f, -20.0f), mVec3_c(30.0f, 120.0f, 20.0f)); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_lava_F200.cpp b/src/REL/d/a/obj/d_a_obj_lava_F200.cpp index b1cad107..8d5d5b40 100644 --- a/src/REL/d/a/obj/d_a_obj_lava_F200.cpp +++ b/src/REL/d/a/obj/d_a_obj_lava_F200.cpp @@ -41,7 +41,7 @@ int dAcOlavaF200_c::create() { mModels[0].setPriorityDraw(0x1C, 9); mModels[1].setPriorityDraw(0x22, 9); - setBoundingBox(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f)); + boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f)); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_mole_soil.cpp b/src/REL/d/a/obj/d_a_obj_mole_soil.cpp index c4079824..ca3d7762 100644 --- a/src/REL/d/a/obj/d_a_obj_mole_soil.cpp +++ b/src/REL/d/a/obj/d_a_obj_mole_soil.cpp @@ -35,7 +35,7 @@ int dAcOmoleSoil_c::create() { dAcBase_c::mScale.set(sHalfScale, sHalfScale, sHalfScale); mStateMgr.changeState(StateID_Wait); - setBoundingBox(mVec3_c(-100.0f, -0.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f)); + boundingBox.Set(mVec3_c(-100.0f, -0.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f)); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_pool_cock.cpp b/src/REL/d/a/obj/d_a_obj_pool_cock.cpp index 400350a0..c4821622 100644 --- a/src/REL/d/a/obj/d_a_obj_pool_cock.cpp +++ b/src/REL/d/a/obj/d_a_obj_pool_cock.cpp @@ -34,7 +34,7 @@ int dAcOPoolCock_c::actorCreate() { mStateMgr.changeState(StateID_Wait); - setBoundingBox(mVec3_c(-300.0f, -100.0f, -300.0f), mVec3_c(300.0f, 100.0f, 300.0f)); + boundingBox.Set(mVec3_c(-300.0f, -100.0f, -300.0f), mVec3_c(300.0f, 100.0f, 300.0f)); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_pumpkin_leaf.cpp b/src/REL/d/a/obj/d_a_obj_pumpkin_leaf.cpp index 9c132c64..1fe3a384 100644 --- a/src/REL/d/a/obj/d_a_obj_pumpkin_leaf.cpp +++ b/src/REL/d/a/obj/d_a_obj_pumpkin_leaf.cpp @@ -23,7 +23,7 @@ int dAcOPumpkinLeaf_c::create() { forwardMaxSpeed = -40.0f; updateMatrix(); mStateMgr.changeState(StateID_Wait); - setBoundingBox(mVec3_c(-50.0f, -10.0f, -50.0f), mVec3_c(50.0f, 50.0f, 50.0f)); + boundingBox.Set(mVec3_c(-50.0f, -10.0f, -50.0f), mVec3_c(50.0f, 50.0f, 50.0f)); dAcObjBase_c::create( "PmpknBd", getRoomId(), 0, &position, &rotation, &mScale, getParams2_ignoreLower(), -1, viewclip_index ); diff --git a/src/REL/d/a/obj/d_a_obj_ring.cpp b/src/REL/d/a/obj/d_a_obj_ring.cpp index b2fca86a..ffc37dfc 100644 --- a/src/REL/d/a/obj/d_a_obj_ring.cpp +++ b/src/REL/d/a/obj/d_a_obj_ring.cpp @@ -20,7 +20,7 @@ int dAcOring_c::create() { field_0x388 = getArgFromParams(); - setBoundingBox(mVec3_c(-100.0f, -100.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f)); + boundingBox.Set(mVec3_c(-100.0f, -100.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f)); updateMatrix(); mModel.setScale(mScale); mModel.setLocalMtx(mWorldMtx); diff --git a/src/REL/d/a/obj/d_a_obj_smoke.cpp b/src/REL/d/a/obj/d_a_obj_smoke.cpp index 6f654b9b..d97b3dad 100644 --- a/src/REL/d/a/obj/d_a_obj_smoke.cpp +++ b/src/REL/d/a/obj/d_a_obj_smoke.cpp @@ -32,7 +32,7 @@ int dAcOsmoke_c::create() { mModel.setLocalMtx(mWorldMtx); mStateMgr.changeState(StateID_Wait); mModel.setPriorityDraw(0x1C, 9); - setBoundingBox(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f)); + boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f)); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_spike.cpp b/src/REL/d/a/obj/d_a_obj_spike.cpp index 8c2e2b4d..fe74019d 100644 --- a/src/REL/d/a/obj/d_a_obj_spike.cpp +++ b/src/REL/d/a/obj/d_a_obj_spike.cpp @@ -65,7 +65,7 @@ int dAcOspike_c::create() { mCollision.Set(tmp2, tmp3); mStateMgr.changeState(StateID_Wait); - setBoundingBox(mVec3_c(-10.0f, -250.0f, -480.0f), mVec3_c(80.0f, 260.0f, 490.0f)); + boundingBox.Set(mVec3_c(-10.0f, -250.0f, -480.0f), mVec3_c(80.0f, 260.0f, 490.0f)); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_stage_cover.cpp b/src/REL/d/a/obj/d_a_obj_stage_cover.cpp index 57de6496..11df641b 100644 --- a/src/REL/d/a/obj/d_a_obj_stage_cover.cpp +++ b/src/REL/d/a/obj/d_a_obj_stage_cover.cpp @@ -19,7 +19,7 @@ int dAcOstageCover_c::create() { mStateMgr.changeState(StateID_Wait); mModel.setPriorityDraw(0x1C, 9); - setBoundingBox(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f)); + boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f)); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_sun_light.cpp b/src/REL/d/a/obj/d_a_obj_sun_light.cpp index 6d962698..816a9200 100644 --- a/src/REL/d/a/obj/d_a_obj_sun_light.cpp +++ b/src/REL/d/a/obj/d_a_obj_sun_light.cpp @@ -26,7 +26,7 @@ int dAcOsunLight_c::create() { mModel.setAnm(mTexAnm); mStateMgr.changeState(StateID_Wait); mModel.setPriorityDraw(0x1C, 9); - setBoundingBox(mVec3_c(-200.0f, -100.0f, -200.0f), mVec3_c(200.0f, 600.0f, 500.0f)); + boundingBox.Set(mVec3_c(-200.0f, -100.0f, -200.0f), mVec3_c(200.0f, 600.0f, 500.0f)); return SUCCEEDED; } diff --git a/src/REL/d/a/obj/d_a_obj_utajima.cpp b/src/REL/d/a/obj/d_a_obj_utajima.cpp index 0d59ed96..29fb96b2 100644 --- a/src/REL/d/a/obj/d_a_obj_utajima.cpp +++ b/src/REL/d/a/obj/d_a_obj_utajima.cpp @@ -1,3 +1,84 @@ #include "d/a/obj/d_a_obj_utajima.h" +#include "common.h" +#include "d/a/obj/d_a_obj_base.h" +#include "d/col/bg/d_bg_s.h" +#include "d/col/c/c_m3d_g_aab.h" +#include "toBeSorted/item_story_flag_manager.h" +#include "toBeSorted/room_manager.h" + +static const char *const mMdlNames[] = { + "IslSon", + "IslSon_s", +}; + SPECIAL_ACTOR_PROFILE(OBJ_UTAJIMA, dAcOutajima_c, fProfile::OBJ_UTAJIMA, 0x1D4, 0, 3); + +void dAcOutajima_c::rideCallback(dBgW *bg, dAcObjBase_c *o1, dAcObjBase_c *o2) { + if (o2->isActorPlayer() && o1 != nullptr) { + if (StoryflagManager::sInstance->getCounterOrFlag(285) == 0) { + StoryflagManager::sInstance->setFlag(285); + } + } +} + +bool dAcOutajima_c::createHeap() { + mRes = getOarcResFile("IslSon"); + RoomManager::bindStageResToFile(&mRes); + RoomManager::bindSkyCmnToResFile(&mRes); + + nw4r::g3d::ResMdl m = nullptr; + + for (int i = 0; i < 2; i++) { + m = mRes.GetResMdl(mMdlNames[i]); + TRY_CREATE(mMdls[i].create(m, &heap_allocator, 0x120)); + } + + m = mRes.GetResMdl(mMdlNames[0]); + void *dzb = getOarcFile("IslSon", "dzb/IslSon.dzb"); + void *plc = getOarcFile("IslSon", "dat/IslSon.plc"); + + updateMatrix(); + for (int i = 0; i < 2; i++) { + mMdls[i].setLocalMtx(mWorldMtx); + } + + TRY_CREATE(!mBgW.Set((cBgD_t *)dzb, (PLC *)plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale)); + mBgW.Lock(); + + mMdls[0].calc(true); + nw4r::g3d::ResNode nd = m.GetResNode("SetLineGoal"); + mMdls[0].getNodeWorldMtxMultVecZero(nd.GetID(), mVec); + + return true; +} + +int dAcOutajima_c::create() { + CREATE_ALLOCATOR(dAcOutajima_c); + dBgS::GetInstance()->Regist(&mBgW, this); + mMdls[0].setPriorityDraw(0x1C, 9); + mMdls[1].setPriorityDraw(0x22, 9); + mVec3_c min; + mVec3_c max; + mMdls[0].getBounds(&min, &max); + boundingBox.Set(min, max); + mCullingDistance = 500000.0f; + mBgW.SetRideCallback(rideCallback); + + return SUCCEEDED; +} + +int dAcOutajima_c::doDelete() { + return SUCCEEDED; +} + +int dAcOutajima_c::actorExecute() { + return SUCCEEDED; +} + +int dAcOutajima_c::draw() { + for (int i = 0; i < 2; i++) { + drawModelType1(&mMdls[i]); + } + return SUCCEEDED; +} diff --git a/src/d/a/obj/d_a_obj_fairy.cpp b/src/d/a/obj/d_a_obj_fairy.cpp index 3eaa20d6..a91d84a2 100644 --- a/src/d/a/obj/d_a_obj_fairy.cpp +++ b/src/d/a/obj/d_a_obj_fairy.cpp @@ -28,7 +28,7 @@ int dAcObjFairy_c::create() { mStateMgr.changeState(StateID_CureStart); mStateMgr.changeState(StateID_Wait); mModel.getModel().setPriorityDraw(0x7F, 0x7F); - setBoundingBox(mVec3_c(-20.0f, -200.0f, -20.0f), mVec3_c(20.0f, 20.0f, 20.0f)); + boundingBox.Set(mVec3_c(-20.0f, -200.0f, -20.0f), mVec3_c(20.0f, 20.0f, 20.0f)); return SUCCEEDED; } diff --git a/src/d/a/obj/d_a_obj_switch.cpp b/src/d/a/obj/d_a_obj_switch.cpp index bd9c1250..890a755c 100644 --- a/src/d/a/obj/d_a_obj_switch.cpp +++ b/src/d/a/obj/d_a_obj_switch.cpp @@ -77,7 +77,7 @@ bool dAcOsw_c::createHeap() { field_0x5B8.set(mWorldMtx); mModel.setLocalMtx(mWorldMtx); - bool set = mCollision.Set(dbzData, plcData, 1, &field_0x5B8, &mScale); + bool set = mCollision.Set(dbzData, plcData, cBgW::MOVE_BG_e, &field_0x5B8, &mScale); mCollision.SetCrrFunc(dBgS_MoveBGProc_TypicalRotY); return !set; } @@ -101,7 +101,7 @@ int dAcOsw_c::actorCreate() { } else { mStateMgr.changeState(StateID_OnWait); } - setBoundingBox(mVec3_c(-90.0f, -10.0f, -90.0f), mVec3_c(90.0f, 70.0f, 90.0f)); + boundingBox.Set(mVec3_c(-90.0f, -10.0f, -90.0f), mVec3_c(90.0f, 70.0f, 90.0f)); return SUCCEEDED; }