Files
tp/include/d/d_cc_mass_s.h
T

85 lines
2.5 KiB
C++
Raw Normal View History

2021-03-28 22:49:05 +02:00
#ifndef D_CC_D_CC_MASS_S_H
#define D_CC_D_CC_MASS_S_H
#include "SSystem/SComponent/c_cc_d.h"
2021-03-28 22:49:05 +02:00
2021-08-17 02:59:00 +02:00
typedef void (*dCcMassS_ObjCallback)(fopAc_ac_c*, cXyz*, u32);
class dCcMassS_Obj {
2021-08-17 02:59:00 +02:00
private:
/* 0x00 */ cCcD_Obj* mpObj;
/* 0x04 */ u8 mPriority;
/* 0x08 */ dCcMassS_ObjCallback mpCallback;
/* 0x0C */ cCcD_DivideInfo mDivideInfo;
/* 0x1C vtable */
public:
2021-05-02 17:04:42 -07:00
dCcMassS_Obj();
2021-08-17 02:59:00 +02:00
virtual ~dCcMassS_Obj() {}
void Set(cCcD_Obj* p_obj, u8 priority, dCcMassS_ObjCallback callback);
void Clear();
2021-08-17 02:59:00 +02:00
cCcD_Obj* GetObj() { return mpObj; }
u8 GetPriority() const { return mPriority; }
dCcMassS_ObjCallback GetCallback() const { return mpCallback; }
cCcD_DivideInfo& GetDivideInfo() { return mDivideInfo; }
2021-06-13 00:20:45 +02:00
}; // Size = 0x20
STATIC_ASSERT(0x20 == sizeof(dCcMassS_Obj));
2021-08-17 02:59:00 +02:00
class dCcMassS_HitInf {
private:
/* 0x00 */ cCcD_Obj* mpArea;
/* 0x04 */ cCcD_Obj* mpAtObj;
/* 0x08 */ cCcD_Obj* mpCoObj;
/* 0x0C */ f32 mCoHitLen;
2021-08-17 02:59:00 +02:00
public:
virtual ~dCcMassS_HitInf() {}
void ClearPointer();
2021-08-17 02:59:00 +02:00
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; }
cCcD_Obj* GetAtHitObj() const { return mpAtObj; }
2021-08-17 02:59:00 +02:00
};
class dCcMassS_Mng {
2021-06-13 00:20:45 +02:00
public:
/* 0x0000 */ cCcD_DivideArea mDivideArea;
/* 0x0040 */ s32 mMassObjCount;
/* 0x0044 */ dCcMassS_Obj mMassObjs[10];
/* 0x0184 */ s32 mMassAreaCount;
/* 0x0188 */ dCcMassS_Obj mMassAreas[2];
/* 0x01C8 */ cCcD_CylAttr mCylAttr;
2021-08-17 02:59:00 +02:00
/* 0x0200 */ u8 field_0x200;
/* 0x0200 */ u8 field_0x201;
/* 0x0202 */ u8 field_0x202;
2021-08-17 02:59:00 +02:00
/* 0x0203 */ u8 mResultCam;
/* 0x0204 */ Vec mCamTopPos;
2021-06-13 00:20:45 +02:00
/* 0x0210 */ f32 mCamTopDist;
2021-08-17 02:59:00 +02:00
/* 0x0214 */ Vec mCamBottomPos;
2021-06-13 00:20:45 +02:00
/* 0x0220 */ f32 mCamBottomDist;
2021-08-17 02:59:00 +02:00
/* 0x0224 */ cCcD_CpsAttr mCpsAttr;
/* 0x0264 */ cCcD_DivideInfo mDivideInfo;
/* 0x0274 vtable */
2021-08-17 02:59:00 +02:00
public:
dCcMassS_Mng();
2021-08-17 02:59:00 +02:00
virtual ~dCcMassS_Mng() {}
/* 800855E4 */ void Ct();
/* 80085630 */ void SetAttr(f32 radius, f32 height, u8 param_2, u8 param_3);
2021-08-17 02:59:00 +02:00
/* 80085690 */ void Prepare();
/* 800858AC */ u32 Chk(cXyz* p_xyz, fopAc_ac_c** p_actor, dCcMassS_HitInf* p_hitInf);
2021-08-17 02:59:00 +02:00
/* 80085CF0 */ void Clear();
/* 80085D98 */ void Set(cCcD_Obj* p_obj, u8 priority);
/* 80085E6C */ void SetCam(cM3dGCps const& cps);
2024-10-27 00:35:25 -04:00
/* 80085EB0 */ u32 GetResultCam() const;
/* 80085EB8 */ void GetCamTopPos(Vec* p_out);
};
2021-06-13 00:20:45 +02:00
STATIC_ASSERT(sizeof(dCcMassS_Mng) == 0x278);
2021-03-28 22:49:05 +02:00
#endif /* D_CC_D_CC_MASS_S_H */