mirror of
https://github.com/zeldaret/ss
synced 2026-08-10 19:16:59 -04:00
d_a_obj_utajima OK (#72)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user