mirror of https://github.com/zeldaret/tp.git
121 lines
3.8 KiB
C++
121 lines
3.8 KiB
C++
#ifndef D_BG_D_BG_S_H
|
|
#define D_BG_D_BG_S_H
|
|
|
|
#include "SSystem/SComponent/c_bg_s_gnd_chk.h"
|
|
#include "SSystem/SComponent/c_bg_s_lin_chk.h"
|
|
#include "SSystem/SComponent/c_bg_s_poly_info.h"
|
|
#include "d/bg/d_bg_w.h"
|
|
#include "dolphin/types.h"
|
|
#include "f_op/f_op_actor.h"
|
|
|
|
struct cBgW_BgId {
|
|
/* 802681C8 */ void Release();
|
|
/* 802681D4 */ void ChkUsed() const;
|
|
};
|
|
|
|
class cBgS_ChkElm {
|
|
private:
|
|
/* 0x00 */ dBgW_Base* bgw_base_pointer;
|
|
/* 0x04 */ u8 used;
|
|
/* 0x05 */ u8 padding[3];
|
|
/* 0x08 */ u32 field_0x8;
|
|
/* 0x0C */ void* actor_pointer;
|
|
/* 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);
|
|
|
|
class 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*);
|
|
virtual void Ct();
|
|
virtual void Dt();
|
|
void LineCross(cBgS_LinChk*);
|
|
void GroundCross(cBgS_GndChk*);
|
|
void ConvDzb(void*);
|
|
void GetActorPointer(int) const;
|
|
void GetBgWBasePointer(cBgS_PolyInfo const&) const;
|
|
void ChkPolySafe(cBgS_PolyInfo const&);
|
|
void GetGrpRoomId(cBgS_PolyInfo const&) const;
|
|
void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
|
|
void GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const;
|
|
void ShdwDraw(cBgS_ShdwDraw*);
|
|
void GetGrpInf(cBgS_PolyInfo const&) const;
|
|
}; // Size = 0x1404
|
|
|
|
class dBgS_HIO {
|
|
/* 0x00 */ u8 vtable[4];
|
|
/* 0x04 */ u8 field_0x4[2];
|
|
/* 0x06 */ u16 field_0x6;
|
|
/* 0x08 */ u16 field_0x8;
|
|
/* 0x0A */ u8 field_0xa[2];
|
|
/* 0x0C */ cXyz field_0xc;
|
|
/* 0x18 */ cXyz field_0x18;
|
|
/* 0x24 */ cXyz field_0x24;
|
|
/* 0x30 */ u8 field_0x30[4];
|
|
};
|
|
|
|
class dBgS_Acch;
|
|
|
|
class dBgS : public cBgS {
|
|
public:
|
|
dBgS() {}
|
|
~dBgS() {}
|
|
void Ct();
|
|
void Dt();
|
|
void ClrMoveFlag();
|
|
void Move();
|
|
void Regist(dBgW_Base*, fopAc_ac_c*);
|
|
void ChkMoveBG(cBgS_PolyInfo const&);
|
|
void ChkMoveBG_NoDABg(cBgS_PolyInfo const&);
|
|
void GetExitId(cBgS_PolyInfo const&);
|
|
void GetPolyColor(cBgS_PolyInfo const&);
|
|
void GetHorseNoEntry(cBgS_PolyInfo const&);
|
|
void GetSpecialCode(cBgS_PolyInfo const&);
|
|
void GetMagnetCode(cBgS_PolyInfo const&);
|
|
void GetMonkeyBarsCode(cBgS_PolyInfo const&);
|
|
void GetUnderwaterRoofCode(cBgS_PolyInfo const&);
|
|
void GetWallCode(cBgS_PolyInfo const&);
|
|
void GetPolyAtt0(cBgS_PolyInfo const&);
|
|
void GetPolyAtt1(cBgS_PolyInfo const&);
|
|
void GetGroundCode(cBgS_PolyInfo const&);
|
|
void GetCamMoveBG(cBgS_PolyInfo const&);
|
|
void GetRoomCamId(cBgS_PolyInfo const&);
|
|
void GetRoomPathId(cBgS_PolyInfo const&);
|
|
void GetRoomPathPntNo(cBgS_PolyInfo const&);
|
|
void GetGrpSoundId(cBgS_PolyInfo const&);
|
|
void ChkGrpInf(cBgS_PolyInfo const&, u32);
|
|
void GetRoomId(cBgS_PolyInfo const&);
|
|
void GetPolyAttackThrough(cBgS_PolyInfo const&);
|
|
void ChkPolyHSStick(cBgS_PolyInfo const&);
|
|
void WallCorrect(dBgS_Acch*);
|
|
void WallCorrectSort(dBgS_Acch*);
|
|
void RoofChk(dBgS_RoofChk*);
|
|
void SplGrpChk(dBgS_SplGrpChk*);
|
|
void SphChk(dBgS_SphChk*, void*);
|
|
void MoveBgCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*, bool, bool);
|
|
void MoveBgTransPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*);
|
|
void MoveBgMatrixCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*);
|
|
void RideCallBack(cBgS_PolyInfo const&, fopAc_ac_c*);
|
|
void ArrowStickCallBack(cBgS_PolyInfo const&, fopAc_ac_c*, cXyz&);
|
|
void PushPullCallBack(cBgS_PolyInfo const&, fopAc_ac_c*, s16, dBgW_Base::PushPullLabel);
|
|
|
|
private:
|
|
// /* 0x0000 */ cBgS cbgs;
|
|
// /* 0x1400 */ void* vtable;
|
|
};
|
|
|
|
#endif /* D_BG_D_BG_S_H */
|