summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Padgham <jeff.ookami@gmail.com>2024-03-09 22:12:03 -0800
committerGitHub <noreply@github.com>2024-03-09 22:12:03 -0800
commit67250f6b5dc66a652ce2b2c705a9931efb3aef09 (patch)
tree401108cbe1604650b1764bec4d9048bae7379a9c
parent1672cfaccea0d0e36c317c64590100024038c06a (diff)
d_a_obj_rock small cleanup and doc pass (#2089)
* A bit more cleanup and another small doc pass * d_a_obj_digsnow OK (#2090) * Decomp OK * Cleanup and format pass, removing unused asm * Updating progress * Additional cleanup and PR feedback --------- Co-authored-by: GinNoOokami <noreply> * Updating names based on feedback --------- Co-authored-by: GinNoOokami <noreply>
-rw-r--r--include/rel/d/a/obj/d_a_obj_rock/d_a_obj_rock.h12
-rw-r--r--rel/d/a/obj/d_a_obj_rock/d_a_obj_rock.cpp39
2 files changed, 26 insertions, 25 deletions
diff --git a/include/rel/d/a/obj/d_a_obj_rock/d_a_obj_rock.h b/include/rel/d/a/obj/d_a_obj_rock/d_a_obj_rock.h
index 404d1dfc6a..9ba20dbc83 100644
--- a/include/rel/d/a/obj/d_a_obj_rock/d_a_obj_rock.h
+++ b/include/rel/d/a/obj/d_a_obj_rock/d_a_obj_rock.h
@@ -26,14 +26,14 @@ STATIC_ASSERT(sizeof(rock_ss) == 0x160);
class obj_rock_class : public fopAc_ac_c {
public:
/* 0x568 */ request_of_phase_process_class mPhaseReq;
- /* 0x570 */ u8 field_0x570;
- /* 0x571 */ u8 field_0x571;
- /* 0x572 */ u8 field_0x572;
- /* 0x574 */ s16 field_0x574;
+ /* 0x570 */ u8 mPatchRockNum;
+ /* 0x571 */ u8 mRockSpacing;
+ /* 0x572 */ u8 field_0x572; // Unused?
+ /* 0x574 */ s16 mPatchInitialized;
/* 0x578 */ rock_ss mRocks[0x10];
- /* 0x1B78 */ s32 mCount;
+ /* 0x1B78 */ s32 mRockNum;
/* 0x1B7C */ dCcD_Stts mStts;
- /* 0x1BB9 */ u8 field_0x1bb8;
+ /* 0x1BB8 */ u8 field_0x1bb8; // Unused?
/* 0x1BB9 */ bool mInitialized;
}; // Size: 0x1BBC
diff --git a/rel/d/a/obj/d_a_obj_rock/d_a_obj_rock.cpp b/rel/d/a/obj/d_a_obj_rock/d_a_obj_rock.cpp
index 7bdffc0d79..acdb16ee47 100644
--- a/rel/d/a/obj/d_a_obj_rock/d_a_obj_rock.cpp
+++ b/rel/d/a/obj/d_a_obj_rock/d_a_obj_rock.cpp
@@ -19,7 +19,7 @@ static int daObj_Rock_Draw(obj_rock_class* i_this) {
int room = fopAcM_GetRoomNo(i_this);
rock_ss* rock = i_this->mRocks;
- for (int i = 0; i < i_this->mCount; i++, rock++) {
+ for (int i = 0; i < i_this->mRockNum; i++, rock++) {
if (rock->mActive) {
dComIfGp_entrySimpleModel(rock->mpModel, room);
}
@@ -30,9 +30,9 @@ static int daObj_Rock_Draw(obj_rock_class* i_this) {
/* 80CBDD20-80CBDE48 000100 0128+00 2/1 0/0 0/0 .text daObj_Rock_Execute__FP14obj_rock_class */
static int daObj_Rock_Execute(obj_rock_class* i_this) {
- if (i_this->field_0x574 == 0) {
+ if (i_this->mPatchInitialized == FALSE) {
rock_ss* rock = i_this->mRocks;
- for (int i = 0; i < i_this->mCount; i++, rock++) {
+ for (int i = 0; i < i_this->mRockNum; i++, rock++) {
if (rock->mActive) {
mDoMtx_trans(mDoMtx_stack_c::get(), rock->mPos.x, rock->mPos.y + rock->mOffsetY,
rock->mPos.z);
@@ -45,10 +45,10 @@ static int daObj_Rock_Execute(obj_rock_class* i_this) {
rock->mCollider.SetR(rock->mScale.x * 100.0f);
}
}
- i_this->field_0x574 = 1;
+ i_this->mPatchInitialized = TRUE;
} else {
rock_ss* rock = i_this->mRocks;
- for (int i = 0; i < i_this->mCount; i++, rock++) {
+ for (int i = 0; i < i_this->mRockNum; i++, rock++) {
dComIfG_Ccsp2().Set(&rock->mCollider);
}
}
@@ -56,7 +56,7 @@ static int daObj_Rock_Execute(obj_rock_class* i_this) {
}
/* 80CBDE48-80CBDE50 000228 0008+00 1/0 0/0 0/0 .text daObj_Rock_IsDelete__FP14obj_rock_class */
-static bool daObj_Rock_IsDelete(obj_rock_class* param_0) {
+static bool daObj_Rock_IsDelete(obj_rock_class* i_this) {
return true;
}
@@ -76,10 +76,10 @@ static int useHeapInit(fopAc_ac_c* i_this) {
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes("Obj_rock", 3);
- for (int i = 0; i < a_this->mCount; i++) {
+ for (int i = 0; i < a_this->mRockNum; i++) {
a_this->mRocks[i].mpModel = mDoExt_J3DModel__create(model_data, 0x20000, 0x11000084);
if (a_this->mRocks[i].mpModel == NULL) {
- return 0;
+ return FALSE;
}
}
@@ -88,9 +88,9 @@ static int useHeapInit(fopAc_ac_c* i_this) {
/* 80CBDF84-80CBE138 000364 01B4+00 1/1 0/0 0/0 .text set_pos_check__FP14obj_rock_classi
*/
-static int set_pos_check(obj_rock_class* i_this, int index) {
- for (int i = 0; i < index; i++) {
- cXyz dir = i_this->mRocks[i].mPos - i_this->mRocks[index].mPos;
+static int set_pos_check(obj_rock_class* i_this, int target_index) {
+ for (int i = 0; i < target_index; i++) {
+ cXyz dir = i_this->mRocks[i].mPos - i_this->mRocks[target_index].mPos;
if (dir.abs() < 200.0f) {
return FALSE;
}
@@ -120,17 +120,18 @@ static int daObj_Rock_Create(fopAc_ac_c* i_this) {
cPhs__Step step = (cPhs__Step)dComIfG_resLoad(&a_this->mPhaseReq, "Obj_rock");
if (step == cPhs_COMPLEATE_e) {
- a_this->field_0x570 = fopAcM_GetParam(a_this);
- a_this->field_0x571 = fopAcM_GetParamBit(a_this, 8, 8);
+ a_this->mPatchRockNum = fopAcM_GetParam(a_this);
+ a_this->mRockSpacing = fopAcM_GetParamBit(a_this, 8, 8);
a_this->field_0x572 = fopAcM_GetParamBit(a_this, 16, 8);
if (a_this->field_0x572 == 0xFF) {
a_this->field_0x572 = 0;
}
- a_this->mCount = a_this->field_0x570 + 1;
- if (a_this->mCount > 0x10) {
- a_this->mCount = 0x10;
+ // Unclear why a separate counter is used here, or why it adds 1
+ a_this->mRockNum = a_this->mPatchRockNum + 1;
+ if (a_this->mRockNum > 16) {
+ a_this->mRockNum = 16;
}
if (!fopAcM_entrySolidHeap(i_this, (heapCallbackFunc)useHeapInit, 0x4B000)) {
@@ -150,7 +151,7 @@ static int daObj_Rock_Create(fopAc_ac_c* i_this) {
obj_gnd_chk.SetPos((Vec*)&pos);
f32 gnd_height = dComIfG_Bgsp().GroundCross(&obj_gnd_chk);
- for (int i = 0; i < a_this->mCount; i++) {
+ for (int i = 0; i < a_this->mRockNum; i++) {
MtxPush();
mDoMtx_YrotM(*calc_mtx, cM_rndF2(65536.0f));
MtxPosition(&init_pos, &a_this->mRocks[i].mPos);
@@ -181,12 +182,12 @@ static int daObj_Rock_Create(fopAc_ac_c* i_this) {
init_pos.z = cM_rndF2(1.0f);
init_pos.z = 1.0f - (init_pos.z * init_pos.z);
- init_pos.z *= 100.0f * a_this->field_0x571;
+ init_pos.z *= 100.0f * a_this->mRockSpacing;
}
a_this->mStts.Init(0xff, 0, i_this);
- for (int i = 0; i < a_this->mCount; i++) {
+ for (int i = 0; i < a_this->mRockNum; i++) {
a_this->mRocks[i].mCollider.Set(cc_sph_src);
a_this->mRocks[i].mCollider.SetStts(&a_this->mStts);
}