mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-10 12:54:50 -04:00
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:
@@ -40,6 +40,7 @@ namespace JUTAssertion {
|
||||
void showAssert(u32 device, const char * file, int line, const char * assertion);
|
||||
void setWarningMessage_f(u32 device, char * file, int line, const char * fmt, ...);
|
||||
void setLogMessage_f(u32 device, char* file, int line, const char* fmt, ...);
|
||||
void setConfirmMessage(u32 param_1, char* file, int line, bool param_4, const char* msg);
|
||||
};
|
||||
|
||||
extern bool sAssertVisible;
|
||||
|
||||
@@ -24,7 +24,7 @@ public:
|
||||
public:
|
||||
cBgS_Chk();
|
||||
void SetExtChk(cBgS_Chk&);
|
||||
bool ChkSameActorPid(unsigned int) const;
|
||||
bool ChkSameActorPid(fpc_ProcID) const;
|
||||
|
||||
void SetActorPid(fpc_ProcID pid) { mActorPid = pid; }
|
||||
fpc_ProcID GetActorPid() const { return mActorPid; }
|
||||
@@ -34,7 +34,7 @@ public:
|
||||
cBgS_GrpPassChk* GetGrpPassChk() const { return mGrpPassChk; }
|
||||
void OffSameActorChk() { mSameActorChk = false; }
|
||||
|
||||
virtual ~cBgS_Chk(void);
|
||||
virtual ~cBgS_Chk();
|
||||
}; // Size: 0x14
|
||||
|
||||
#endif /* C_BG_S_CHK_H */
|
||||
|
||||
@@ -2,21 +2,22 @@
|
||||
#define C_BG_S_POLY_INFO_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_pc/f_pc_manager.h"
|
||||
|
||||
class cBgS_PolyInfo {
|
||||
private:
|
||||
/* 0x00 */ u16 mPolyIndex;
|
||||
/* 0x02 */ u16 mBgIndex;
|
||||
/* 0x04 */ void* unk_0x04;
|
||||
/* 0x08 */ unsigned int mActorId;
|
||||
/* 0x08 */ fpc_ProcID mActorId;
|
||||
|
||||
public:
|
||||
cBgS_PolyInfo();
|
||||
bool ChkSetInfo() const;
|
||||
void ClearPi();
|
||||
void SetPolyInfo(const cBgS_PolyInfo&);
|
||||
void SetActorInfo(int, void*, unsigned int);
|
||||
bool ChkSafe(const void*, unsigned int) const;
|
||||
void SetActorInfo(int, void*, fpc_ProcID);
|
||||
bool ChkSafe(const void*, fpc_ProcID) const;
|
||||
void SetPolyIndex(int);
|
||||
bool ChkBgIndex() const;
|
||||
|
||||
|
||||
@@ -211,6 +211,8 @@ public:
|
||||
/* 8026476C */ virtual bool GetNVec(cXyz const&, cXyz*) const;
|
||||
/* 80264808 */ virtual void getShapeAccess(cCcD_ShapeAttr::Shape*) const;
|
||||
|
||||
const cM3dGSph* GetShapeP() const { return this; }
|
||||
|
||||
}; // Size = 0x34
|
||||
|
||||
STATIC_ASSERT(0x34 == sizeof(cCcD_SphAttr));
|
||||
@@ -243,6 +245,8 @@ public:
|
||||
/* 802643D0 */ virtual bool GetNVec(cXyz const&, cXyz*) const;
|
||||
/* 802644B8 */ virtual void getShapeAccess(cCcD_ShapeAttr::Shape*) const;
|
||||
|
||||
const cM3dGCyl* GetShapeP() const { return this; }
|
||||
|
||||
}; // Size = 0x38
|
||||
|
||||
STATIC_ASSERT(0x38 == sizeof(cCcD_CylAttr));
|
||||
|
||||
@@ -101,4 +101,14 @@ inline f32 cM3d_LenSq(const Vec* a, const Vec* b) {
|
||||
return VECSquareDistance(a, b);
|
||||
}
|
||||
|
||||
inline bool cM3d_Cross_LinSph(const cM3dGLin* lin_p, const cM3dGSph* sph_p) {
|
||||
Vec sp10;
|
||||
return cM3d_Cross_LinSph(lin_p, sph_p, &sp10);
|
||||
}
|
||||
|
||||
inline bool cM3d_Cross_CylSph(const cM3dGCyl* cyl, const cM3dGSph* sph, Vec* out) {
|
||||
f32 sp10;
|
||||
return cM3d_Cross_CylSph(cyl, sph, out, &sp10);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -26,7 +26,9 @@ public:
|
||||
void CalcCenter(cXyz*) const;
|
||||
void PlusR(f32);
|
||||
const cXyz* GetMaxP(void) const { return &mMax; }
|
||||
const cXyz* GetMaxP(void) { return &mMax; }
|
||||
const cXyz* GetMinP(void) const { return &mMin; }
|
||||
const cXyz* GetMinP(void) { return &mMin; }
|
||||
const f32 GetMaxX(void) const { return mMax.x; }
|
||||
const f32 GetMaxY(void) const { return mMax.y; }
|
||||
const f32 GetMaxZ(void) const { return mMax.z; }
|
||||
|
||||
@@ -13,6 +13,12 @@ public:
|
||||
f32 GetCy() const { return mPosY; }
|
||||
f32 GetR() const { return mRadius; }
|
||||
|
||||
void Set(f32 pos_x, f32 pos_y, f32 radius) {
|
||||
mPosX = pos_x;
|
||||
mPosY = pos_y;
|
||||
mRadius = radius;
|
||||
}
|
||||
|
||||
cM2dGCir() {}
|
||||
virtual ~cM2dGCir() {}
|
||||
};
|
||||
|
||||
@@ -34,6 +34,10 @@ public:
|
||||
bool cross(const cM3dGLin* lin, Vec* xyz, bool param_2, bool param_3) const {
|
||||
return cM3d_Cross_LinTri(lin, this, xyz, param_2, param_3);
|
||||
}
|
||||
|
||||
void setUp() {
|
||||
SetupFrom3Vtx(&mA, &mB, &mC);
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#ifndef C_M3D_G_VTX_H_
|
||||
#define C_M3D_G_VTX_H_
|
||||
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
|
||||
class cM3dGVtx {
|
||||
public:
|
||||
~cM3dGVtx();
|
||||
|
||||
cXyz vtx;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -97,37 +97,16 @@ struct cXyz : Vec {
|
||||
|
||||
void setall(f32 f) { set(f, f, f); }
|
||||
|
||||
void setMin(const cXyz& other) {
|
||||
if (x > other.x) {
|
||||
x = other.x;
|
||||
}
|
||||
if (y > other.y) {
|
||||
y = other.y;
|
||||
}
|
||||
if (z > other.z) {
|
||||
z = other.z;
|
||||
}
|
||||
}
|
||||
|
||||
void setMax(const cXyz& other) {
|
||||
if (x < other.x) {
|
||||
x = other.x;
|
||||
}
|
||||
if (y < other.y) {
|
||||
y = other.y;
|
||||
}
|
||||
if (z < other.z) {
|
||||
z = other.z;
|
||||
}
|
||||
}
|
||||
void zero() { set(0.0f, 0.0f, 0.0f); }
|
||||
|
||||
float getSquareMag() const { return VECSquareMag(this); }
|
||||
f32 getSquareMag() const { return VECSquareMag(this); }
|
||||
f32 getSquareDistance(const Vec& other) const { return VECSquareDistance(this, &other); }
|
||||
|
||||
static float getNearZeroValue() { return 8e-11f; }
|
||||
static f32 getNearZeroValue() { return 8e-11f; }
|
||||
|
||||
bool isNearZeroSquare() const { return (this->getSquareMag() < getNearZeroValue()); }
|
||||
bool isNearZeroSquare(const cXyz& other) const { return (PSVECSquareMag(&other) < getNearZeroValue()); }
|
||||
|
||||
f32 abs2() const { return this->getSquareMag(); }
|
||||
f32 abs2(const Vec& other) const { return this->getSquareDistance(other); }
|
||||
f32 abs2XZ() const {
|
||||
@@ -139,13 +118,16 @@ struct cXyz : Vec {
|
||||
cXyz tmp2(other.x, 0, other.z);
|
||||
return tmp.abs2(tmp2);
|
||||
}
|
||||
|
||||
f32 abs() const { return sqrtf(this->abs2()); }
|
||||
f32 abs(const Vec& other) const { return sqrtf(this->abs2(other)); }
|
||||
f32 absXZ() const { return sqrtf(this->abs2XZ()); }
|
||||
f32 absXZ(const Vec& other) const { return sqrtf(this->abs2XZ(other)); }
|
||||
|
||||
f32 getMagXZ() const { return cXyz(this->x, 0, this->z).getSquareMag(); }
|
||||
|
||||
f32 getDotProduct(const Vec& other) const { return VECDotProduct(this, &other); }
|
||||
|
||||
f32 inprod(const Vec& other) const { return getDotProduct(other); }
|
||||
f32 inprodXZ(const Vec& other) const { return x * other.x + z * other.z; }
|
||||
};
|
||||
|
||||
@@ -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); }
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -456,6 +456,8 @@ public:
|
||||
|
||||
void U2(s16 i_val) { field_0x8c = i_val; }
|
||||
|
||||
void CorrectCenter() { setFlag(0x40000000); }
|
||||
|
||||
static engine_fn engine_tbl[];
|
||||
|
||||
/* 0x000 */ camera_class* field_0x0;
|
||||
|
||||
@@ -3549,6 +3549,10 @@ inline s16 dComIfGp_evmng_getEventIdx(const char* eventName, u8 mapToolID) {
|
||||
return g_dComIfG_gameInfo.play.getEvtManager().getEventIdx(eventName, mapToolID, -1);
|
||||
}
|
||||
|
||||
inline BOOL dComIfGp_evmng_isMapToolCamera(u8 mapToolID) {
|
||||
return g_dComIfG_gameInfo.play.getEvtManager().isMapToolCamera(mapToolID, -1);
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_createCommon(const void* data) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->createCommon(data);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user