tag_allmato almost, swhit0 treesh swball done, misc cleanup (#2312)

* d_a_tag_allmato almost done

* d_a_swhit0 done

* some SSystem cleanup

* treesh done

* swball done, some other rel cleanup
This commit is contained in:
TakaRikka
2025-03-01 14:48:49 +02:00
committed by GitHub
parent 9c3c07575a
commit 19e18654c9
54 changed files with 2162 additions and 1767 deletions
+8
View File
@@ -60,6 +60,14 @@ public:
bool checkBombArrow() const { return mArrowType == true; }
u32 getHitAcID() { return mHitAcID; }
BOOL checkWait() { return fopAcM_GetParam(this) == 0; }
f32 getOutLengthRate() { return mOutLengthRate; }
f32 getArrowOutLength() { return 95.0f; }
f32 getArrowAtR() { return 5.0f; }
f32 getFlyMax() { return mFlyMax; }
cXyz getStartPos() { return mStartPos; }
void setShoot() { fopAcM_SetParam(this, 1); }
void setChargeShoot() { fopAcM_SetParam(this, 2); }
+25
View File
@@ -2,6 +2,7 @@
#define D_A_OBJ_BOUMATO_H
#include "d/d_bg_s_acch.h"
#include "d/actor/d_a_arrow.h"
#include "d/d_jnt_col.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
@@ -60,10 +61,34 @@ public:
/* 80BBC1F8 */ void setRoomNo();
/* 80BBC23C */ void setMtx();
int checkCrs(fopAc_ac_c* param_0, cXyz param_1, cXyz param_2, f32 param_3) {
daArrow_c* arrow_p = (daArrow_c*)param_0;
cXyz sp2C;
cXyz sp20;
JUT_ASSERT(164, 0 != arrow_p);
if (field_0xa38 != 0) {
return 0;
}
mCyl2.cM3dGCyl::Set(current.pos, mCyl.GetShapeP()->GetR() + 120.0f, mCyl.GetShapeP()->GetH() + 30.0f);
if ((param_1 - current.pos).abs() < param_3) {
mGLin.SetStartEnd(param_1, param_2);
if (cM3d_Cross_CylLin(&mCyl2, &mGLin, &sp2C, &sp20)) {
return 2;
}
}
return 0;
}
u8 getType() { return 0; }
u8 getOffSwBit() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
u8 getOnSwBit() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
void setCutType(u8 cutType) { mCutType = cutType; }
fpc_ProcID getTgHitAcId() { return mTargetId; }
void clrTgHitAcId() { mTargetId = fpcM_ERROR_PROCESS_ID_e; }
};
STATIC_ASSERT(sizeof(daObj_BouMato_c) == 0xa40);
+62 -1
View File
@@ -2,6 +2,7 @@
#define D_A_OBJ_ITAMATO_H
#include "f_op/f_op_actor_mng.h"
#include "d/actor/d_a_arrow.h"
#include "d/d_cc_d.h"
/**
@@ -29,8 +30,68 @@ public:
/* 80C2A8EC */ void setRoomNo();
/* 80C2A930 */ void setMtx();
int checkCrs(fopAc_ac_c* param_0, cXyz param_1, cXyz param_2, f32 param_3) {
daArrow_c* arrow_p = (daArrow_c*)param_0;
cM3dGSph sp38;
cXyz sp2C;
cXyz sp20;
JUT_ASSERT(170, 0 != arrow_p);
if (field_0xa16 != 0 || health == 0) {
return 0;
}
sp38.Set(field_0x80c.GetShapeP()->GetC(), field_0x80c.GetShapeP()->GetR() + (arrow_p->getArrowAtR() * 2.0f));
if ((param_1 - current.pos).abs() < param_3) {
field_0x944.SetStartEnd(param_1, param_2);
if (cM3d_Cross_LinSph(&field_0x944, &sp38)) {
return 3;
}
}
return 0;
}
int getNo() {
u8 var_r31 = fopAcM_GetParam(this) & 0xFF;
int no;
if (var_r31 == 0xFF) {
no = -1;
} else {
no = var_r31;
}
return no;
}
BOOL checkBrk() {
if (field_0xa15 != 0) {
return 4;
}
return 0;
}
void onFake() { mFake = true; }
private:
/* 0x568 */ u8 field_0x568[0xa20 - 0x568];
/* 0x568 */ u8 field_0x568[0x57C - 0x568];
/* 0x57C */ dBgS_ObjAcch field_0x57c;
/* 0x754 */ dCcD_Stts field_0x754;
/* 0x790 */ dBgS_AcchCir field_0x790;
/* 0x7D0 */ cBgS_GndChk field_0x7d0;
/* 0x80C */ dCcD_Sph field_0x80c;
/* 0x944 */ cM3dGLin field_0x944;
/* 0x960 */ dBgS_LinChk field_0x960;
/* 0x9D0 */ csXyz field_0x9d0[3];
/* 0x9e2 */ u8 field_0x9e2[0xA15 - 0x9E2];
/* 0xA15 */ u8 field_0xa15;
/* 0xA15 */ u8 field_0xa16;
/* 0xA17 */ u8 field_0xa17[0xA19 - 0xA17];
/* 0xA19 */ u8 mFake;
/* 0xA1A */ u8 field_0xa1a[0xA20 - 0xA1A];
};
STATIC_ASSERT(sizeof(daObj_ItaMato_c) == 0xa20);
+24 -11
View File
@@ -2,6 +2,8 @@
#define D_A_OBJ_TREESH_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_movebg_actor.h"
#include "m_Do/m_Do_hostIO.h"
/**
* @ingroup actors-objects
@@ -11,27 +13,38 @@
* @details
*
*/
class daTreeSh_c : public fopAc_ac_c {
class daTreeSh_c : public dBgS_MoveBgActor {
public:
/* 80D1F258 */ void initBaseMtx();
/* 80D1F294 */ void setBaseMtx();
/* 80D1F2E8 */ void CreateHeap();
/* 80D1F358 */ void Create();
/* 80D1F414 */ void create1st();
/* 80D1F49C */ void Execute(f32 (**)[3][4]);
/* 80D1F648 */ void Draw();
/* 80D1F6EC */ void Delete();
/* 80D1F414 */ int create1st();
private:
/* 0x568 */ u8 field_0x568[0x5cc - 0x568];
/* 80D1F2E8 */ virtual int CreateHeap();
/* 80D1F358 */ virtual int Create();
/* 80D1F49C */ virtual int Execute(Mtx**);
/* 80D1F648 */ virtual int Draw();
/* 80D1F6EC */ virtual int Delete();
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ J3DModel* mpModel;
/* 0x5AC */ csXyz mRot[2];
/* 0x5B8 */ f32 field_0x5b8[2];
/* 0x5C0 */ s16 field_0x5c0[2];
/* 0x5C4 */ s16 field_0x5c4[2];
/* 0x5C8 */ s16 mShakeTimer[2];
};
STATIC_ASSERT(sizeof(daTreeSh_c) == 0x5cc);
class daTreeSh_HIO_c {
class daTreeSh_HIO_c : public mDoHIO_entry_c {
public:
/* 80D1F0CC */ daTreeSh_HIO_c();
/* 80D1F81C */ ~daTreeSh_HIO_c();
/* 80D1F81C */ virtual ~daTreeSh_HIO_c() {}
/* 0x4 */ s16 shake_strength;
/* 0x6 */ s16 shake_speed;
/* 0x8 */ s16 field_0x8;
/* 0xA */ csXyz field_0xa;
};
+19 -7
View File
@@ -13,19 +13,31 @@
*/
class daSwBall_c : public fopAc_ac_c {
public:
/* 80D4E054 */ void checkArea_sub(fopAc_ac_c*);
/* 80D4E194 */ void checkArea();
/* 80D4E054 */ BOOL checkArea_sub(fopAc_ac_c*);
/* 80D4E194 */ BOOL checkArea();
/* 80D4E248 */ void search_ball();
/* 80D4E374 */ void Create();
/* 80D4E42C */ void create();
/* 80D4E494 */ void execute();
/* 80D4E374 */ int Create();
/* 80D4E42C */ int create();
/* 80D4E494 */ int execute();
/* 80D4E524 */ void actionRun();
/* 80D4E6C4 */ void actionStop();
/* 80D4E6C8 */ void PutCrrPos();
/* 80D4E90C */ bool _delete();
/* 80D4E90C */ int _delete();
u8 getArg0() { return fopAcM_GetParamBit(this, 0, 8); }
u8 getArg1() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getSwbit() { return fopAcM_GetParamBit(this, 16, 8); }
u8 getType() { return fopAcM_GetParamBit(this, 24, 4); }
bool checkPullLBall() { return fopAcM_GetParamBit(this, 28, 2) == 0; }
private:
/* 0x568 */ u8 field_0x568[0x5a0 - 0x568];
/* 0x568 */ fpc_ProcID mBallIDs[8];
/* 0x588 */ u8 mTimer;
/* 0x589 */ u8 mAction;
/* 0x58A */ u8 mMode;
/* 0x58B */ u8 mIsBallCarry[8];
/* 0x593 */ u8 field_0x593[8];
/* 0x59C */ fpc_ProcID field_0x59c;
};
STATIC_ASSERT(sizeof(daSwBall_c) == 0x5a0);
+56 -21
View File
@@ -2,6 +2,7 @@
#define D_A_SWHIT0_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
/**
* @ingroup actors-unsorted
@@ -11,35 +12,69 @@
* @details
*
*/
class daSwhit0_c : public fopAc_ac_c {
class daSwhit0_c : public fopAc_ac_c, public request_of_phase_process_class {
public:
/* 80485FF8 */ void getSwNo();
/* 80486004 */ void getSwNo2();
/* 80486010 */ void getEvNo();
/* 8048602C */ void getTimer();
/* 80486048 */ void getType();
enum Action_e {
ACTION_SW_WAIT_e,
ACTION_OFF_WAIT_e,
ACTION_TO_ON_READY_e,
ACTION_TO_ON_ORDER_e,
ACTION_TO_ON_DEMO_e,
ACTION_TO_ON_DEMO2_e,
ACTION_ON_WAIT_e,
ACTION_TOOL_TO_ON_READY_e,
ACTION_TOOL_TO_ON_ORDER_e,
ACTION_TOOL_TO_ON_DEMO_e,
ACTION_TOOL_TO_ON_DEMO2_e,
};
/* 80485FF8 */ int getSwNo();
/* 80486004 */ int getSwNo2();
/* 80486010 */ u8 getEvNo();
/* 8048602C */ u8 getTimer();
/* 80486048 */ u8 getType();
/* 80486064 */ void makeEventId();
/* 804860EC */ void CreateHeap();
/* 80486214 */ void CreateInit();
/* 804863B0 */ void create();
/* 8048668C */ void checkHit();
/* 804860EC */ int CreateHeap();
/* 80486214 */ int CreateInit();
/* 804863B0 */ int create();
/* 8048668C */ bool checkHit();
/* 80486704 */ void setCombackTimer();
/* 80486788 */ void endCombackTimer();
/* 80486788 */ int endCombackTimer();
/* 80486800 */ void onSwitch();
/* 80486858 */ void offSwitch();
/* 804868A8 */ void DemoProc();
/* 804868A8 */ int DemoProc();
/* 804869C4 */ void orderEvent();
/* 80486ABC */ void actionOffWait();
/* 80486BC4 */ void actionToOnReady();
/* 80486C28 */ void actionToOnOrder();
/* 80486CE4 */ void actionToOnDemo();
/* 80486D88 */ void actionToOnDemo2();
/* 80486EC4 */ void actionSwWait();
/* 80486FC0 */ void actionOnWait();
/* 80486ABC */ int actionOffWait();
/* 80486BC4 */ int actionToOnReady();
/* 80486C28 */ int actionToOnOrder();
/* 80486CE4 */ int actionToOnDemo();
/* 80486D88 */ int actionToOnDemo2();
/* 80486EC4 */ int actionSwWait();
/* 80486FC0 */ int actionOnWait();
/* 804870E0 */ void setDrawMtx();
private:
/* 0x568 */ u8 field_0x568[0x75c - 0x568];
inline int draw();
inline int execute();
void setActio(u8 i_action) { mAction = i_action; }
void onFlag(u16 i_flag) { mFlags |= i_flag; }
void offFlag(u16 i_flag) { mFlags &= ~i_flag; }
bool checkFlag(u16 i_flag) { return mFlags & i_flag; }
/* 0x570 */ J3DModel* mpModel;
/* 0x574 */ mDoExt_bckAnm mBck;
/* 0x590 */ mDoExt_brkAnm mBrk;
/* 0x5A8 */ Mtx field_0x5a8;
/* 0x5D8 */ dCcD_Stts mColliderStts;
/* 0x614 */ dCcD_Sph mSph;
/* 0x74C */ u8 mHitWaitTimer;
/* 0x74D */ u8 mAction;
/* 0x74E */ u8 mReadyTimer;
/* 0x750 */ s16 mCombackTimer;
/* 0x752 */ s16 mSwWaitTimer;
/* 0x754 */ u16 mFlags;
/* 0x756 */ s16 mEventId;
/* 0x758 */ int mStaffId;
};
STATIC_ASSERT(sizeof(daSwhit0_c) == 0x75c);
+73 -1
View File
@@ -1,6 +1,78 @@
#ifndef D_A_TAG_ALLMATO_H
#define D_A_TAG_ALLMATO_H
#include "dolphin/types.h"
#include "d/actor/d_a_npc.h"
class daTag_AllMato_c : public fopAc_ac_c {
public:
/* 0x0568 */ daNpcT_ActorMngr_c mBouMatoActorMngr[1];
/* 0x0570 */ daNpcT_ActorMngr_c mItaMatoActorMngr[2];
/* 0x0580 */ daNpcT_ActorMngr_c mArrowActorMngr;
/* 0x0588 */ daNpcT_ActorMngr_c mBrkMatoActorMngr;
/* 0x0590 */ cXyz field_0x590[500];
/* 0x1D00 */ int mBouMatoActorNum;
/* 0x1D04 */ int mItaMatoActorNum;
/* 0x1D08 */ int field_0x1d08;
/* 0x1D0C */ s16 mEventIdx;
/* 0x1D0E */ u8 field_0x1d0e;
/* 0x1D0F */ u8 field_0x1d0f;
/* 0x1D10 */ u8 field_0x1d10;
/* 80487538 */ int create();
/* 804876B0 */ int Delete();
/* 804876B8 */ int Execute();
/* 80487C5C */ int Draw();
/* 80487C64 */ static void* srchBouMato(void*, void*);
/* 80487D00 */ static void* srchItaMato(void*, void*);
/* 80487D9C */ static void* srchTaro(void*, void*);
/* 80487E38 */ static void* srchArrow(void*, void*);
/* 80487ED4 */ int isDelete();
/* 80487F80 */ void entryBouMatoActors();
/* 80488034 */ void entryItaMatoActors();
/* 80488104 */ fopAc_ac_c* getTaroActorP();
/* 804881C0 */ fopAc_ac_c* getArrowActorP();
/* 80488238 */ int checkCrsMato();
/* 80488994 */ int checkCrsMato2();
/* 80488F40 */ int checkBrkMato();
/* 80488FD8 */ void evtChange(u16);
/* 80489608 */ virtual ~daTag_AllMato_c() {}
int getType() { return 0; }
int getOnEvtBit() {
u32 prm = fopAcM_GetParam(this) & 0xFFF;
int bit;
if (prm == 0xFFF) {
bit = -1;
} else {
bit = prm;
}
return bit;
}
u32 getOffEvtBit() {
u32 prm = (fopAcM_GetParam(this) & 0xFFF000) >> 12;
u32 bit;
if (prm == 0xFFF) {
bit = 0xFFFFFFFF;
} else {
bit = prm;
}
return bit;
}
u8 getOnSwBit() {
return home.angle.x & 0xFF;
}
u8 getOffSwBit() {
return (home.angle.x & 0xFF00) >> 8;
}
};
#endif /* D_A_TAG_ALLMATO_H */
+5 -2
View File
@@ -29,8 +29,11 @@ public:
/* 0x569 */ s8 field_0x569;
/* 0x56A */ u8 field_0x56a;
/* 0x56B */ u8 mNextCheckFlg;
/* 0x56C */ u8 field_0x56c[4];
/* 0x570 */ u8 field_0x570;
/* 0x56C */ u8 field_0x56c;
/* 0x56D */ u8 field_0x56d;
/* 0x56E */ u8 field_0x56e;
/* 0x56F */ u8 field_0x56f;
/* 0x570 */ s8 field_0x570;
/* 0x571 */ u8 field_0x571;
/* 0x572 */ u8 field_0x572;
/* 0x573 */ u8 field_0x573;