__sinit_d_com_inf_game_cpp OK (#140)

* mass mng header

* d_cc_d start

* c_cc_d ok

* tmp commit

* almost, reordering of vtable functions

* progress

* more progress

* cleanup, still non matching

* mark all of d_cc_d as nonmatching to OK

* c_cc_s

* c_cc_s OK

* d_cc_mass_s OK

* cleanup

* gameinfo __sinit, not OK

* a bit of cleanup

* format

* remove asm

Co-authored-by: lepelog <lepelog@users.noreply.github.com>
This commit is contained in:
lepelog
2021-08-17 02:59:00 +02:00
committed by GitHub
parent 9765844d92
commit 38eca47ad5
114 changed files with 2085 additions and 5680 deletions
@@ -3,13 +3,13 @@
#include "dolphin/types.h"
#pragma pack(push, 1)
class J3DFrameCtrl {
public:
J3DFrameCtrl() { this->init(0); }
void init(s16);
BOOL checkPass(f32);
void update();
~J3DFrameCtrl();
virtual ~J3DFrameCtrl() {}
float getRate() const { return mRate; }
void setAttribute(u8 pAttr) { mAttribute = pAttr; }
@@ -23,7 +23,7 @@ public:
void setLoop(s16 pLoop) { mLoop = pLoop; }
private:
void* vtable;
/* vtable */;
u8 mAttribute;
bool mState;
s16 mStart;
@@ -32,6 +32,5 @@ private:
float mRate;
float mFrame;
};
#pragma pack(pop)
#endif /* J3DANIMATION_H */
+10 -5
View File
@@ -5,11 +5,13 @@
#include "dolphin/gx/GXTexture.h"
#include "dolphin/types.h"
struct J3DLightInfo {
class J3DLightInfo {
public:
J3DLightInfo(J3DLightInfo const& other) { *this = other; }
/* 803256C4 */ void operator=(J3DLightInfo const&);
/* 0x00 */ cXyz mLightPosition;
/* 0x0C */ cXyz mLightDirection;
/* 0x00 */ Vec mLightPosition;
/* 0x0C */ Vec mLightDirection;
/* 0x18 */ _GXColor mColor;
/* 0x1C */ f32 mA0;
/* 0x20 */ f32 mA1;
@@ -19,8 +21,11 @@ struct J3DLightInfo {
/* 0x30 */ f32 mK2;
}; // Size = 0x34
struct J3DLightObj {
/* 80018C0C */ J3DLightObj();
extern "C" extern J3DLightInfo const j3dDefaultLightInfo;
class J3DLightObj {
public:
/* 80018C0C */ J3DLightObj() : mInfo(j3dDefaultLightInfo) {}
/* 0x00 */ J3DLightInfo mInfo;
/* 0x34 */ u8 field_0x34[64];
+154 -85
View File
@@ -31,71 +31,86 @@ public:
/* 0x10 */ f32 _10;
/* 0x14 */ f32 _14;
};
cCcD_ShapeAttr() {}
/* 8008556C vt[2] */ virtual ~cCcD_ShapeAttr() {}
/* 802649D8 vt[3] */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const;
/* 802649D8 vt[3] */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const {
return false;
}
/* vt[4] */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const = 0;
/* vt[5] */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const = 0;
/* vt[6] */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const = 0;
/* vt[7] */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const = 0;
/* vt[8] */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const = 0;
/* vt[9] */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const = 0;
/* 802649E0 vt[10]*/ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const;
/* 802649E0 vt[10]*/ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const { return false; }
/* vt[11]*/ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const = 0;
/* vt[12]*/ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const = 0;
/* vt[13]*/ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const = 0;
/* vt[14]*/ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const = 0;
/* vt[15]*/ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const = 0;
/* vt[16]*/ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const = 0;
/* 80084E38 vt[17]*/ virtual const cXyz& GetCoCP() const;
/* 80084E2C vt[18]*/ virtual cXyz& GetCoCP();
/* 80084E38 vt[17]*/ virtual const cXyz& GetCoCP() const { return m_virtual_center; }
/* 80084E2C vt[18]*/ virtual cXyz& GetCoCP() { return m_virtual_center; }
/* vt[19]*/ virtual void CalcAabBox() = 0;
/* vt[20]*/ virtual bool GetNVec(cXyz const&, cXyz*) const = 0;
/* 80263A64 vt[21]*/ virtual void getShapeAccess(cCcD_ShapeAttr::Shape*) const;
static f32 m_virtual_center[3];
cM3dGAab& GetWorkAab() { return mAab; }
cM3dGAab const& GetWorkAab() const { return mAab; }
static cXyz m_virtual_center;
};
STATIC_ASSERT(0x20 == sizeof(cCcD_ShapeAttr));
class cCcD_TriAttr : public cCcD_ShapeAttr, public cM3dGTri {
public:
/* 80084E44 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const;
/* 80263A88 */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const;
/* 80263BCC */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const;
/* 80084E4C */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const;
/* 80263B90 */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
/* 80084E54 */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const;
/* 80263B58 */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const;
/* 80084E9C */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const;
/* 80084EBC */ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const;
/* 80084EA4 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const;
/* 80084E8C */ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const;
/* 80084EAC */ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const;
/* 80084E94 */ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const;
/* 80084EB4 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const;
/* 80263C04 */ virtual void CalcAabBox();
/* 80263C9C */ virtual bool GetNVec(cXyz const&, cXyz*) const;
/* 80264938 */ virtual ~cCcD_TriAttr();
/* 80263A88 */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const;
/* 80263BCC */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const;
/* 80263B90 */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
/* 80084E54 */ virtual bool CrossAtTg(cCcD_ShapeAttr const& shape, cXyz* xyz) const {
return shape.CrossAtTg(*this, xyz);
}
/* 80084E4C */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const { return false; }
/* 80084E44 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const { return false; }
/* 80263B58 */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const;
/* 80084EBC */ virtual bool CrossCo(cCcD_ShapeAttr const& shape, f32* f) const {
return shape.CrossCo(*this, f);
}
/* 80084EB4 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const { return false; }
/* 80084EAC */ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const { return false; }
/* 80084EA4 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const { return false; }
/* 80084E9C */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const { return false; }
/* 80084E94 */ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const { return false; }
/* 80084E8C */ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const { return false; }
/* 80264938 */ virtual ~cCcD_TriAttr() {}
cCcD_TriAttr() {}
};
class cCcD_CpsAttr : public cCcD_ShapeAttr, public cM3dGCps {
public:
/* 80085450 */ virtual ~cCcD_CpsAttr();
cCcD_CpsAttr() {}
/* 80085450 */ virtual ~cCcD_CpsAttr() {}
/* 80263DC0 */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
/* 80263E04 */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const;
/* 80084FE4 */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const;
/* 80084FDC */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const;
/* 80084FD4 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const;
/* 80084FE4 */ virtual bool CrossAtTg(cCcD_ShapeAttr const& shape, cXyz* xyz) const {
return shape.CrossAtTg(*this, xyz);
}
/* 80084FDC */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const { return false; }
/* 80084FD4 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const { return false; }
/* 80263D38 */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const;
/* 80263D7C */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const;
/* 80263F24 */ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const;
/* 80085024 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const;
/* 8008502C */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const;
/* 8008501C */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const;
/* 80263ED4 */ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const;
/* 80263F74 */ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const;
/* 80085034 */ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const;
/* 80085034 */ virtual bool CrossCo(cCcD_ShapeAttr const& shape, f32* f) const {
return shape.CrossCo(*this, f);
}
/* 8008502C */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const { return false; }
/* 80085024 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const { return false; }
/* 8008501C */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const { return false; }
/* 80263FC4 */ virtual void CalcAabBox();
/* 80264014 */ virtual bool GetNVec(cXyz const&, cXyz*) const;
};
@@ -104,23 +119,28 @@ STATIC_ASSERT(0x40 == sizeof(cCcD_CpsAttr));
class cCcD_SphAttr : public cCcD_ShapeAttr, public cM3dGSph {
public:
/* 8008721C */ virtual ~cCcD_SphAttr();
cCcD_SphAttr() {}
/* 8008721C */ virtual ~cCcD_SphAttr() {}
/* 80084B44 */ virtual const cXyz& GetCoCP() const { return mCenter; }
/* 80037A54 */ virtual cXyz& GetCoCP() { return mCenter; }
/* 80084B5C */ virtual bool CrossAtTg(cCcD_ShapeAttr const& shape, cXyz* xyz) const {
return shape.CrossAtTg(*this, xyz);
}
/* 80084B54 */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const { return false; }
/* 80084B4C */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const { return false; }
/* 80084BAC */ virtual bool CrossCo(cCcD_ShapeAttr const& shape, f32* f) const {
return shape.CrossCo(*this, f);
}
/* 80084BA4 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const { return false; }
/* 80084B9C */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const { return false; }
/* 80084B94 */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const { return false; }
/* 80264538 */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const;
/* 802645C0 */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const;
/* 80084B4C */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const;
/* 80084B54 */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const;
/* 80084B5C */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const;
/* 802644EC */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const;
/* 8026457C */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
/* 80264688 */ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const;
/* 80084B94 */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const;
/* 80084B9C */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const;
/* 80084BA4 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const;
/* 80084BAC */ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const;
/* 80264644 */ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const;
/* 802645F8 */ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const;
/* 80084B44 */ virtual const cXyz& GetCoCP() const;
/* 80037A54 */ virtual cXyz& GetCoCP();
/* 802646E0 */ virtual void CalcAabBox();
/* 8026476C */ virtual bool GetNVec(cXyz const&, cXyz*) const;
/* 80264808 */ virtual void getShapeAccess(cCcD_ShapeAttr::Shape*) const;
@@ -131,23 +151,28 @@ STATIC_ASSERT(0x34 == sizeof(cCcD_SphAttr));
class cCcD_CylAttr : public cCcD_ShapeAttr, public cM3dGCyl {
public:
/* 800854E0 */ virtual ~cCcD_CylAttr();
cCcD_CylAttr() {}
/* 800854E0 */ virtual ~cCcD_CylAttr() {}
/* 80084CC0 */ virtual const cXyz& GetCoCP() const { return mCenter; }
/* 8026420C */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
/* 802641C8 */ virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const;
/* 80084CC8 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const;
/* 80264250 */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const;
/* 80084CD0 */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const;
/* 80084CD8 */ virtual bool CrossAtTg(cCcD_ShapeAttr const&, cXyz*) const;
/* 80084CD8 */ virtual bool CrossAtTg(cCcD_ShapeAttr const& shape, cXyz* xyz) const {
return shape.CrossAtTg(*this, xyz);
}
/* 80084CD0 */ virtual bool CrossAtTg(cCcD_PntAttr const&, cXyz*) const { return false; }
/* 80084CC8 */ virtual bool CrossAtTg(cCcD_AabAttr const&, cXyz*) const { return false; }
/* 8026417C */ virtual bool CrossAtTg(cCcD_CpsAttr const&, cXyz*) const;
/* 80264288 */ virtual bool CrossCo(cCcD_CylAttr const&, f32*) const;
/* 80264310 */ virtual bool CrossCo(cCcD_CpsAttr const&, f32*) const;
/* 80084D10 */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const;
/* 80084D18 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const;
/* 80084D20 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const;
/* 80084D28 */ virtual bool CrossCo(cCcD_ShapeAttr const&, f32*) const;
/* 80084D28 */ virtual bool CrossCo(cCcD_ShapeAttr const& shape, f32* f) const {
return shape.CrossCo(*this, f);
}
/* 80084D20 */ virtual bool CrossCo(cCcD_PntAttr const&, f32*) const { return false; }
/* 80084D18 */ virtual bool CrossCo(cCcD_TriAttr const&, f32*) const { return false; }
/* 80084D10 */ virtual bool CrossCo(cCcD_AabAttr const&, f32*) const { return false; }
/* 802642CC */ virtual bool CrossCo(cCcD_SphAttr const&, f32*) const;
/* 80084CC0 */ virtual const cXyz& GetCoCP() const;
/* 80037A4C */ virtual cXyz& GetCoCP();
/* 80037A4C */ virtual cXyz& GetCoCP() { return mCenter; }
/* 80264368 */ virtual void CalcAabBox();
/* 802643D0 */ virtual bool GetNVec(cXyz const&, cXyz*) const;
/* 802644B8 */ virtual void getShapeAccess(cCcD_ShapeAttr::Shape*) const;
@@ -158,13 +183,13 @@ STATIC_ASSERT(0x38 == sizeof(cCcD_CylAttr));
class cCcD_DivideInfo {
private:
/* 0x00 */ u32 field_0x0;
/* 0x04 */ u32 field_0x4;
/* 0x08 */ u32 field_0x8;
/* 0x00 */ u32 mXDivInfo;
/* 0x04 */ u32 mYDivInfo;
/* 0x08 */ u32 mZDivInfo;
/* 0x0C vtable */
public:
virtual void test(); // temp to build OK, remove later
virtual ~cCcD_DivideInfo();
cCcD_DivideInfo() {}
virtual ~cCcD_DivideInfo() {}
/* 80263358 */ void Set(u32, u32, u32);
/* 80263368 */ bool Chk(cCcD_DivideInfo const&) const;
}; // Size = 0x10
@@ -184,8 +209,8 @@ private:
/* 0x3C */ f32 mInvScaledZDiff;
public:
virtual void test(); // temp to build OK, remove later
virtual ~cCcD_DivideArea();
cCcD_DivideArea() {}
virtual ~cCcD_DivideArea() {}
/* 802633A8 */ void SetArea(cM3dGAab const&);
/* 802634D4 */ void CalcDivideInfo(cCcD_DivideInfo*, cM3dGAab const&, u32);
/* 802636A0 */ void CalcDivideInfoOverArea(cCcD_DivideInfo*, cM3dGAab const&);
@@ -217,10 +242,10 @@ struct cCcD_SrcObj {
class cCcD_GStts {
public:
/* 800837B0 */ ~cCcD_GStts();
/* 800837B0 */ virtual ~cCcD_GStts() {}
private:
/* 0x00 */ void* vtable;
/* 0x00 vtable */
}; // Size = 0x4
class cCcD_Stts {
@@ -233,6 +258,7 @@ private:
/* 0x16 */ u8 mTg;
public:
cCcD_Stts() {}
/* 801410A4 vt[3] */ virtual ~cCcD_Stts() {}
/* 80263894 vt[4] */ virtual const cCcD_GStts* GetGStts() const;
/* 8026389C vt[5] */ virtual cCcD_GStts* GetGStts();
@@ -242,8 +268,8 @@ public:
/* 8026395C */ void ClrCcMove();
/* 80263970 */ void PlusDmg(int);
/* 80263984 */ f32 GetWeightF() const;
/* 802649E8 vt[7] */ virtual void ClrAt();
/* 802649EC vt[8] */ virtual void ClrTg();
/* 802649E8 vt[7] */ virtual void ClrAt() {}
/* 802649EC vt[8] */ virtual void ClrTg() { mTg = 0; }
u8 GetWeightUc() const { return mWeight; }
void SetWeight(u8 weight) { mWeight = weight; }
fopAc_ac_c* GetAc() { return mActor; }
@@ -254,30 +280,39 @@ STATIC_ASSERT(0x1C == sizeof(cCcD_Stts));
class cCcD_Obj; // placeholder
class cCcD_ObjCommonBase {
public:
/* 8008409C */ ~cCcD_ObjCommonBase();
/* 802639B0 */ void ct();
void setSPrm(s32 sprm) { mSPrm = sprm; }
s32 getSPrm() { return mSPrm; }
protected:
/* 0x00 */ int mSPrm;
/* 0x04 */ int mRPrm;
/* 0x08 */ cCcD_Obj* mHitObj;
/* 0x0C */ void* vtable;
/* 0x0C vtable */
public:
cCcD_ObjCommonBase() { ct(); }
/* 8008409C */ virtual ~cCcD_ObjCommonBase() {}
/* 802639B0 */ void ct();
void setSPrm(s32 sprm) { mSPrm = sprm; }
s32 getSPrm() const { return mSPrm; }
void setRPrm(s32 rprm) { mRPrm = rprm; }
s32 getRPrm() const { return mRPrm; }
cCcD_Obj* getHitObj() { return mHitObj; }
u32 MskSPrm(u32 mask) const { return mSPrm & mask; }
};
STATIC_ASSERT(0x10 == sizeof(cCcD_ObjCommonBase));
class cCcD_ObjAt : public cCcD_ObjCommonBase {
public:
/* 80084040 */ ~cCcD_ObjAt();
cCcD_ObjAt() { mType = 0; }
/* 80084040 */ virtual ~cCcD_ObjAt() {}
/* 8026483C */ void SetHit(cCcD_Obj*);
/* 8026484C */ void Set(cCcD_SrcObjAt const&);
/* 80264868 */ void ClrHit();
int GetType() const { return mType; }
u32 GetGrp() const { return MskSPrm(0x1E); }
bool ChkSet() const { return MskSPrm(1); }
u8 GetAtp() const { return mAtp; }
u32 MskType(u32 msk) const { return mType & msk; }
private:
protected:
/* 0x10 */ int mType;
/* 0x14 */ u8 mAtp;
};
@@ -286,12 +321,15 @@ STATIC_ASSERT(0x18 == sizeof(cCcD_ObjAt));
class cCcD_ObjTg : public cCcD_ObjCommonBase {
public:
/* 80083FE4 */ ~cCcD_ObjTg();
cCcD_ObjTg() { ct(); }
/* 80083FE4 */ virtual ~cCcD_ObjTg() {}
/* 80264880 */ void Set(cCcD_SrcObjTg const&);
/* 80264894 */ void SetGrp(u32);
/* 802648B0 */ void ClrHit();
/* 802648C8 */ void SetHit(cCcD_Obj*);
int GetType() const { return mType; }
u32 GetGrp() const { return MskSPrm(0x1E); }
bool ChkSet() const { return MskSPrm(1); }
private:
/* 0x10 */ int mType;
@@ -301,27 +339,55 @@ STATIC_ASSERT(0x14 == sizeof(cCcD_ObjTg));
class cCcD_ObjCo : public cCcD_ObjCommonBase {
public:
/* 80083F88 */ ~cCcD_ObjCo();
/* 80083F88 */ virtual ~cCcD_ObjCo() {}
/* 802648D8 */ void SetHit(cCcD_Obj*);
/* 802648E8 */ void ClrHit();
/* 80264900 */ void SetIGrp(u32);
/* 8026491C */ void SetVsGrp(u32);
u32 GetGrp() const { return MskSPrm(0x1E); }
bool ChkSet() const { return MskSPrm(1); }
u32 GetVsGrp() const { return MskSPrm(0x70); }
u32 GetIGrp() const { return MskSPrm(0xE); }
u32 ChkNoCrr() const { return MskSPrm(0x100); }
u32 ChkSph3DCrr() const { return MskSPrm(0x80); }
};
STATIC_ASSERT(0x10 == sizeof(cCcD_ObjCo));
class cCcD_ObjHitInf {
private:
protected:
/* 0x000 */ cCcD_ObjAt mObjAt;
/* 0x018 */ cCcD_ObjTg mObjTg;
/* 0x02C */ cCcD_ObjCo mObjCo;
/* 0x03C vtable */
public:
/* 80083EC8 */ virtual ~cCcD_ObjHitInf();
/* 80083EC8 */ virtual ~cCcD_ObjHitInf() {}
/* 802639C4 */ void Set(cCcD_SrcObjHitInf const&);
cCcD_ObjAt& GetObjAt() { return mObjAt; }
cCcD_ObjTg& GetObjTg() { return mObjTg; }
cCcD_ObjCo& GetObjCo() { return mObjCo; }
u32 GetTgGrp() const { return mObjTg.GetGrp(); }
u32 GetAtGrp() const { return mObjAt.GetGrp(); }
u32 GetCoGrp() const { return mObjCo.GetGrp(); }
int GetTgType() const { return mObjTg.GetType(); }
int GetAtType() const { return mObjAt.GetType(); }
bool ChkTgSet() const { return mObjTg.ChkSet(); }
bool ChkAtSet() const { return mObjAt.ChkSet(); }
bool ChkCoSet() const { return mObjCo.ChkSet(); }
u32 ChkCoSameActorHit() const { return mObjCo.MskSPrm(0x400); }
u32 GetCoVsGrp() const { return mObjCo.GetVsGrp(); }
u32 GetCoIGrp() const { return mObjCo.GetIGrp(); }
u8 GetAtAtp() const { return mObjAt.GetAtp(); }
u32 ChkAtNoTgHitInfSet() const { return mObjAt.MskSPrm(0x20); }
u32 ChkTgNoAtHitInfSet() const { return mObjTg.MskSPrm(0x20); }
u32 ChkCoNoCoHitInfSet() const { return mObjCo.MskSPrm(0x200); }
bool ChkTgNoSlingHitInfSet() const { return mObjTg.MskSPrm(0x40); }
void SetAtHit(cCcD_Obj* obj) { mObjAt.SetHit(obj); }
void SetTgHit(cCcD_Obj* obj) { mObjTg.SetHit(obj); }
void SetCoHit(cCcD_Obj* obj) { mObjCo.SetHit(obj); }
bool ChkAtType(u32 type) const { return mObjAt.MskType(type); }
u32 ChkCoNoCrr() const { return mObjCo.ChkNoCrr(); }
u32 ChkCoSph3DCrr() const { return mObjCo.ChkSph3DCrr(); }
}; // Size = 0x40
@@ -331,18 +397,20 @@ class cCcD_GObjInf;
class cCcD_Obj : public cCcD_ObjHitInf {
public:
/* 80083DE0 */ virtual ~cCcD_Obj();
/* 800851A4 */ virtual cCcD_GObjInf const* GetGObjInf() const;
/* 800847C8 */ virtual cCcD_GObjInf* GetGObjInf();
/* 80084BE8 */ virtual cCcD_ShapeAttr const* GetShapeAttr() const;
/* 80085130 */ virtual cCcD_ShapeAttr* GetShapeAttr();
/* 80084BF0 */ virtual void Draw(_GXColor const&);
cCcD_Obj() { ct(); }
/* 80083DE0 */ virtual ~cCcD_Obj() {}
/* 800851A4 */ virtual cCcD_GObjInf const* GetGObjInf() const { return NULL; }
/* 800847C8 */ virtual cCcD_GObjInf* GetGObjInf() { return NULL; }
/* 80084BE8 */ virtual cCcD_ShapeAttr const* GetShapeAttr() const { return NULL; }
/* 80085130 */ virtual cCcD_ShapeAttr* GetShapeAttr() { return NULL; }
/* 80084BF0 */ virtual void Draw(_GXColor const&) {}
/* 80263A10 */ void ct();
/* 80263A1C */ void Set(cCcD_SrcObj const&);
fopAc_ac_c* GetAc();
cCcD_Stts* GetStts() { return mStts; }
cCcD_DivideInfo& GetDivideInfo() { return mDivideInfo; }
int ChkBsRevHit() const { return field_0x40 & 2; }
private:
/* 0x040 */ int field_0x40;
@@ -354,12 +422,13 @@ STATIC_ASSERT(0x58 == sizeof(cCcD_Obj));
class cCcD_GObjInf : public cCcD_Obj {
public:
/* 80083CE8 */ virtual ~cCcD_GObjInf();
/* 800851A0 */ virtual cCcD_GObjInf* GetGObjInf();
/* 80084BE4 */ virtual cCcD_GObjInf const* GetGObjInf() const;
/* 80085138 */ virtual void ClrAtHit();
/* 80085158 */ virtual void ClrTgHit();
/* 8008517C */ virtual void ClrCoHit();
cCcD_GObjInf() {}
/* 80083CE8 */ virtual ~cCcD_GObjInf() {}
/* 80085138 */ virtual void ClrAtHit() { mObjAt.ClrHit(); }
/* 80085158 */ virtual void ClrTgHit() { mObjTg.ClrHit(); }
/* 8008517C */ virtual void ClrCoHit() { mObjCo.ClrHit(); }
/* 80084BE4 */ virtual cCcD_GObjInf const* GetGObjInf() const { return this; }
/* 800851A0 */ virtual cCcD_GObjInf* GetGObjInf() { return this; }
};
STATIC_ASSERT(0x58 == sizeof(cCcD_GObjInf));
+3 -3
View File
@@ -32,9 +32,9 @@ public:
/* 80264C5C */ void ClrCoHitInf();
/* 80264CF0 */ void ClrTgHitInf();
/* 80264D90 */ void ClrAtHitInf();
/* 80264E2C */ int ChkNoHitAtTg(cCcD_Obj*, cCcD_Obj*);
/* 80264E2C */ bool ChkNoHitAtTg(cCcD_Obj*, cCcD_Obj*);
/* 80264F40 */ void ChkAtTg();
/* 8026515C */ void ChkNoHitCo(cCcD_Obj*, cCcD_Obj*);
/* 8026515C */ bool ChkNoHitCo(cCcD_Obj*, cCcD_Obj*);
/* 80265230 */ void ChkCo();
/* 802653A0 vt[2] */ virtual void CalcTgPlusDmg(cCcD_Obj*, cCcD_Obj*, cCcD_Stts*, cCcD_Stts*);
/* 802653C8 */ void SetAtTgCommonHitInf(cCcD_Obj*, cCcD_Obj*, cXyz*);
@@ -55,7 +55,7 @@ public:
cCcD_GObjInf const*, cCcD_Stts*,
cCcD_Stts*, cCcD_GStts*, cCcD_GStts*);
/* 80265E10 vt[8] */ virtual bool ChkNoHitGCo(cCcD_Obj*, cCcD_Obj*);
/* 80030BDC vt[9] */ virtual ~cCcS();
/* 80030BDC vt[9] */ virtual ~cCcS() {}
/* 80265E18 vt[10] */ virtual void MoveAfterCheck();
/* 80265DF4 vt[11] */ virtual void SetCoGCorrectProc(cCcD_Obj*, cCcD_Obj*);
}; // Size = 0x284C
-1
View File
@@ -12,7 +12,6 @@ public:
/* 0x0C */ cXyz mMax;
/* 0x18 vtable */
virtual void test(); // temp to build OK, remove later
virtual ~cM3dGAab() {}
void Set(const cXyz*, const cXyz*);
bool CrossY(const cXyz*) const;
+7 -4
View File
@@ -13,12 +13,15 @@ struct cM3dGCylS {
}; // Size = 0x14
class cM3dGSph;
class cM3dGCyl : public cM3dGCylS {
/* 0x14 vtable */
class cM3dGCyl {
public:
/* 0x00 */ cXyz mCenter;
/* 0x0C */ f32 mRadius;
/* 0x10 */ f32 mHeight;
/* 0x14 vtable */
cM3dGCyl() {}
cM3dGCyl(const cXyz*, f32, f32);
virtual void test(); // temp to build OK, remove later
virtual ~cM3dGCyl();
virtual ~cM3dGCyl() {}
void Set(const cM3dGCylS&);
void Set(const cXyz&, f32, f32);
void SetC(const cXyz&);
+1 -1
View File
@@ -9,7 +9,7 @@ class cM3dGPla {
public:
cXyz mNormal;
f32 mD;
cM3dGPla();
cM3dGPla() {}
cM3dGPla(const cXyz*, f32);
virtual ~cM3dGPla() {}
bool crossInfLin(const cXyz&, const cXyz&, cXyz&) const;
+2 -2
View File
@@ -18,8 +18,8 @@ public:
/* 0x0C */ f32 mRadius;
/* 0x10 vtable */
virtual void test(); // temp to build OK, remove later
virtual ~cM3dGSph();
cM3dGSph() {}
virtual ~cM3dGSph() {}
void SetC(const cXyz&);
void Set(const cXyz&, f32);
void Set(const cM3dGSphS&);
+1
View File
@@ -15,6 +15,7 @@ public:
Vec mB;
Vec mC;
cM3dGTri() {}
virtual ~cM3dGTri() {}
bool cross(const cM3dGCyl*, Vec*) const;
void setPos(const Vec*, const Vec*, const Vec*);
-6
View File
@@ -75,12 +75,6 @@ struct cXyz : Vec {
x = f;
}
void set(f32 pX, f32 pY, f32 pZ) {
x = pX;
y = pY;
z = pZ;
}
void setMin(const cXyz& other) {
if (x > other.x) {
x = other.x;
+26 -24
View File
@@ -13,30 +13,35 @@ struct cBgW_BgId {
/* 802681D4 */ void ChkUsed() const;
};
#pragma pack(push, 1)
class cBgS_ChkElm {
cBgS_ChkElm(void);
~cBgS_ChkElm();
void Init();
void Regist2(dBgW_Base*, unsigned int, void*);
void Release();
private:
/* 0x00 */ dBgW_Base* bgw_base_pointer;
/* 0x04 */ u8 used;
/* 0x05 */ u8 padding[3];
/* 0x08 */ u32 field_0x8;
/* 0x0C */ void* actor_pointer;
/* 0x10 */ u32 field_0x10;
};
#pragma pack(pop)
/* 0x10 vtable */
public:
cBgS_ChkElm(void) { this->Init(); }
virtual ~cBgS_ChkElm() {}
void Init();
virtual void Regist2(dBgW_Base*, unsigned int, void*);
void Release();
}; // Size = 0x14
STATIC_ASSERT(sizeof(cBgS_ChkElm) == 0x14);
#pragma pack(push, 1)
class cBgS {
~cBgS();
private:
/* 0x0000 */ cBgS_ChkElm cbgs_elements[256];
/* 0x1400 vtable */
public:
cBgS() {}
virtual ~cBgS() {}
void Regist(dBgW_Base*, unsigned int, void*);
void Release(dBgW_Base*);
void Ct();
void Dt();
virtual void Ct();
virtual void Dt();
void LineCross(cBgS_LinChk*);
void GroundCross(cBgS_GndChk*);
void ConvDzb(void*);
@@ -48,10 +53,7 @@ class cBgS {
void GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const;
void ShdwDraw(cBgS_ShdwDraw*);
void GetGrpInf(cBgS_PolyInfo const&) const;
/* 0x0000 */ cBgS_ChkElm cbgs_elements[256];
};
#pragma pack(pop)
}; // Size = 0x1404
class dBgS_HIO {
/* 0x00 */ u8 vtable[4];
@@ -66,10 +68,11 @@ class dBgS_HIO {
};
class dBgS_Acch;
#pragma pack(push, 1)
class dBgS {
class dBgS : public cBgS {
public:
~dBgS();
dBgS() {}
~dBgS() {}
void Ct();
void Dt();
void ClrMoveFlag();
@@ -110,9 +113,8 @@ public:
void PushPullCallBack(cBgS_PolyInfo const&, fopAc_ac_c*, s16, dBgW_Base::PushPullLabel);
private:
/* 0x0000 */ cBgS cbgs;
/* 0x1400 */ void* vtable;
// /* 0x0000 */ cBgS cbgs;
// /* 0x1400 */ void* vtable;
};
#pragma pack(pop)
#endif /* D_BG_D_BG_S_H */
-2
View File
@@ -95,7 +95,6 @@ struct cBgW {
/* 8007B964 */ void ChkMoveBg() const;
};
#pragma pack(push, 1)
class dBgW_Base {
public:
enum PushPullLabel {};
@@ -118,7 +117,6 @@ private:
s16 field_0xc;
s16 field_0xe;
};
#pragma pack(pop)
class dBgW {
public:
+110 -76
View File
@@ -4,30 +4,61 @@
#include "SSystem/SComponent/c_cc_d.h"
#include "dolphin/types.h"
struct dCcD_SrcTri {};
struct dCcD_SrcGAtTgCoCommonBase {
/* 0x00 */ u32 mGFlag;
};
struct dCcD_SrcSph {};
struct dCcD_SrcGObjAt {
u8 mSe;
u8 mHitMark;
u8 mSpl;
u8 mMtrl;
dCcD_SrcGAtTgCoCommonBase mBase;
};
struct dCcD_SrcGObjTg {};
struct dCcD_SrcGObjTg {
u8 mSe;
u8 mHitMark;
u8 mSpl;
u8 mMtrl;
dCcD_SrcGAtTgCoCommonBase mBase;
};
struct dCcD_SrcGObjInf {};
struct dCcD_SrcGObjInf {
cCcD_SrcObj mObj;
dCcD_SrcGObjAt mGObjAt;
dCcD_SrcGObjTg mGObjTg;
dCcD_SrcGAtTgCoCommonBase mGObjCo;
};
struct dCcD_SrcGObjAt {};
struct dCcD_SrcSph {
dCcD_SrcGObjInf mObjInf;
cM3dGSphS mSph;
};
struct dCcD_SrcGAtTgCoCommonBase {};
struct dCcD_SrcTri {
dCcD_SrcGObjInf mObjInf;
};
struct dCcD_SrcCyl {};
struct dCcD_SrcCyl {
dCcD_SrcGObjInf mObjInf;
cM3dGCylS mCyl;
};
struct dCcD_SrcCps {};
struct dCcD_SrcCps {
dCcD_SrcGObjInf mObjInf;
cM3dGCpsS mCps;
};
class dCcD_GStts : cCcD_GStts {
class dCcD_GStts : public cCcD_GStts {
public:
/* 80083760 */ dCcD_GStts();
/* 800837F8 */ void Ct();
/* 80083830 */ void Move();
/* 8008523C */ ~dCcD_GStts();
/* 8008523C */ virtual ~dCcD_GStts() {}
void ClrTg() { mTg = 0; }
private:
// private:
/* 0x04 */ u8 mAt;
/* 0x05 */ u8 mTg;
/* 0x06 */ u8 mRoomId;
@@ -39,50 +70,55 @@ private:
/* 0x1C */ int field_0x1C;
}; // Size = 0x20
// class dCcD_Stts : cCcD_Stts {
class dCcD_Stts { // TODO: vtables get messed up :(
class dCcD_Stts : public cCcD_Stts, public dCcD_GStts {
public:
dCcD_Stts() {}
/* 80083850 */ cCcD_GStts* GetGStts();
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
/* 800838F4 */ void Ct();
/* 80083928 */ void ClrAt();
/* 80083934 */ void ClrTg();
/* 800851AC */ ~dCcD_Stts();
/* 800851AC */ virtual ~dCcD_Stts() {}
private:
/* 0x00 */ u8 _0[0x1C]; // TODO, should be covered by inheritance
/* 0x1C */ dCcD_GStts mGStts;
}; // Size = 0x3C
class dCcD_GAtTgCoCommonBase {
public:
/* 8008364C */ void ClrActorInfo();
/* 80083660 */ void ct();
/* 80083678 */ void SetHitApid(unsigned int);
/* 80083688 */ void GetAc();
/* 80083704 */ void Set(dCcD_SrcGAtTgCoCommonBase const&);
/* 80083718 */ void SetEffCounterTimer();
/* 80083724 */ void SubtractEffCounter();
/* 80083748 */ void ChkEffCounter();
/* 80083CA0 */ ~dCcD_GAtTgCoCommonBase();
private:
/* 0x00 */ void* mBase; // type dCcD_SrcGAtTgCoCommonBase*
/* 0x00 */ u32 mGFlag;
/* 0x04 */ u32 mRPrm;
/* 0x08 */ u32 field_0x08;
/* 0x0C */ u32 field_0x0C;
/* 0x0C */ u32 mApid;
/* 0x10 */ fopAc_ac_c* mAc;
/* 0x14 */ s8 mEffCounter;
/* 0x15 */ u8 field_0x15[3];
/* 0x18 */ void* vtable;
/* 0x18 vtable */
public:
dCcD_GAtTgCoCommonBase() { ct(); }
/* 8008364C */ void ClrActorInfo();
/* 80083660 */ void ct();
/* 80083678 */ void SetHitApid(unsigned int);
/* 80083688 */ fopAc_ac_c* GetAc();
/* 80083704 */ void Set(dCcD_SrcGAtTgCoCommonBase const&);
/* 80083718 */ void SetEffCounterTimer();
/* 80083724 */ void SubtractEffCounter();
/* 80083748 */ bool ChkEffCounter();
/* 80083CA0 */ virtual ~dCcD_GAtTgCoCommonBase() {}
void ResetEffCounter() { mEffCounter = 0; }
u32 GetGFlag() const { return mGFlag; }
u32 GetRPrm() const { return mRPrm; }
u32 MskSPrm(u32 mask) const { return mGFlag & mask; }
bool ChkSPrm(u32 mask) const { return MskSPrm(mask); }
}; // Size = 0x1C
class dCcD_GObjAt : dCcD_GAtTgCoCommonBase {
class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase {
public:
/* 80083944 */ void Set(dCcD_SrcGObjAt const&);
/* 80083C44 */ ~dCcD_GObjAt();
/* 80083C44 */ virtual ~dCcD_GObjAt() {}
void SetVec(cXyz& vec) { mVec = vec; }
cXyz& GetVec() { return mVec; }
private:
// private:
/* 0x1C */ u8 mSe;
/* 0x1D */ u8 mMtrl;
/* 0x1E */ u8 mHitMark;
@@ -91,10 +127,12 @@ private:
/* 0x2C */ cXyz mVec;
/* 0x38 */ cXyz mRVec;
}; // Size = 0x44
class dCcD_GObjTg : dCcD_GAtTgCoCommonBase {
class dCcD_GObjTg : public dCcD_GAtTgCoCommonBase {
public:
/* 800839A0 */ void Set(dCcD_SrcGObjTg const&);
/* 80083BE8 */ ~dCcD_GObjTg();
/* 80083BE8 */ virtual ~dCcD_GObjTg() {}
void SetVec(cXyz& vec) { mVec = vec; }
cXyz& GetVec() { return mVec; }
private:
/* 0x1C */ u8 mSe;
@@ -107,89 +145,85 @@ private:
/* 0x44 */ s16* mShieldFrontRangeYAngle;
/* 0x48 */ s16 mShieldRange;
}; // Size = 0x4A ?
class dCcD_GObjCo : dCcD_GAtTgCoCommonBase {
class dCcD_GObjCo : public dCcD_GAtTgCoCommonBase {
public:
/* 80083B8C */ ~dCcD_GObjCo();
private:
/* 80083B8C */ virtual ~dCcD_GObjCo() {}
}; // Size = 0x1C ?
class dCcD_GObjInf : cCcD_GObjInf {
class dCcD_GObjInf : public cCcD_GObjInf {
public:
/* 80083A28 */ dCcD_GObjInf();
/* 800840E4 */ ~dCcD_GObjInf();
/* 800840E4 */ virtual ~dCcD_GObjInf();
/* 80084268 */ cCcD_GObjInf* GetGObjInf();
/* 8008426C */ void ClrAtHit();
/* 800842C0 */ void ChkAtHit();
/* 8008426C */ virtual void ClrAtHit();
/* 800842C0 */ s32 ChkAtHit();
/* 80084318 */ void ResetAtHit();
/* 80084358 */ void GetAtHitObj();
/* 800843A8 */ void GetAtHitGObj();
/* 800843DC */ void ChkAtNoGuard();
/* 80084358 */ cCcD_Obj* GetAtHitObj();
/* 800843A8 */ cCcD_GObjInf* GetAtHitGObj();
/* 800843DC */ bool ChkAtNoGuard();
/* 800843FC */ void ClrTgHit();
/* 80084460 */ void ChkTgHit();
/* 80084460 */ bool ChkTgHit();
/* 800844B8 */ void ResetTgHit();
/* 800844F8 */ void GetTgHitObj();
/* 80084548 */ void GetTgHitGObj();
/* 8008457C */ void GetTgHitObjSe();
/* 800845B0 */ void getHitSeID(u8, int);
/* 800844F8 */ cCcD_Obj* GetTgHitObj();
/* 80084548 */ dCcD_GObjInf* GetTgHitGObj();
/* 8008457C */ u8 GetTgHitObjSe();
/* 800845B0 */ static u32 getHitSeID(u8, int);
/* 8008460C */ void ClrCoHit();
/* 80084658 */ void ChkCoHit();
/* 80084658 */ bool ChkCoHit();
/* 800846B0 */ void ResetCoHit();
/* 800846F0 */ void GetCoHitObj();
/* 800846F0 */ cCcD_Obj* GetCoHitObj();
/* 80084740 */ void Set(dCcD_SrcGObjInf const&);
static u8 const m_hitSeID[96];
void SetAtVec(cXyz& vec) { mGObjAt.SetVec(vec); }
bool ChkAtNoMass() const { return mGObjAt.ChkSPrm(8); }
private:
static u32 const m_hitSeID[24];
protected:
/* 0x058 */ dCcD_GObjAt mGObjAt;
/* 0x09C */ dCcD_GObjTg mGObjTg;
/* 0x0E8 */ dCcD_GObjCo mGObjCo;
}; // Size = 0x104
class dCcD_Cyl : dCcD_GObjInf {
class dCcD_Cyl : public dCcD_GObjInf, public cCcD_CylAttr {
public:
/* 800848B4 */ void Set(dCcD_SrcCyl const&);
/* 800848F8 */ cCcD_ShapeAttr* GetShapeAttr();
/* 80084908 */ void StartCAt(cXyz&);
/* 80084954 */ void MoveCAt(cXyz&);
/* 800849C4 */ void MoveCTg(cXyz&);
/* 80084D60 */ ~dCcD_Cyl();
dCcD_Cyl();
private:
/* 0x104 */ cCcD_CylAttr mCylAttr;
/* 80084D60 */ virtual ~dCcD_Cyl() {}
dCcD_Cyl() {}
}; // Size = 0x13C
class dCcD_Sph : dCcD_GObjInf {
class dCcD_Sph : public dCcD_GObjInf, public cCcD_SphAttr {
public:
dCcD_Sph() {}
/* 80084A34 */ void Set(dCcD_SrcSph const&);
/* 80084A78 */ void StartCAt(cXyz&);
/* 80084AC4 */ void MoveCAt(cXyz&);
/* 80084B34 */ cCcD_ShapeAttr* GetShapeAttr();
/* 80084BF4 */ ~dCcD_Sph();
private:
/* 0x104 */ cCcD_SphAttr mSphAttr;
/* 80084B34 */ virtual cCcD_ShapeAttr* GetShapeAttr();
/* 80084BF4 */ virtual ~dCcD_Sph() {}
}; // Size = 0x138
class dCcD_Cps : dCcD_GObjInf {
class dCcD_Cps : public dCcD_GObjInf, public cCcD_CpsAttr {
public:
/* 800847D0 */ void Set(dCcD_SrcCps const&);
/* 80084814 */ cCcD_ShapeAttr* GetShapeAttr();
/* 80084824 */ void CalcAtVec();
/* 80084854 */ void CalcTgVec();
/* 8008506C */ ~dCcD_Cps();
dCcD_Cps();
private:
/* 0x104 */ cCcD_CpsAttr mCpsAttr;
/* 8008506C */ virtual ~dCcD_Cps() {}
dCcD_Cps() {}
}; // Size = 0x144
class dCcD_Tri {
class dCcD_Tri : public dCcD_GObjInf, public cCcD_TriAttr {
public:
/* 80084884 */ void Set(dCcD_SrcTri const&);
/* 800848A4 */ cCcD_ShapeAttr* GetShapeAttr();
/* 80084EF4 */ ~dCcD_Tri();
/* 80084EF4 */ virtual ~dCcD_Tri() {}
dCcD_Tri() {}
};
dCcD_GObjInf* dCcD_GetGObjInf(cCcD_Obj* param_0);
#endif /* D_CC_D_CC_D_H */
+50 -17
View File
@@ -4,24 +4,44 @@
#include "SSystem/SComponent/c_cc_d.h"
#include "dolphin/types.h"
typedef void (*dCcMassS_ObjCallback)(fopAc_ac_c*, cXyz*, u32);
class dCcMassS_Obj {
private:
/* 0x00 */ cCcD_Obj* mpObj;
/* 0x04 */ u8 mPriority;
/* 0x08 */ dCcMassS_ObjCallback mpCallback;
/* 0x0C */ cCcD_DivideInfo mDivideInfo;
/* 0x1C vtable */
public:
dCcMassS_Obj();
~dCcMassS_Obj();
private:
u8 field_0x0[12];
cCcD_DivideInfo cccd_divideinfo;
void* vtable;
virtual ~dCcMassS_Obj() {}
/* 800852E0 */ void Set(cCcD_Obj*, u8, void (*)(fopAc_ac_c*, cXyz*, u32));
/* 800852F0 */ void Clear();
cCcD_Obj* GetObj() { return mpObj; }
u8 GetPriority() const { return mPriority; }
dCcMassS_ObjCallback GetCallback() const { return mpCallback; }
cCcD_DivideInfo& GetDivideInfo() { return mDivideInfo; }
}; // Size = 0x20
STATIC_ASSERT(0x20 == sizeof(dCcMassS_Obj));
class dCcMassS_Mng {
public:
dCcMassS_Mng(void);
~dCcMassS_Mng();
class dCcMassS_HitInf {
private:
/* 0x00 */ cCcD_Obj* mpArea;
/* 0x04 */ cCcD_Obj* mpAtObj;
/* 0x08 */ cCcD_Obj* mpCoObj;
/* 0x0C */ f32 mCoHitLen;
public:
/* 80085334 */ void ClearPointer();
void SetAreaHitObj(cCcD_Obj* obj) { mpArea = obj; }
void SetCoHitObj(cCcD_Obj* obj) { mpCoObj = obj; }
void SetAtHitObj(cCcD_Obj* obj) { mpAtObj = obj; }
void SetCoHitLen(f32 len) { mCoHitLen = len; }
};
class dCcMassS_Mng {
public:
/* 0x0000 */ cCcD_DivideArea mDivideArea;
/* 0x0040 */ s32 mMassObjCount;
@@ -29,16 +49,29 @@ public:
/* 0x0184 */ s32 mMassAreaCount;
/* 0x0188 */ dCcMassS_Obj mMassAreas[2];
/* 0x01C8 */ cCcD_CylAttr mCylAttr;
/* 0x0200 */ u8 field_0x200[2];
/* 0x0200 */ u8 field_0x200;
/* 0x0200 */ u8 field_0x201;
/* 0x0202 */ u8 field_0x202;
/* 0x0203 */ u8 field_0x203;
/* 0x0204 */ cXyz mCamTopPos;
/* 0x0203 */ u8 mResultCam;
/* 0x0204 */ Vec mCamTopPos;
/* 0x0210 */ f32 mCamTopDist;
/* 0x0214 */ cXyz mCamBottomPos;
/* 0x0214 */ Vec mCamBottomPos;
/* 0x0220 */ f32 mCamBottomDist;
/* 0x0224 */ cCcD_CpsAttr cccd_cpsattr;
/* 0x0264 */ cCcD_DivideInfo cccd_divideinfo;
/* 0x0274 */ void* vtable;
/* 0x0224 */ cCcD_CpsAttr mCpsAttr;
/* 0x0264 */ cCcD_DivideInfo mDivideInfo;
/* 0x0274 vtable */
public:
dCcMassS_Mng(void);
virtual ~dCcMassS_Mng() {}
/* 800855E4 */ void Ct();
/* 80085630 */ void SetAttr(f32, f32, u8, u8);
/* 80085690 */ void Prepare();
/* 800858AC */ u32 Chk(cXyz*, fopAc_ac_c**, dCcMassS_HitInf*);
/* 80085CF0 */ void Clear();
/* 80085D98 */ void Set(cCcD_Obj*, u8);
/* 80085E6C */ void SetCam(cM3dGCps const&);
/* 80085EB0 */ u8 GetResultCam() const;
/* 80085EB8 */ void GetCamTopPos(Vec*);
};
STATIC_ASSERT(sizeof(dCcMassS_Mng) == 0x278);
+6 -5
View File
@@ -6,15 +6,15 @@
#include "d/cc/d_cc_mass_s.h"
#include "dolphin/types.h"
class dCcS {
class dCcS : public cCcS {
public:
/* 8002FF40 */ ~dCcS();
dCcS() {}
/* 80085ED4 */ void Ct();
/* 80085F08 */ void Dt();
/* 80085F28 */ void ChkShieldFrontRange(cCcD_Obj*, cCcD_Obj*, int, cXyz const*);
/* 800860F8 */ void ChkShield(cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*, dCcD_GObjInf*, cXyz const*);
/* 800861B0 */ void CalcTgPlusDmg(cCcD_Obj*, cCcD_Obj*, cCcD_Stts*, cCcD_Stts*);
/* 800861B4 */ void ChkAtTgHitAfterCross(bool, bool, cCcD_GObjInf const*, cCcD_GObjInf const*,
/* 800861B4 */ bool ChkAtTgHitAfterCross(bool, bool, cCcD_GObjInf const*, cCcD_GObjInf const*,
cCcD_Stts*, cCcD_Stts*, cCcD_GStts*, cCcD_GStts*);
/* 80086240 */ void SetCoGObjInf(bool, bool, cCcD_GObjInf*, cCcD_GObjInf*, cCcD_Stts*,
cCcD_Stts*, cCcD_GStts*, cCcD_GStts*);
@@ -37,13 +37,14 @@ public:
/* 800872D0 */ void Draw();
/* 8008730C */ void MassClear();
/* 80087330 */ void ChkAtTgMtrlHit(u8, u8);
/* 8008734C */ void ChkNoHitGAtTg(cCcD_GObjInf const*, cCcD_GObjInf const*, cCcD_GStts*,
/* 8008734C */ bool ChkNoHitGAtTg(cCcD_GObjInf const*, cCcD_GObjInf const*, cCcD_GStts*,
cCcD_GStts*);
/* 8002FF40 */ virtual ~dCcS() {}
static u8 m_mtrl_hit_tbl[64];
private:
/* 0x0000 */ cCcS mCCcS;
// /* 0x0000 */ cCcS mCCcS;
/* 0x284C */ dCcMassS_Mng mMass_Mng;
}; // Size = 0x2AC4
+48 -54
View File
@@ -24,22 +24,37 @@ struct dTimer_c {
/* 8025D9E0 */ void deleteRequest();
};
#pragma pack(push, 1)
class __d_timer_info_c {
public:
__d_timer_info_c() {
mTimerMode = -1;
mTimerLimitTimeMs = 0;
mTimerNowTimeMs = 0;
mTimerPtr = NULL;
}
dTimer_c* mTimerPtr;
s32 mTimerNowTimeMs;
s32 mTimerLimitTimeMs;
s32 mTimerMode;
u8 mTimerType;
};
class dComIfG_camera_info_class {
public:
dComIfG_camera_info_class(void);
/* 80030208 */ ~dComIfG_camera_info_class();
dComIfG_camera_info_class(void) {}
/* 80030208 */ ~dComIfG_camera_info_class() {}
private:
u8 field_0x0[12];
cXyz field_0xc;
cXyz field_0x18;
u8 field_0x24[0x14];
};
#pragma pack(pop)
STATIC_ASSERT(sizeof(dComIfG_camera_info_class) == 0x38);
#pragma pack(push, 1)
class dComIfG_play_c {
public:
dComIfG_play_c() { this->ct(); }
void ct(void);
void init(void);
void itemInit(void);
@@ -72,12 +87,12 @@ public:
void setWarpItemData(const char*, cXyz, s16, s8, u8, u8);
void setSelectItem(int, u8);
void setSelectItemTest(int, u8);
~dComIfG_play_c();
~dComIfG_play_c() {}
// inlines
bool& isPauseFlag() { return mPauseFlag; }
void* getMsgObjectClass() { return mMsgObjectClass; }
dStage_roomControl_c* getRoomControl() { return mRoomControl; }
dStage_roomControl_c* getRoomControl() { return &mRoomControl; }
dEvt_control_c getEvent() { return mEvent; }
daHorse_c* getHorseActor() { return mHorseActor; }
u8& getItemLifeCountType() { return mItemLifeCountType; }
@@ -134,7 +149,7 @@ public:
/* 0x03ED6 */ dStage_nextStage_c mNextStage;
/* 0x03EE7 */ u8 field_0x3ee7; // probably padding
/* 0x03EE8 */ dStage_stageDt_c mStageData;
/* 0x03F8C */ dStage_roomControl_c* mRoomControl;
/* 0x03F8C */ dStage_roomControl_c mRoomControl;
/* 0x03F90 */ dEvt_control_c mEvent;
/* 0x040C0 */ dEvent_manager_c mEvtManager;
/* 0x04780 */ dAttention_c mAttention;
@@ -171,21 +186,8 @@ public:
/* 0x04E0C */ u8 mWindowNum;
/* 0x04E0D */ u8 mLayerOld;
/* 0x04E0E */ u16 mStatus;
/* 0x04E10 */ dDlst_window_c mWindow;
/* 0x04E3C */ dComIfG_camera_info_class* mCameraInfo;
/* 0x04E40 */ s8 mCameraWinID;
/* 0x04E41 */ s8 mCameraPlayer1ID;
/* 0x04E42 */ s8 mCameraPlayer2ID;
/* 0x04E43 */ u8 field_0x4e43;
/* 0x04E44 */ int mCameraAttentionStatus;
/* 0x04E48 */ float mCameraZoomScale;
/* 0x04E4C */ float mCameraZoomForcus;
/* 0x04E50 */ void* mCameraParamFileName;
/* 0x04E54 */ cXyz mCameraPos;
/* 0x04E60 */ cXyz mCameraTarget;
/* 0x04E6C */ float mCameraUnk1;
/* 0x04E70 */ s16 mCameraUnk2;
/* 0x04E72 */ s16 field_0x4e72;
/* 0x04E10 */ dDlst_window_c mWindow[1];
/* 0x04E3C */ dComIfG_camera_info_class mCameraInfo[1];
/* 0x04E74 */ daAlink_c* mPlayer;
/* 0x04E78 */ s8 mPlayerCameraID[4];
/* 0x04E7C */ daAlink_c* mPlayerPtr;
@@ -351,26 +353,35 @@ public:
/* 0x04FDC */ fopAc_ac_c* mMesgCamInfoActor10;
/* 0x04FE0 */ int mPlayerStatus;
/* 0x04FE4 */ u8 field_0x4fe4[0x14];
/* 0x04FF8 */ dTimer_c* mTimerPtr;
/* 0x04FFC */ int mTimerNowTimeMs;
/* 0x05000 */ int mTimerLimitTimeMs;
/* 0x05004 */ int mTimerMode;
/* 0x05008 */ u8 mTimerType;
/* 0x04FF8 */ __d_timer_info_c mTimerInfo;
/* 0x0500C */ dDlst_window_c* mCurrentWindow;
/* 0x05010 */ void* mCurrentView;
/* 0x05014 */ void* mCurrentViewport;
/* 0x05018 */ void* mCurrentGrafPort;
/* 0x0501C */ void* mItemTable;
/* 0x0501D */ u8 field_0x501d[7];
/* 0x0501D */ u8 field_0x501d[4];
/* 0x05024 */ char mLastPlayStageName[8];
};
#pragma pack(pop)
class dRes_control_c {
public:
dRes_control_c() {}
/* 8003BFB0 */ ~dRes_control_c();
/* 8003C078 */ void setRes(char const*, dRes_info_c*, int, char const*, u8, JKRHeap*);
/* 8003C160 */ void syncRes(char const*, dRes_info_c*, int);
/* 8003C194 */ void deleteRes(char const*, dRes_info_c*, int);
/* 8003C37C */ void getRes(char const*, char const*, dRes_info_c*, int);
private:
/* 0x0000 */ dRes_info_c mResInfos1[0x80];
/* 0x1200 */ dRes_info_c mResInfos2[0x40];
}; // Size: 0x1B00
#pragma pack(push, 1)
class dComIfG_inf_c {
public:
dComIfG_inf_c(void);
~dComIfG_inf_c();
dComIfG_inf_c(void) { this->ct(); }
~dComIfG_inf_c() {}
void ct(void);
// temp for setWarashibeItem
@@ -393,11 +404,8 @@ private:
/* 0x00000 */ dSv_info_c info;
/* 0x00F38 */ dComIfG_play_c play;
/* 0x05F64 */ dDlst_list_c draw_list_list;
/* 0x1C110 */ u8 field_0x1C114[0x1E8];
/* 0x1C2F8 */ dRes_info_c resource_info1;
/* 0x1C31C */ u8 unk19[0x11DC];
/* 0x1D4F8 */ dRes_info_c resource_info2;
/* 0x1D51C */ u8 unk20[0x8DA];
/* 0x1C110 */ u8 field_0x1C114[0x1E8 - 0xA];
/* 0x1C2F8 */ dRes_control_c mResControl;
/* 0x1DDF8 */ u8 field_0x1ddf8;
/* 0x1DDF9 */ u8 mWorldDark;
/* 0x1DDFA */ u8 field_0x1ddfa;
@@ -408,29 +416,15 @@ private:
/* 0x1DE08 */ u8 field_0x1de08;
/* 0x1DE09 */ u8 field_0x1de09;
/* 0x1DE0A */ u8 field_0x1de0a;
u8 _pad[8];
static u8 dComIfG_mTimerInfo[20];
static __d_timer_info_c dComIfG_mTimerInfo;
};
#pragma pack(pop)
class __d_timer_info_c {
public:
__d_timer_info_c() {
field_0xc = -1;
field_0x8 = 0;
field_0x4 = 0;
field_0x0 = 0;
}
u32 field_0x0;
u32 field_0x4;
u32 field_0x8;
u32 field_0xc;
u32 field_0x10;
};
STATIC_ASSERT(122384 == sizeof(dComIfG_inf_c));
// extern dComIfG_inf_c g_dComIfG_gameInfo;
extern dComIfG_inf_c g_dComIfG_gameInfo;
/* void dComIfGp_setItemLifeCount(float, u8);
void dComIfGp_setItemRupeeCount(long);
+20 -14
View File
@@ -11,6 +11,7 @@ struct J3DTransformInfo {};
class dAttHint_c {
public:
dAttHint_c() {}
/* 800738B4 */ void getPId(void*);
/* 800738CC */ void convPId(unsigned int);
/* 800738FC */ void request(fopAc_ac_c*, int);
@@ -25,6 +26,7 @@ private:
class dAttCatch_c {
public:
dAttCatch_c() {}
void convPId(unsigned int);
void init();
void proc();
@@ -43,12 +45,8 @@ private:
}; // Size = 0x14
class dAttParam_c {
public:
/* 80070038 */ dAttParam_c(s32);
/* 80070110 */ ~dAttParam_c();
private:
/* 0x00 */ void* vtable;
/* 0x00 vtable */
/* 0x04 */ u8 field_0x4;
/* 0x05 */ u8 field_0x5;
/* 0x06 */ u16 mFlag;
@@ -66,6 +64,13 @@ private:
/* 0x34 */ float field_0x34;
/* 0x38 */ u8 field_0x38;
/* 0x39 */ u8 field_0x39;
public:
dAttParam_c() {}
/* 80070038 */ dAttParam_c(s32);
/* 80070110 */ virtual ~dAttParam_c();
private:
/* 0x3C */ float field_0x3c;
/* 0x40 */ float field_0x40;
/* 0x44 */ u32 field_0x44;
@@ -89,8 +94,8 @@ private:
#pragma pack(push, 1)
class dAttList_c {
public:
/* 800304D0 */ ~dAttList_c();
/* 8003050C */ dAttList_c();
/* 800304D0 */ ~dAttList_c() {}
/* 8003050C */ dAttList_c() {}
/* 80073864 */ void getActor();
/* 80073898 */ void setActor(fopAc_ac_c*);
@@ -98,13 +103,13 @@ private:
u8 field_0x0[8];
cSAngle angle;
u8 field_0xa[10];
};
}; // Size = 0x14
#pragma pack(pop)
class dAttDraw_c {
public:
/* 8003054C */ ~dAttDraw_c();
/* 800307F0 */ dAttDraw_c();
/* 8003054C */ ~dAttDraw_c() {}
/* 800307F0 */ dAttDraw_c() {}
/* 80072DD8 */ void setAnm(u8, f32);
/* 80072FE8 */ void setAlphaAnm(u8, u8);
/* 80073004 */ void alphaAnm();
@@ -136,15 +141,16 @@ public:
/* 0x175 */ u8 field_0x175;
};
class dAttDraw_CallBack_c {
public:
/* 80070178 */ void execute(u16, J3DTransformInfo*);
STATIC_ASSERT(sizeof(dAttDraw_c) == 0x178);
mDoExt_McaMorfCallBack1_c mDoExt_McaMorfCallback;
class dAttDraw_CallBack_c : public mDoExt_McaMorfCallBack1_c {
public:
/* 80070178 */ virtual void execute(u16, J3DTransformInfo*);
};
class dAttention_c {
public:
dAttention_c() {}
/* 80070198 */ dAttention_c(fopAc_ac_c*, u32);
/* 80070774 */ ~dAttention_c();
/* 80070844 */ void GetLockonList(s32);
+4 -4
View File
@@ -26,11 +26,10 @@ public:
}; // actual size unknown!!!
#pragma pack(pop)
#pragma pack(push, 1)
class dDlst_window_c {
public:
dDlst_window_c(void);
~dDlst_window_c();
dDlst_window_c(void) {}
~dDlst_window_c() {}
/* 80051AC0 */ void setViewPort(f32, f32, f32, f32, f32, f32);
/* 80051ADC */ void setScissor(f32, f32, f32, f32);
@@ -47,7 +46,8 @@ private:
float scissor4;
int camera_id;
};
#pragma pack(pop)
STATIC_ASSERT(sizeof(dDlst_window_c) == 0x2C);
class dDlst_base_c {
public:
+227 -127
View File
@@ -2,6 +2,7 @@
#define D_D_STAGE_H
#include "JSystem/JKernel/JKRExpHeap.h"
#include "d/kankyo/d_kankyo.h"
#include "d/save/d_save.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
@@ -13,19 +14,14 @@ struct stage_vrbox_info_class {};
struct stage_tresure_class {};
class stage_tgsc_data_class {
public:
/* 8002847C */ ~stage_tgsc_data_class();
/* 800284B8 */ stage_tgsc_data_class();
private:
/* 0x00 */ u32 field_0x00;
/* 0x04 */ u32 field_0x04;
/* 0x08 */ u8 field_0x08[0x18]; // fopAcM_prmBase_class
/* 0x20 */ u16 field_0x20;
/* 0x22 */ u8 field_0x22;
struct stage_tgsc_data_class {
/* 8002847C */ ~stage_tgsc_data_class() {}
/* 800284B8 */ stage_tgsc_data_class() {}
u8 unk_0[0x24];
}; // Size = 0x24
STATIC_ASSERT(sizeof(stage_tgsc_data_class) == 0x24);
struct stage_tgsc_class {};
struct stage_stag_info_class {};
@@ -52,9 +48,7 @@ struct stage_camera2_data_class {};
struct stage_arrow_class {};
struct stage_actor_data_class {
/* 0x00 */ const char* mName;
};
struct stage_actor_data_class {};
struct stage_actor_class {};
@@ -88,112 +82,205 @@ struct dStage_MapEventInfo_c {};
class dStage_dt_c {
public:
dStage_dt_c() {}
void setRoomNo(s8 roomNo) { mRoomNo = roomNo; }
s8 getRoomNo() { return mRoomNo; }
/* vt[ 2] */ virtual void init(void) = 0;
/* vt[ 3] */ virtual void setCamera(stage_camera_class*) = 0;
/* vt[ 4] */ virtual stage_camera_class* getCamera(void) const = 0;
/* vt[ 5] */ virtual void setArrow(stage_arrow_class*) = 0;
/* vt[ 6] */ virtual stage_arrow_class* getArrow(void) const = 0;
/* vt[ 7] */ virtual void setPlayer(stage_actor_class*) = 0;
/* vt[ 8] */ virtual stage_actor_class* getPlayer(void) const = 0;
/* vt[ 9] */ virtual void setPlayerNum(u16) = 0;
/* vt[10] */ virtual u16 getPlayerNum(void) const = 0;
/* vt[11] */ virtual void setRoom(roomRead_class*) = 0;
/* vt[12] */ virtual roomRead_class* getRoom(void) const = 0;
/* vt[13] */ virtual void setMapInfo(stage_map_info_class*) = 0;
/* vt[14] */ virtual stage_map_info_class* getMapInfo(void) const = 0;
/* vt[15] */ virtual int getMapInfo2(int) const = 0;
/* vt[16] */ virtual void setMapInfoBase(stage_map_info_dummy_class*) = 0;
/* vt[17] */ virtual stage_map_info_dummy_class* getMapInfoBase(void) const = 0;
/* vt[18] */ virtual void setPaletteInfo(stage_palette_info_class*) = 0;
/* vt[19] */ virtual stage_palette_info_class* getPaletteInfo(void) const = 0;
/* vt[20] */ virtual void setPselectInfo(stage_pselect_info_class*) = 0;
/* vt[21] */ virtual stage_pselect_info_class* getPselectInfo(void) const = 0;
/* vt[22] */ virtual void setEnvrInfo(stage_envr_info_class*) = 0;
/* vt[23] */ virtual stage_envr_info_class* getEnvrInfo(void) const = 0;
/* vt[24] */ virtual void setVrboxInfo(stage_vrbox_info_class*) = 0;
/* vt[25] */ virtual stage_vrbox_info_class* getVrboxInfo(void) const = 0;
/* vt[26] */ virtual void setVrboxcolInfo(stage_vrboxcol_info_class*) = 0;
/* vt[27] */ virtual stage_vrboxcol_info_class* getVrboxcolInfo(void) const = 0;
/* vt[28] */ virtual void setPlightInfo(stage_plight_info_class*) = 0;
/* vt[29] */ virtual stage_plight_info_class* getPlightInfo(void) const = 0;
/* vt[30] */ virtual void setPaletteNumInfo(int) = 0;
/* vt[31] */ virtual int getPaletteNumInfo(void) const = 0;
/* vt[32] */ virtual void setPselectNumInfo(int) = 0;
/* vt[33] */ virtual int getPselectNumInfo(void) const = 0;
/* vt[34] */ virtual void setEnvrNumInfo(int) = 0;
/* vt[35] */ virtual int getEnvrNumInfo(void) const = 0;
/* vt[36] */ virtual void setVrboxNumInfo(int) = 0;
/* vt[37] */ virtual int getVrboxNumInfo(void) const = 0;
/* vt[38] */ virtual void setVrboxcolNumInfo(int) = 0;
/* vt[39] */ virtual int getVrboxcolNumInfo(void) const = 0;
/* vt[40] */ virtual void setPlightNumInfo(int) = 0;
/* vt[41] */ virtual int getPlightNumInfo(void) const = 0;
/* vt[42] */ virtual void setLightVecInfo(stage_pure_lightvec_info_class*) = 0;
/* vt[43] */ virtual stage_pure_lightvec_info_class* getLightVecInfo(void) const = 0;
/* vt[44] */ virtual void setLightVecInfoNum(int) = 0;
/* vt[45] */ virtual int getLightVecInfoNum(void) const = 0;
/* vt[46] */ virtual void setStagInfo(stage_stag_info_class*) = 0;
/* vt[47] */ virtual stage_stag_info_class* getStagInfo(void) const = 0;
/* vt[48] */ virtual void setSclsInfo(stage_scls_info_dummy_class*) = 0;
/* vt[49] */ virtual stage_scls_info_dummy_class* getSclsInfo(void) const = 0;
/* vt[50] */ virtual void setPntInfo(dStage_dPnt_c*) = 0;
/* vt[51] */ virtual dStage_dPnt_c* getPntInf(void) const = 0;
/* vt[52] */ virtual void setPathInfo(dStage_dPath_c*) = 0;
/* vt[53] */ virtual dStage_dPath_c* getPathInf(void) const = 0;
/* vt[54] */ virtual void setPnt2Info(dStage_dPnt_c*) = 0;
/* vt[55] */ virtual dStage_dPnt_c* getPnt2Inf(void) const = 0;
/* vt[56] */ virtual void setPath2Info(dStage_dPath_c*) = 0;
/* vt[57] */ virtual dStage_dPath_c* getPath2Inf(void) const = 0;
/* vt[58] */ virtual void setSoundInf(dStage_SoundInfo_c*) = 0;
/* vt[59] */ virtual dStage_SoundInfo_c* getSoundInf(void) const = 0;
/* vt[60] */ virtual void setSoundInfCL(dStage_SoundInfo_c*) = 0;
/* vt[61] */ virtual dStage_SoundInfo_c* getSoundInfCL(void) const = 0;
/* vt[62] */ virtual void setMapEventInfo(dStage_MapEventInfo_c*) = 0;
/* vt[63] */ virtual dStage_MapEventInfo_c* getMapEventInfo(void) const = 0;
/* vt[64] */ virtual void setFileList2Info(dStage_FileList2_dt_c*) = 0;
/* vt[65] */ virtual dStage_FileList2_dt_c* getFileList2Info(void) const = 0;
/* vt[66] */ virtual void setFileListInfo(dStage_FileList_dt_c*) = 0;
/* vt[67] */ virtual dStage_FileList_dt_c* getFileListInfo(void) const = 0;
/* vt[68] */ virtual void setFloorInfo(dStage_FloorInfo_c*) = 0;
/* vt[69] */ virtual dStage_FloorInfo_c* getFloorInfo(void) const = 0;
/* vt[70] */ virtual void setMemoryConfig(dStage_MemoryConfig_c*) = 0;
/* vt[71] */ virtual dStage_MemoryConfig_c* getMemoryConfig(void) const = 0;
/* vt[72] */ virtual void setMemoryMap(dStage_MemoryMap_c*) = 0;
/* vt[73] */ virtual dStage_MemoryMap_c* getMemoryMap(void) const = 0;
/* vt[74] */ virtual void setMulti(dStage_Multi_c*) = 0;
/* vt[75] */ virtual dStage_Multi_c* getMulti(void) const = 0;
/* vt[76] */ virtual void setOldMulti(void) = 0;
/* vt[77] */ virtual void resetOldMulti(void) = 0;
/* vt[78] */ virtual dStage_Multi_c* getOldMulti(void) const = 0;
/* vt[79] */ virtual void setLbnk(dStage_Lbnk_c*) = 0;
/* vt[80] */ virtual dStage_Lbnk_c* getLbnk(void) const = 0;
/* vt[81] */ virtual void setTresure(stage_tresure_class*) = 0;
/* vt[82] */ virtual stage_tresure_class* getTresure(void) const = 0;
/* vt[83] */ virtual void setDMap(dStage_DMap_c*) = 0;
/* vt[84] */ virtual dStage_DMap_c* getDMap(void) const = 0;
/* vt[85] */ virtual void setDrTg(stage_tgsc_class*) = 0;
/* vt[86] */ virtual stage_tgsc_class* getDrTg(void) const = 0;
/* vt[87] */ virtual void setDoor(stage_tgsc_class*) = 0;
/* vt[88] */ virtual stage_tgsc_class* getDoor(void) const = 0;
/* vt[89] */ virtual void setMapPath(void*) = 0;
/* vt[90] */ virtual int getMapPath(void) = 0;
/* vt[91] */ virtual void setElst(dStage_Elst_c*) = 0;
/* vt[92] */ virtual dStage_Elst_c* getElst(void) = 0;
private:
/* 0x04 */ s8 mRoomNo;
};
class dStage_stageDt_c {
class dStage_stageDt_c : public dStage_dt_c {
public:
stage_camera_class* getCamera(void) const;
stage_arrow_class* getArrow(void) const;
stage_actor_class* getPlayer(void) const;
roomRead_class* getRoom(void) const;
stage_map_info_class* getMapInfo(void) const;
stage_map_info_dummy_class* getMapInfoBase(void) const;
stage_palette_info_class* getPaletteInfo(void) const;
stage_pselect_info_class* getPselectInfo(void) const;
stage_envr_info_class* getEnvrInfo(void) const;
stage_vrbox_info_class* getVrboxInfo(void) const;
stage_vrboxcol_info_class* getVrboxcolInfo(void) const;
dStage_FileList2_dt_c* getFileList2Info(void) const;
dStage_FileList_dt_c* getFileListInfo(void) const;
stage_plight_info_class* getPlightInfo(void) const;
dStage_MapEventInfo_c* getMapEventInfo(void) const;
int getPaletteNumInfo(void) const;
int getPselectNumInfo(void) const;
int getEnvrNumInfo(void) const;
int getVrboxNumInfo(void) const;
int getVrboxcolNumInfo(void) const;
int getPlightNumInfo(void) const;
u16 getPlayerNum(void) const;
int getMapInfo2(int) const;
stage_stag_info_class* getStagInfo(void) const;
stage_scls_info_dummy_class* getSclsInfo(void) const;
dStage_Lbnk_c* getLbnk(void) const;
dStage_dPnt_c* getPntInf(void) const;
dStage_dPath_c* getPathInf(void) const;
dStage_dPnt_c* getPnt2Inf(void) const;
dStage_dPath_c* getPath2Inf(void) const;
dStage_SoundInfo_c* getSoundInf(void) const;
dStage_SoundInfo_c* getSoundInfCL(void) const;
dStage_FloorInfo_c* getFloorInfo(void) const;
dStage_MemoryConfig_c* getMemoryConfig(void) const;
dStage_MemoryMap_c* getMemoryMap(void) const;
dStage_Multi_c* getMulti(void) const;
dStage_Multi_c* getOldMulti(void) const;
stage_tresure_class* getTresure(void) const;
dStage_DMap_c* getDMap(void) const;
stage_tgsc_class* getDrTg(void) const;
stage_tgsc_class* getDoor(void) const;
dStage_Elst_c* getElst(void);
stage_pure_lightvec_info_class* getLightVecInfo(void) const;
int getLightVecInfoNum(void) const;
int getMapPath(void);
dStage_stageDt_c() {}
void init(void);
void resetOldMulti(void);
/* vt[ 2] */ virtual void init(void);
/* vt[ 3] */ virtual void setCamera(stage_camera_class*);
/* vt[ 4] */ virtual stage_camera_class* getCamera(void) const;
/* vt[ 5] */ virtual void setArrow(stage_arrow_class*);
/* vt[ 6] */ virtual stage_arrow_class* getArrow(void) const;
/* vt[ 7] */ virtual void setPlayer(stage_actor_class*);
/* vt[ 8] */ virtual stage_actor_class* getPlayer(void) const;
/* vt[ 9] */ virtual void setPlayerNum(u16);
/* vt[10] */ virtual u16 getPlayerNum(void) const;
/* vt[11] */ virtual void setRoom(roomRead_class*);
/* vt[12] */ virtual roomRead_class* getRoom(void) const;
/* vt[13] */ virtual void setMapInfo(stage_map_info_class*);
/* vt[14] */ virtual stage_map_info_class* getMapInfo(void) const;
/* vt[15] */ virtual int getMapInfo2(int) const;
/* vt[16] */ virtual void setMapInfoBase(stage_map_info_dummy_class*);
/* vt[17] */ virtual stage_map_info_dummy_class* getMapInfoBase(void) const;
/* vt[18] */ virtual void setPaletteInfo(stage_palette_info_class*);
/* vt[19] */ virtual stage_palette_info_class* getPaletteInfo(void) const;
/* vt[20] */ virtual void setPselectInfo(stage_pselect_info_class*);
/* vt[21] */ virtual stage_pselect_info_class* getPselectInfo(void) const;
/* vt[22] */ virtual void setEnvrInfo(stage_envr_info_class*);
/* vt[23] */ virtual stage_envr_info_class* getEnvrInfo(void) const;
/* vt[24] */ virtual void setVrboxInfo(stage_vrbox_info_class*);
/* vt[25] */ virtual stage_vrbox_info_class* getVrboxInfo(void) const;
/* vt[26] */ virtual void setVrboxcolInfo(stage_vrboxcol_info_class*);
/* vt[27] */ virtual stage_vrboxcol_info_class* getVrboxcolInfo(void) const;
/* vt[28] */ virtual void setPlightInfo(stage_plight_info_class*);
/* vt[29] */ virtual stage_plight_info_class* getPlightInfo(void) const;
/* vt[30] */ virtual void setPaletteNumInfo(int);
/* vt[31] */ virtual int getPaletteNumInfo(void) const;
/* vt[32] */ virtual void setPselectNumInfo(int);
/* vt[33] */ virtual int getPselectNumInfo(void) const;
/* vt[34] */ virtual void setEnvrNumInfo(int);
/* vt[35] */ virtual int getEnvrNumInfo(void) const;
/* vt[36] */ virtual void setVrboxNumInfo(int);
/* vt[37] */ virtual int getVrboxNumInfo(void) const;
/* vt[38] */ virtual void setVrboxcolNumInfo(int);
/* vt[39] */ virtual int getVrboxcolNumInfo(void) const;
/* vt[40] */ virtual void setPlightNumInfo(int);
/* vt[41] */ virtual int getPlightNumInfo(void) const;
/* vt[42] */ virtual void setLightVecInfo(stage_pure_lightvec_info_class*);
/* vt[43] */ virtual stage_pure_lightvec_info_class* getLightVecInfo(void) const;
/* vt[44] */ virtual void setLightVecInfoNum(int);
/* vt[45] */ virtual int getLightVecInfoNum(void) const;
/* vt[46] */ virtual void setStagInfo(stage_stag_info_class*);
/* vt[47] */ virtual stage_stag_info_class* getStagInfo(void) const;
/* vt[48] */ virtual void setSclsInfo(stage_scls_info_dummy_class*);
/* vt[49] */ virtual stage_scls_info_dummy_class* getSclsInfo(void) const;
/* vt[50] */ virtual void setPntInfo(dStage_dPnt_c*);
/* vt[51] */ virtual dStage_dPnt_c* getPntInf(void) const;
/* vt[52] */ virtual void setPathInfo(dStage_dPath_c*);
/* vt[53] */ virtual dStage_dPath_c* getPathInf(void) const;
/* vt[54] */ virtual void setPnt2Info(dStage_dPnt_c*);
/* vt[55] */ virtual dStage_dPnt_c* getPnt2Inf(void) const;
/* vt[56] */ virtual void setPath2Info(dStage_dPath_c*);
/* vt[57] */ virtual dStage_dPath_c* getPath2Inf(void) const;
/* vt[58] */ virtual void setSoundInf(dStage_SoundInfo_c*);
/* vt[59] */ virtual dStage_SoundInfo_c* getSoundInf(void) const;
/* vt[60] */ virtual void setSoundInfCL(dStage_SoundInfo_c*);
/* vt[61] */ virtual dStage_SoundInfo_c* getSoundInfCL(void) const;
/* vt[62] */ virtual void setMapEventInfo(dStage_MapEventInfo_c*);
/* vt[63] */ virtual dStage_MapEventInfo_c* getMapEventInfo(void) const;
/* vt[64] */ virtual void setFileList2Info(dStage_FileList2_dt_c*);
/* vt[65] */ virtual dStage_FileList2_dt_c* getFileList2Info(void) const;
/* vt[66] */ virtual void setFileListInfo(dStage_FileList_dt_c*);
/* vt[67] */ virtual dStage_FileList_dt_c* getFileListInfo(void) const;
/* vt[68] */ virtual void setFloorInfo(dStage_FloorInfo_c*);
/* vt[69] */ virtual dStage_FloorInfo_c* getFloorInfo(void) const;
/* vt[70] */ virtual void setMemoryConfig(dStage_MemoryConfig_c*);
/* vt[71] */ virtual dStage_MemoryConfig_c* getMemoryConfig(void) const;
/* vt[72] */ virtual void setMemoryMap(dStage_MemoryMap_c*);
/* vt[73] */ virtual dStage_MemoryMap_c* getMemoryMap(void) const;
/* vt[74] */ virtual void setMulti(dStage_Multi_c*);
/* vt[75] */ virtual dStage_Multi_c* getMulti(void) const;
/* vt[76] */ virtual void setOldMulti(void);
/* vt[77] */ virtual void resetOldMulti(void);
/* vt[78] */ virtual dStage_Multi_c* getOldMulti(void) const;
/* vt[79] */ virtual void setLbnk(dStage_Lbnk_c*);
/* vt[80] */ virtual dStage_Lbnk_c* getLbnk(void) const;
/* vt[81] */ virtual void setTresure(stage_tresure_class*);
/* vt[82] */ virtual stage_tresure_class* getTresure(void) const;
/* vt[83] */ virtual void setDMap(dStage_DMap_c*);
/* vt[84] */ virtual dStage_DMap_c* getDMap(void) const;
/* vt[85] */ virtual void setDrTg(stage_tgsc_class*);
/* vt[86] */ virtual stage_tgsc_class* getDrTg(void) const;
/* vt[87] */ virtual void setDoor(stage_tgsc_class*);
/* vt[88] */ virtual stage_tgsc_class* getDoor(void) const;
/* vt[89] */ virtual void setMapPath(void*);
/* vt[90] */ virtual int getMapPath(void);
/* vt[91] */ virtual void setElst(dStage_Elst_c*);
/* vt[92] */ virtual dStage_Elst_c* getElst(void);
void setCamera(stage_camera_class*);
void setArrow(stage_arrow_class*);
void setPlayer(stage_actor_class*);
void setRoom(roomRead_class*);
void setMapInfo(stage_map_info_class*);
void setMapInfoBase(stage_map_info_dummy_class*);
void setPaletteInfo(stage_palette_info_class*);
void setPselectInfo(stage_pselect_info_class*);
void setEnvrInfo(stage_envr_info_class*);
void setVrboxInfo(stage_vrbox_info_class*);
void setVrboxcolInfo(stage_vrboxcol_info_class*);
void setFileList2Info(dStage_FileList2_dt_c*);
void setFileListInfo(dStage_FileList_dt_c*);
void setPlightInfo(stage_plight_info_class*);
void setMapEventInfo(dStage_MapEventInfo_c*);
void setPaletteNumInfo(int);
void setPselectNumInfo(int);
void setEnvrNumInfo(int);
void setVrboxNumInfo(int);
void setVrboxcolNumInfo(int);
void setPlightNumInfo(int);
void setPlayerNum(u16);
void setStagInfo(stage_stag_info_class*);
void setSclsInfo(stage_scls_info_dummy_class*);
void setLbnk(dStage_Lbnk_c*);
void setPntInfo(dStage_dPnt_c*);
void setPathInfo(dStage_dPath_c*);
void setPnt2Info(dStage_dPnt_c*);
void setPath2Info(dStage_dPath_c*);
void setSoundInf(dStage_SoundInfo_c*);
void setSoundInfCL(dStage_SoundInfo_c*);
void setFloorInfo(dStage_FloorInfo_c*);
void setMemoryConfig(dStage_MemoryConfig_c*);
void setMemoryMap(dStage_MemoryMap_c*);
void setMulti(dStage_Multi_c*);
void setOldMulti(void);
void setTreasure(stage_tresure_class*);
void setDMap(dStage_DMap_c*);
void setDrTg(stage_tgsc_class*);
void setDoor(stage_tgsc_class*);
void setElst(dStage_Elst_c*);
void setLightVecInfo(stage_pure_lightvec_info_class*);
void setLightVecInfoNum(int);
void setTresure(stage_tresure_class*);
void setMapPath(void*);
private:
u8 field_0x0[0x8];
stage_camera_class* mCamera;
stage_arrow_class* mArrow;
stage_actor_class* mPlayer;
@@ -237,8 +324,9 @@ private:
dStage_Elst_c* mElst;
};
class dStage_roomDt_c {
class dStage_roomDt_c : public dStage_dt_c {
public:
dStage_roomDt_c() {}
stage_pure_lightvec_info_class* getLightVecInfo(void) const;
int getLightVecInfoNum(void) const;
stage_map_info_class* getMapInfo(void) const;
@@ -337,7 +425,6 @@ public:
void setEnvrNumInfo(int);
private:
u8 field_0x0[0x8];
stage_pure_lightvec_info_class* mLightVecInfo;
int mLightVecInfoNum;
stage_map_info_class* mMapInfo;
@@ -366,10 +453,27 @@ private:
int mVrboxcolNumInfo;
}; // Size: 0x6C
class dStage_roomStatus_c {
private:
/* 0x000 */ dStage_roomDt_c mRoomDt;
/* 0x06C */ dKy_tevstr_c mKyTevStr;
/* 0x3F4 */ u8 unk_0x3F4[3];
/* 0x3F7 */ s8 mZoneNo;
/* 0x3F8 */ u8 unk_3F8[0x404 - 0x3F8];
public:
int getZoneNo() const { return mZoneNo; }
/* 80028360 */ ~dStage_roomStatus_c() {}
/* 8002839C */ dStage_roomStatus_c() {}
}; // Size: 0x404
STATIC_ASSERT(sizeof(dStage_roomStatus_c) == 0x404);
class dStage_roomControl_c {
public:
class roomDzs_c {
public:
roomDzs_c() { m_num = 0; }
/* 80024A34 */ void create(u8);
/* 80024ABC */ void remove();
/* 80024B44 */ void add(u8, u8);
@@ -378,6 +482,7 @@ public:
/* 0x04 */ JKRHeap* m_dzs;
};
dStage_roomControl_c() {}
void init(void);
static int getZoneNo(int room);
/* 80024338 */ void initZone();
@@ -397,19 +502,23 @@ public:
static JKRExpHeap* mMemoryBlock[19];
static u8 mArcBank[320];
static u8 mStatus[65792];
static dStage_roomStatus_c mStatus[0x40];
static u8 mDemoArcName[10 + 2 /* padding */];
static u32 mProcID;
static u8 mArcBankName[4];
static u8 mArcBankData[4];
static roomDzs_c m_roomDzs;
u8 field_0x0[164];
private:
u8 field_0x0[4];
};
#pragma pack(push, 1)
class dStage_nextStage_c {
public:
dStage_nextStage_c() {
enabled = 0; // TODO: maybe wrong
}
void set(const char*, s8, s16, s8, s8, u8);
private:
@@ -418,14 +527,12 @@ private:
u8 mRoomNo;
u8 mLayer;
u8 field_0xc;
u8 field_0xd;
s8 enabled;
u8 wipe;
u8 wipe_speed;
};
#pragma pack(pop)
#pragma pack(push, 1)
class dStage_startStage_c {
public:
void set(const char*, s8, s16, s8);
@@ -446,20 +553,6 @@ private:
/* 0xB */ s8 mLayer;
/* 0xC */ s8 mDarkArea;
};
#pragma pack(pop)
class dStage_roomStatus_c : dStage_roomDt_c {
private:
/* 0x06C */ u8 mJ3DLightInfo[0xA0 - 0x6C];
/* 0x0A0 */ u8 unk_A0[0x3F7 - 0xA0];
/* 0x3F7 */ s8 mZoneNo;
/* 0x3F8 */ u8 unk_3F8[0x404 - 0x3F8];
public:
int getZoneNo() const { return mZoneNo; }
/* 80028360 */ ~dStage_roomStatus_c();
/* 8002839C */ dStage_roomStatus_c();
}; // Size: 0x404
// unknown name
struct dStage_objectNameInf {
@@ -468,6 +561,13 @@ struct dStage_objectNameInf {
s8 mSubtype;
}; // Size: 0xC
class dStage_KeepDoorInfo {
public:
/* 80028418 */ ~dStage_KeepDoorInfo() {}
/* 0x000 */ u8 unk_0x0[4];
/* 0x004 */ stage_tgsc_data_class unk_0x4[0x40];
}; // Size = 0x904
typedef void (*dStage_Func)(dStage_dt_c*, void*, int, void*);
struct FuncTable {
-2
View File
@@ -4,7 +4,6 @@
#include "d/save/d_save.h"
#include "dolphin/types.h"
#pragma pack(push, 1)
class dVibration_c {
public:
/* 8006F268 */ void Run();
@@ -62,6 +61,5 @@ private:
u32 field_0x88;
u32 field_0x8c;
};
#pragma pack(pop)
#endif /* D_D_VIBRATION_H */
+3 -1
View File
@@ -10,7 +10,7 @@
class dEvt_order_c {
public:
~dEvt_order_c();
~dEvt_order_c() {}
dEvt_order_c();
/* 0x00 */ u16 mEventType;
@@ -24,6 +24,8 @@ public:
/* 0x15 */ u8 mEventInfoIdx;
}; // Size = 0x18
STATIC_ASSERT(sizeof(dEvt_order_c) == 0x18);
typedef int (*SkipFunc)(void*, int);
class dEvt_control_c {
+3 -3
View File
@@ -85,11 +85,10 @@ private:
u32 mFlags[320];
}; // Size = 0x500
#pragma pack(push, 1)
class dEvDtBase_c {
public:
dEvDtBase_c();
~dEvDtBase_c();
~dEvDtBase_c() {}
void init();
void init(char*, int);
void advanceCut(dEvDtEvent_c*);
@@ -110,6 +109,7 @@ private:
/* 0x1C */ char* mSDataP;
/* 0x20 */ s32 mRoomNo;
}; // Size = 0x24
#pragma pack(pop)
STATIC_ASSERT(sizeof(dEvDtBase_c) == 0x24);
#endif /* D_EVENT_D_EVENT_DATA_H */
+1
View File
@@ -24,6 +24,7 @@ class dEvent_manager_c {
public:
void getSubstance(dEvDtData_c*, int);
dEvent_manager_c();
~dEvent_manager_c() {}
void create();
void setObjectArchive(char*);
void demoInit();
+2
View File
@@ -61,4 +61,6 @@ private:
/* 0x385 */ u8 field_0x385;
}; // Size = 0x388?
STATIC_ASSERT(sizeof(dKy_tevstr_c) == 0x388);
#endif /* D_KANKYO_D_KANKYO_H */
+12 -4
View File
@@ -757,7 +757,7 @@ private:
class dSv_memory_c {
public:
dSv_memory_c(void);
dSv_memory_c(void) { this->init(); }
void init(void);
dSv_memBit_c& getMemBit() { return mMemBit; }
const dSv_memBit_c& getMemBitConst() const { return mMemBit; }
@@ -767,9 +767,11 @@ private:
u8 padding30[2];
};
STATIC_ASSERT(sizeof(dSv_memory_c) == 0x20);
class dSv_memory2_c {
public:
dSv_memory2_c(void);
dSv_memory2_c(void) { this->init(); }
void init(void);
void onVisitedRoom(int);
void offVisitedRoom(int);
@@ -779,6 +781,8 @@ private:
u32 mVisitedRoom[2];
};
STATIC_ASSERT(sizeof(dSv_memory2_c) == 8);
class dSv_danBit_c {
public:
bool init(s8);
@@ -839,7 +843,7 @@ private:
class dSv_zone_c {
public:
dSv_zone_c(void); // the assembly for this is in d_com_inf_game.s
dSv_zone_c(void) { mRoomNo = -1; } // the assembly for this is in d_com_inf_game.s
void init(int);
dSv_zoneBit_c& getZoneBit() { return mBit; }
const dSv_zoneBit_c& getZoneBitConst() const { return mBit; }
@@ -855,6 +859,8 @@ private:
dSv_zoneActor_c mActor;
};
STATIC_ASSERT(sizeof(dSv_zone_c) == 0x20);
class dSv_restart_c {
public:
void setRoom(const cXyz&, s16, s8);
@@ -914,7 +920,7 @@ public:
static const int STAGE_MAX = 32;
static const int STAGE2_MAX = 64;
private:
// private:
dSv_player_c mPlayer;
dSv_memory_c mSave[STAGE_MAX];
dSv_memory2_c mSave2[STAGE2_MAX];
@@ -925,6 +931,8 @@ private:
#pragma pack(push, 1)
class dSv_info_c {
public:
dSv_info_c() {}
~dSv_info_c() {}
void init(void);
void getSave(int);
void putSave(int);
+5
View File
@@ -11,6 +11,11 @@ struct Vec {
float getXDiff(const Vec* other) const { return x - other->x; }
float getYDiff(const Vec* other) const { return y - other->y; }
float getZDiff(const Vec* other) const { return z - other->z; }
void set(f32 pX, f32 pY, f32 pZ) {
x = pX;
y = pY;
z = pZ;
}
};
extern "C" {
+1 -1
View File
@@ -72,7 +72,7 @@ struct DOUBLE_POS {
};
inline s32 fopAcM_GetRoomNo(const fopAc_ac_c* pActor) {
return pActor->mCurrent.mRoomNo;
return (s8)pActor->mCurrent.mRoomNo;
}
inline u32 fopAcM_GetID(const void* pActor) {
+18 -22
View File
@@ -6,7 +6,7 @@
#include "JSystem/JKernel/JKRAssertHeap.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "dolphin/types.h"
#include "global.h"
struct J3DMaterialTable;
struct J3DAnmTextureSRTKey {
@@ -41,22 +41,19 @@ struct J3DAnmTransform {
/* 80328E40 */ J3DAnmTransform(s16, f32*, s16*, f32*);
};
#pragma pack(push, 1)
class mDoExt_baseAnm {
public:
mDoExt_baseAnm() {}
/* 8000D320 */ void initPlay(s16, int, f32, s16, s16);
/* 8000D428 */ void play();
private:
J3DFrameCtrl frame_control;
};
#pragma pack(pop)
#pragma pack(push, 1)
class mDoExt_btkAnm {
public:
mDoExt_btkAnm(void);
~mDoExt_btkAnm();
mDoExt_btkAnm(void) { field_0x14 = 0; }
/* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16);
/* 8000D6D8 */ void entry(J3DMaterialTable*, f32);
@@ -64,13 +61,12 @@ private:
mDoExt_baseAnm base_anm;
u32 field_0x14;
};
#pragma pack(pop)
#pragma pack(push, 1)
STATIC_ASSERT(sizeof(mDoExt_btkAnm) == 0x18);
class mDoExt_brkAnm {
public:
mDoExt_brkAnm(void);
~mDoExt_brkAnm();
mDoExt_brkAnm(void) { field_0x14 = 0; }
/* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16);
/* 8000D7A8 */ void entry(J3DMaterialTable*, f32);
@@ -78,13 +74,12 @@ private:
mDoExt_baseAnm mDoExt_baseAnm;
u32 field_0x14;
};
#pragma pack(pop)
#pragma pack(push, 1)
STATIC_ASSERT(sizeof(mDoExt_brkAnm) == 0x18);
class mDoExt_bpkAnm {
public:
mDoExt_bpkAnm(void);
~mDoExt_bpkAnm();
mDoExt_bpkAnm(void) { field_0x14 = 0; }
/* 8000D47C */ void init(J3DMaterialTable*, J3DAnmColor*, int, int, f32, s16, s16);
/* 8000D518 */ void entry(J3DMaterialTable*, f32);
@@ -92,13 +87,12 @@ private:
mDoExt_baseAnm mDoExt_baseAnm;
u32 field_0x14;
};
#pragma pack(pop)
#pragma pack(push, 1)
STATIC_ASSERT(sizeof(mDoExt_bpkAnm) == 0x18);
class mDoExt_bckAnm {
public:
mDoExt_bckAnm(void);
~mDoExt_bckAnm();
mDoExt_bckAnm(void) { field_0x18 = 0; }
/* 8000D7DC */ void init(J3DAnmTransform*, int, int, f32, s16, s16, bool);
/* 8000D990 */ void changeBckOnly(J3DAnmTransform*);
/* 8000D9CC */ void entry(J3DModelData*, f32);
@@ -109,15 +103,17 @@ private:
u8 field_0x14[4];
u32 field_0x18;
}; // Size = 0x1C
#pragma pack(pop)
#pragma pack(push, 1)
STATIC_ASSERT(sizeof(mDoExt_bckAnm) == 0x1C);
class J3DTransformInfo;
class mDoExt_McaMorfCallBack1_c {
public:
private:
void* vtable;
/*void* vtable;*/
virtual void execute(u16, J3DTransformInfo*) = 0;
};
#pragma pack(pop)
class mDoExt_AnmRatioPack {
public: