d_a_obj_cloud_dive OK + review

This commit is contained in:
Swekka
2025-07-07 18:35:48 +02:00
parent eeba8eb8c4
commit 03b9d32cea
3 changed files with 16 additions and 16 deletions
+1 -1
View File
@@ -2014,7 +2014,7 @@ config.libs = [
NonMatching, "d_a_obj_clearness_wall", "REL/d/a/obj/d_a_obj_clearness_wall.cpp"
),
Rel(NonMatching, "d_a_obj_clef", "REL/d/a/obj/d_a_obj_clef.cpp"),
Rel(NonMatching, "d_a_obj_cloud_dive", "REL/d/a/obj/d_a_obj_cloud_dive.cpp"),
Rel(Matching, "d_a_obj_cloud_dive", "REL/d/a/obj/d_a_obj_cloud_dive.cpp"),
Rel(NonMatching, "d_a_obj_col", "REL/d/a/obj/d_a_obj_col.cpp"),
Rel(NonMatching, "d_a_obj_control_panel", "REL/d/a/obj/d_a_obj_control_panel.cpp"),
Rel(NonMatching, "d_a_obj_cumul_cloud", "REL/d/a/obj/d_a_obj_cumul_cloud.cpp"),
+4 -4
View File
@@ -18,13 +18,13 @@ public:
virtual int actorExecute() override;
virtual int draw() override;
bool fn_350_6F0();
bool fn_350_760();
STATE_FUNC_DECLARE(dAcOcloudDive_c, Wait);
STATE_FUNC_DECLARE(dAcOcloudDive_c, Dead);
private:
bool fn_350_6F0();
bool fn_350_760();
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mMdl;
/* 0x350 */ dCcD_Cyl mCollider;
@@ -35,7 +35,7 @@ private:
static const f32 mRadius1;
static const f32 mRadius2;
static const f32 lbl_350_rodata_8;
static const f32 height;
static dCcD_SrcCyl sCylSrc;
};
+11 -11
View File
@@ -12,7 +12,7 @@ SPECIAL_ACTOR_PROFILE(OBJ_CLOUD_DIVE, dAcOcloudDive_c, fProfile::OBJ_CLOUD_DIVE,
const f32 dAcOcloudDive_c::mRadius1 = 100.0f;
const f32 dAcOcloudDive_c::mRadius2 = 200.0f;
const f32 dAcOcloudDive_c::lbl_350_rodata_8 = 40.0f;
const f32 dAcOcloudDive_c::height = 40.0f;
dCcD_SrcCyl dAcOcloudDive_c::sCylSrc = {
/* mObjInf */
@@ -60,7 +60,7 @@ int dAcOcloudDive_c::actorExecute() {
mStateMgr.executeState();
mCollider.SetR(mRadius);
mCollider.SetH(40.0f);
mCollider.SetC(position - mVec3_c(0.0f, 20.0f, 0.0f));
mCollider.SetC(position - mVec3_c(0.0f, height / 2, 0.0f));
dCcS::GetInstance()->Set(&mCollider);
return SUCCEEDED;
}
@@ -73,11 +73,11 @@ void dAcOcloudDive_c::initializeState_Wait() {}
void dAcOcloudDive_c::executeState_Wait() {
if (fn_350_6F0()) {
mStateMgr.changeState(StateID_Wait);
mStateMgr.changeState(StateID_Dead);
}
if (fn_350_760()) {
dAcItem_c::giveItem22((ITEM_ID)mItemID, 0, -1);
mStateMgr.changeState(StateID_Wait);
mStateMgr.changeState(StateID_Dead);
}
}
@@ -95,21 +95,21 @@ bool dAcOcloudDive_c::fn_350_6F0() {
}
bool dAcOcloudDive_c::fn_350_760() {
bool ret = false;
bool temp = false;
mVec3_c deltaPosition = dAcPy_c::GetLink()->position - position;
f32 distance = EGG::Math<f32>::sqrt(deltaPosition.squareMagXZ());
// return distance <= mRadius && deltaPosition.y <= 20.0f && deltaPosition.y >= -20.0f;
bool temp = false;
if (distance <= mRadius) {
if (deltaPosition.y <= 20.0f) {
if (deltaPosition.y <= height / 2) {
temp = true;
}
}
if (temp) {
if (deltaPosition.y >= -20.0f) {
return true;
if (deltaPosition.y >= -height / 2) {
ret = true;
}
}
return false;
return ret;
}