mirror of
https://github.com/zeldaret/ss
synced 2026-06-28 18:50:47 -04:00
d_a_obj_cloud_dive OK + review
This commit is contained in:
+1
-1
@@ -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"),
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user