summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_obj_syRock.cpp
diff options
context:
space:
mode:
authorMax Roncace <me@caseif.net>2026-02-28 15:13:57 -0500
committerGitHub <noreply@github.com>2026-02-28 12:13:57 -0800
commitebe7c7aabc32e0842aaaf1c5cf1ab6cf5737417f (patch)
tree25fb02da5b81be6ed97f3eccc2964a076d49daf4 /src/d/actor/d_a_obj_syRock.cpp
parentc900a043b89786d5e594ec883d9acd92e0db6bc7 (diff)
ShieldD: Clean up a bunch of 99% matching TUs (#3113)
* d_a_npc_ks debug code 100% * d_a_npc_rafrel debug code 100% * d_a_npc_inko minor improvements * d_a_npc_gro debug code 100% * d_a_npc_pachi_taro debug code 100% * d_a_npc_passer debug code 100% * d_a_npc_pachi_maro debug code 100% * d_a_npc_post debug code 100% * d_a_obj_bemos debug improvements * d_a_obj_scannon_ten debug code 100% * d_a_b_mgn debug code 100% * d_a_e_fb debug code 100% * d_a_e_gb debug code 100% * d_a_e_hz debug code 100% * d_a_e_cr_egg debug code 100% * d_a_e_md debug code 100% * d_a_e_wb debug code 100% * d_a_obj_mirror_6pole debug code 100% * d_a_obj_spinLift debug data fixes * d_a_obj_pdwall debug data fixes * d_a_obj_ss_drink debug code almost matching * d_a_obj_poFire debug code 100% * d_a_obj_picture debug code 100% * d_a_obj_dust debug code 100% * d_a_obj_fallobj debug code 100% * d_a_obj_itamato debug code almost matching * d_a_obj_syRock debug code 100% * d_a_obj_katatsumuri debug code 100% * d_a_obj_wood_statue debug code 100% * d_a_obj_lv6egate debug code 100% * d_a_tag_qs minor debug symbol fixes * d_a_obj_twGate debug code 100% * d_a_obj_lv6SwGate debug code 100% * d_a_obj_lv6swturn debug code 100% * d_a_obj_lv6Tenbin debug code 100% * d_a_obj_kwheel01 debug code 100% * Fix RTTI order regression (cM3dGCyl vs cBgS_*)
Diffstat (limited to 'src/d/actor/d_a_obj_syRock.cpp')
-rw-r--r--src/d/actor/d_a_obj_syRock.cpp126
1 files changed, 70 insertions, 56 deletions
diff --git a/src/d/actor/d_a_obj_syRock.cpp b/src/d/actor/d_a_obj_syRock.cpp
index 4dbcc13b9f..296ebc42d1 100644
--- a/src/d/actor/d_a_obj_syRock.cpp
+++ b/src/d/actor/d_a_obj_syRock.cpp
@@ -129,19 +129,21 @@ int daSyRock_c::CreateHeap() {
JUT_ASSERT(271, modelData != NULL);
mpModels[0] = mDoExt_J3DModel__create(modelData, 1 << 19, 0x11000084);
- if(!mpModels[0])
+ if (!mpModels[0]) {
return 0;
+ }
modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes("syourock", 5));
JUT_ASSERT(282, modelData != NULL);
mpModels[1] = mDoExt_J3DModel__create(modelData, 1 << 19, 0x11000084);
- if(!mpModels[1])
+ if (!mpModels[1]) {
return 0;
+ }
mpBrokenCollision = new dBgW;
- if(!mpBrokenCollision || mpBrokenCollision->Set(static_cast<cBgD_t*>(dComIfG_getObjectRes("syourock", 9)), 1, &mBgMtx)) {
+ if (!mpBrokenCollision || mpBrokenCollision->Set(static_cast<cBgD_t*>(dComIfG_getObjectRes("syourock", 9)), 1, &mBgMtx)) {
mpBrokenCollision = NULL;
return 0;
}
@@ -160,18 +162,21 @@ cPhs_Step daSyRock_c::create() {
fopAcM_ct(this, daSyRock_c);
// Check if an associated water pillar should be searched for
- if(getArg0() == TRUE) {
+ if (getArg0() == TRUE) {
mpWaterPillar = static_cast<daWtPillar_c*>(fopAcM_Search(searchWaterPillar, this));
- if(!mpWaterPillar)
+ if (!mpWaterPillar) {
return cPhs_INIT_e;
+ }
}
+ cPhs_Step bgCreatePhaseProcess;
+
const cPhs_Step requestedPhaseProcess = static_cast<cPhs_Step>(dComIfG_resLoad(&mPhase, "syourock"));
- if(requestedPhaseProcess == cPhs_COMPLEATE_e) {
- const cPhs_Step bgCreatePhaseProcess = static_cast<cPhs_Step>(MoveBGCreate("syourock", 0x8, dBgS_MoveBGProc_TypicalRotY, 0x2100, NULL));
- if(bgCreatePhaseProcess == cPhs_ERROR_e)
+ if (requestedPhaseProcess == cPhs_COMPLEATE_e) {
+ if (MoveBGCreate("syourock", 0x8, dBgS_MoveBGProc_TypicalRotY, 0x2100, NULL) == cPhs_ERROR_e) {
return cPhs_ERROR_e;
+ }
mAcchCir.SetWall(150.0f, 150.0f);
mAcch.Set(fopAcM_GetPosition_p(this),
@@ -204,24 +209,23 @@ cPhs_Step daSyRock_c::create() {
mUnbrokenCollider.SetStts(&mStts);
mUnbrokenCollider.OffAtSetBit();
- if(fopAcM_isSwitch(this, getSwBit1())) {
+ if (fopAcM_isSwitch(this, getSwBit1())) {
mIsUnbroken = false;
mUnbrokenCollider.OffCoSetBit();
- if(mpBrokenCollision && mpBrokenCollision->ChkUsed()) {
+ if (mpBrokenCollision && mpBrokenCollision->ChkUsed()) {
dComIfG_Bgsp().Release(mpBrokenCollision);
mpBrokenCollision->Move();
}
// Snap already broken stalactite to its appropriate location and set its mode accordingly
setFallStat();
- }
- else {
+ } else {
mIsUnbroken = true;
- if(mpBgW)
+ if (mpBgW)
dComIfG_Bgsp().Release(mpBgW);
- if(mpBrokenCollision) {
+ if (mpBrokenCollision) {
dComIfG_Bgsp().Regist(mpBrokenCollision, this);
mpBrokenCollision->Move();
}
@@ -246,25 +250,23 @@ cPhs_Step daSyRock_c::create() {
void daSyRock_c::setFallStat() {
mpWaterPillar = static_cast<daWtPillar_c*>(fopAcM_Search(searchWaterPillar, this));
- if(mpWaterPillar) {
+ if (mpWaterPillar) {
OS_REPORT("== 下に水柱あり ==\n"); // "== Water pillar below =="
mpWaterPillar->onRockFlag();
mMode = MODE_MOVE;
- }
- else {
+ } else {
OS_REPORT("== 下に水柱無し ==\n"); // "== No water pillar below =="
mAcch.CrrPos(dComIfG_Bgsp());
- if(mAcch.ChkWaterHit()) {
- if(mAcch.m_wtr.GetHeight() - mAcch.GetGroundH() >= 200.0f) {
+ if (mAcch.ChkWaterHit()) {
+ if (mAcch.m_wtr.GetHeight() - mAcch.GetGroundH() >= 200.0f) {
mUnderwaterOffset.x = 150.0f;
shape_angle.z = 0x4000;
}
current.pos.y = mAcch.GetGroundH();
- }
- else {
+ } else {
current.pos.y = mAcch.GetGroundH();
}
@@ -317,9 +319,9 @@ void daSyRock_c::init_modeWait() {
}
void daSyRock_c::modeWait() {
- if(mAutoDropSwNo != 0xFF && fopAcM_isSwitch(this, mAutoDropSwNo)) {
+ if (mAutoDropSwNo != 0xFF && fopAcM_isSwitch(this, mAutoDropSwNo)) {
field_0x779 = 0;
- if(getEvetID() != 0xFF) {
+ if (getEvetID() != 0xFF) {
orderEvent(getEvetID(), 0xFF, 1);
} else {
eventStart();
@@ -327,13 +329,13 @@ void daSyRock_c::modeWait() {
return;
}
- if(mUnbrokenCollider.ChkTgHit()) {
+ if (mUnbrokenCollider.ChkTgHit()) {
dCcD_GObjInf* tgHitGObj = mUnbrokenCollider.GetTgHitGObj();
- if(tgHitGObj->GetAtType() == AT_TYPE_BOMB) {
+ if (tgHitGObj->GetAtType() == AT_TYPE_BOMB) {
field_0x779 = 0;
- if(getEvetID() != 0xFF)
+ if (getEvetID() != 0xFF) {
orderEvent(getEvetID(), 0xFF, 1);
- else {
+ } else {
eventStart();
}
}
@@ -343,8 +345,9 @@ void daSyRock_c::modeWait() {
bool daSyRock_c::eventStart() {
// field_0x779 is always 0 when eventStart() is called (see modeWait())
- if(!field_0x779)
+ if (!field_0x779) {
init_modeDropInit();
+ }
return true;
}
@@ -364,24 +367,26 @@ void daSyRock_c::init_modeDropInit() {
}
void daSyRock_c::modeDropInit() {
- if(mWaitFrames)
+ if (mWaitFrames) {
mWaitFrames--;
- else
+ } else {
init_modeDrop();
+ }
}
void* daSyRock_c::searchWaterPillar(void* i_proc, void* i_this) {
daSyRock_c* const syRock = static_cast<daSyRock_c*>(i_this);
daWtPillar_c* const wtPillar = static_cast<daWtPillar_c*>(i_proc);
- if(wtPillar && fopAcM_IsActor(wtPillar) && fopAcM_GetProfName(wtPillar) == PROC_Obj_WaterPillar) {
+ if (wtPillar && fopAcM_IsActor(wtPillar) && fopAcM_GetProfName(wtPillar) == PROC_Obj_WaterPillar) {
const cXyz vectorFromWaterPillar = syRock->current.pos - wtPillar->current.pos;
const f32 horizontalDistanceToWaterPillar = vectorFromWaterPillar.absXZ();
- if(horizontalDistanceToWaterPillar <= l_HIO.mRange)
+ if (horizontalDistanceToWaterPillar <= l_HIO.mRange) {
return wtPillar;
- else
+ } else {
return NULL;
+ }
}
return NULL;
}
@@ -391,7 +396,7 @@ void daSyRock_c::init_modeDrop() {
fopAcM_SetMaxFallSpeed(this, -l_HIO.mMaxFallSpeed);
fopAcM_SetSpeedF(this, 0.0f);
- if(mpBrokenCollision) {
+ if (mpBrokenCollision) {
dComIfG_Bgsp().Release(mpBrokenCollision);
mpBrokenCollision->Move();
}
@@ -416,15 +421,17 @@ void daSyRock_c::init_modeSink() {
fopAcM_SetGravity(this, -l_HIO.mFallAcceleration + l_HIO.mFallWaterBouyancy);
speed.y = cLib_minMaxLimit(speed.y, -15.0f - oREG_F(7), 13.0f + oREG_F(8));
- if(!mpWaterPillar)
+ if (!mpWaterPillar) {
mUnderwaterOffset.x = 150.0f;
+ }
mMode = MODE_SINK;
}
void daSyRock_c::modeSink() {
- if(!mpWaterPillar)
+ if (!mpWaterPillar) {
cLib_addCalcAngleS(&shape_angle.z, 0x4000, 1, 0x444, 1);
+ }
speed.y = cLib_minMaxLimit(speed.y, -15.0f - oREG_F(7), 13.0f + oREG_F(8));
@@ -438,8 +445,9 @@ void daSyRock_c::init_modeMove() {
mDoAud_seStart(Z2SE_OBJ_STALAC_LAND_WATER, &current.pos, 0,
dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
- if(mpBgW)
+ if (mpBgW) {
dComIfG_Bgsp().Regist(mpBgW, this);
+ }
mpWaterPillar->onRockFlag();
@@ -463,7 +471,7 @@ void daSyRock_c::modeMove() {
current.pos = mpWaterPillar->getPos();
current.pos.y -= 50.0f;
- if(mpWaterPillar->isRockYure()) {
+ if (mpWaterPillar->isRockYure()) {
mShakeAmplitude = l_HIO.mShakeAmplitude;
mShakeZOscAngQuantum = l_HIO.mShakeZOscAngQuantum;
mShakeXOscAngQuantum = l_HIO.mShakeXOscAngQuantum;
@@ -486,57 +494,63 @@ void daSyRock_c::bgCheck() {
const bool inWater = mAcch.ChkWaterIn();
bool inWaterPillar = false;
- if(mMode == MODE_DROP) {
- if(mpWaterPillar) {
+ if (mMode == MODE_DROP) {
+ if (mpWaterPillar) {
const f32 pillarTop = mpWaterPillar->getPillarHeight() + mpWaterPillar->current.pos.y - 50.0f;
- if(pillarTop >= current.pos.y)
+ if (pillarTop >= current.pos.y) {
inWaterPillar = true;
+ }
}
const f32 waterHeight = mAcch.m_wtr.GetHeight();
- if(hitWater) {
+ if (hitWater) {
const f32 verticalSpeed = speed.y;
- if(chkWaterLineIn())
+ if (chkWaterLineIn()) {
init_modeSink();
+ }
- if(inWater && !mInWaterPrevFrame) {
+ if (inWater && !mInWaterPrevFrame) {
cXyz currentRockPos(current.pos);
currentRockPos.y = waterHeight;
fopKyM_createWpillar(&currentRockPos, l_HIO.mEffScale, 3);
- if(verticalSpeed < -15.0f)
+ if (verticalSpeed < -15.0f) {
fopAcM_seStart(this, Z2SE_OBJ_FALL_WATER_M, 0);
- else
+ } else {
mDoAud_seStart(Z2SE_OBJ_STALAC_LAND_WATER, &current.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ }
}
}
- if(inWaterPillar)
+ if (inWaterPillar) {
init_modeMove();
+ }
}
- if(hitGround) {
- if(!hitWater && !mpWaterPillar) {
+ if (hitGround) {
+ if (!hitWater && !mpWaterPillar) {
mDoAud_seStart(Z2SE_OBJ_STALAC_LAND, &current.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
daObjEff::Act_c::make_land_smoke(&current.pos, l_HIO.mEffScale);
}
- if(mpWaterPillar)
+ if (mpWaterPillar) {
init_modeMove();
- else
+ } else {
init_modeDropEnd();
+ }
}
}
void daSyRock_c::init_modeDropEnd() {
- if(!mAcch.ChkWaterIn()) {
+ if (!mAcch.ChkWaterIn()) {
dComIfGp_getVibration().StartShock(l_HIO.mVibModePower, 0xF, cXyz(0.0f, 1.0f, 0.0f));
}
- if(mpBgW)
+ if (mpBgW) {
dComIfG_Bgsp().Regist(mpBgW, this);
+ }
mUnbrokenCollider.OffAtSetBit();
@@ -563,10 +577,11 @@ int daSyRock_c::Draw() {
int daSyRock_c::Delete() {
dComIfG_resDelete(&mPhase, "syourock");
- if(mpBrokenCollision && mpBrokenCollision->ChkUsed())
+ if (mpBrokenCollision && mpBrokenCollision->ChkUsed()) {
dComIfG_Bgsp().Release(mpBrokenCollision);
+ }
- #if DEBUG
+#if DEBUG
l_HIO.removeHIO();
#endif
@@ -575,7 +590,6 @@ int daSyRock_c::Delete() {
static int daSyRock_Draw(daSyRock_c* i_this) {
return i_this->MoveBGDraw();
- return 1;
}
static int daSyRock_Execute(daSyRock_c* i_this) {