mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-26 07:38:48 -04:00
120 lines
3.5 KiB
C++
120 lines
3.5 KiB
C++
#ifndef D_BG_D_BG_S_H
|
|
#define D_BG_D_BG_S_H
|
|
|
|
#include "global.h"
|
|
#include "SSystem/SComponent/c_sxyz.h"
|
|
#include "SSystem/SComponent/c_xyz.h"
|
|
|
|
class cBgS_LinChk;
|
|
class cBgS_GndChk;
|
|
class cBgS_PolyInfo;
|
|
class cM3dGPla;
|
|
class cBgS_ShdwDraw;
|
|
class dBgW;
|
|
class fopAc_ac_c;
|
|
class dBgW_Base;
|
|
class dBgS_Acch;
|
|
class dBgS_RoofChk;
|
|
class dBgS_SplGrpChk;
|
|
class dBgS_SphChk;
|
|
|
|
class cBgS_ChkElm {
|
|
public:
|
|
/* 0x00 */ dBgW_Base* m_bgw_base_ptr;
|
|
/* 0x04 */ bool m_used;
|
|
/* 0x08 */ u32 m_actor_id;
|
|
/* 0x0C */ fopAc_ac_c* m_actor_ptr;
|
|
/* 0x10 vtable */
|
|
|
|
public:
|
|
cBgS_ChkElm() { this->Init(); }
|
|
void Init();
|
|
void Release();
|
|
|
|
virtual ~cBgS_ChkElm() {}
|
|
virtual void Regist2(dBgW_Base*, unsigned int, void*);
|
|
|
|
bool ChkUsed() const { return m_used; }
|
|
}; // Size: 0x14
|
|
|
|
STATIC_ASSERT(sizeof(cBgS_ChkElm) == 0x14);
|
|
|
|
class cBgW;
|
|
class cBgS {
|
|
public:
|
|
/* 0x0000 */ cBgS_ChkElm m_chk_element[256];
|
|
/* 0x1400 vtable */
|
|
|
|
public:
|
|
cBgS() {}
|
|
|
|
bool GetTriPla(cBgS_PolyInfo&) const;
|
|
bool Regist(cBgW*, u32, void*);
|
|
int Release(cBgW*);
|
|
bool LineCross(cBgS_LinChk*);
|
|
f32 GroundCross(cBgS_GndChk*);
|
|
static void* ConvDzb(void*);
|
|
fopAc_ac_c* GetActorPointer(int) const;
|
|
dBgW_Base* GetBgWPointer(cBgS_PolyInfo&) const;
|
|
bool ChkPolySafe(cBgS_PolyInfo&);
|
|
void GetTriGrp(int, int) const;
|
|
void GetGrpToRoomId(int, int) const;
|
|
cM3dGPla* GetTriPla(int, int) const;
|
|
bool GetTriPnt(cBgS_PolyInfo&, cXyz*, cXyz*, cXyz*) const;
|
|
void Move(void);
|
|
void ShdwDraw(cBgS_ShdwDraw*);
|
|
u32 GetGrpInf(cBgS_PolyInfo&, int) const;
|
|
|
|
virtual ~cBgS() {}
|
|
virtual void Ct();
|
|
virtual void Dt();
|
|
}; // Size: 0x1404
|
|
|
|
class dBgS_Acch;
|
|
|
|
class dBgS : public cBgS {
|
|
public:
|
|
dBgS() {}
|
|
~dBgS() {}
|
|
void Ct();
|
|
void Dt();
|
|
void ClrMoveFlag();
|
|
void Move();
|
|
bool Regist(dBgW_Base*, fopAc_ac_c*);
|
|
bool ChkMoveBG(cBgS_PolyInfo const&);
|
|
bool ChkMoveBG_NoDABg(cBgS_PolyInfo const&);
|
|
s32 GetExitId(cBgS_PolyInfo const&);
|
|
s32 GetPolyColor(cBgS_PolyInfo const&);
|
|
BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
|
|
int GetSpecialCode(cBgS_PolyInfo const&);
|
|
int GetMagnetCode(cBgS_PolyInfo const&);
|
|
int GetMonkeyBarsCode(cBgS_PolyInfo const&);
|
|
u32 GetUnderwaterRoofCode(cBgS_PolyInfo const&);
|
|
s32 GetWallCode(cBgS_PolyInfo const&);
|
|
int GetPolyAtt0(cBgS_PolyInfo const&);
|
|
int GetPolyAtt1(cBgS_PolyInfo const&);
|
|
int GetGroundCode(cBgS_PolyInfo const&);
|
|
s32 GetCamMoveBG(cBgS_PolyInfo const&);
|
|
s32 GetRoomCamId(cBgS_PolyInfo const&);
|
|
s32 GetRoomPathId(cBgS_PolyInfo const&);
|
|
s32 GetRoomPathPntNo(cBgS_PolyInfo const&);
|
|
u8 GetGrpSoundId(cBgS_PolyInfo const&);
|
|
u32 ChkGrpInf(cBgS_PolyInfo const&, u32);
|
|
s32 GetRoomId(cBgS_PolyInfo const&);
|
|
bool GetPolyAttackThrough(cBgS_PolyInfo const&);
|
|
u32 ChkPolyHSStick(cBgS_PolyInfo const&);
|
|
void WallCorrect(dBgS_Acch*);
|
|
void WallCorrectSort(dBgS_Acch*);
|
|
f32 RoofChk(dBgS_RoofChk*);
|
|
bool SplGrpChk(dBgS_SplGrpChk*);
|
|
bool 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&);
|
|
|
|
bool WaterChk(dBgS_SplGrpChk* chk) { return SplGrpChk(chk); }
|
|
}; // Size: 0x1404
|
|
|
|
#endif /* D_BG_D_BG_S_H */ |