Files
tp/include/d/d_bg_s.h
T

128 lines
4.5 KiB
C++
Raw Normal View History

2021-03-28 22:49:05 +02:00
#ifndef D_BG_D_BG_S_H
#define D_BG_D_BG_S_H
2024-10-10 07:29:58 -07:00
#include "d/d_bg_w_base.h"
2023-05-12 12:10:14 -07:00
#include "global.h"
class dBgW;
class fopAc_ac_c;
class cBgS_ChkElm {
2021-08-17 02:59:00 +02:00
public:
2021-11-10 10:56:51 -08:00
/* 0x00 */ dBgW_Base* m_bgw_base_ptr;
/* 0x04 */ bool m_used;
/* 0x08 */ u32 m_actor_id;
2021-11-10 10:56:51 -08:00
/* 0x0C */ fopAc_ac_c* m_actor_ptr;
/* 0x10 vtable */
public:
cBgS_ChkElm() { this->Init(); }
2021-08-17 02:59:00 +02:00
void Init();
void Release();
2021-11-10 10:56:51 -08:00
virtual ~cBgS_ChkElm() {}
2024-10-12 15:11:17 -07:00
virtual void Regist2(dBgW_Base*, fpc_ProcID, void*);
2021-11-10 10:56:51 -08:00
bool ChkUsed() const { return m_used; }
}; // Size: 0x14
2021-08-17 02:59:00 +02:00
STATIC_ASSERT(sizeof(cBgS_ChkElm) == 0x14);
class cBgS {
2021-11-10 10:56:51 -08:00
public:
/* 0x0000 */ cBgS_ChkElm m_chk_element[256];
2021-08-17 02:59:00 +02:00
/* 0x1400 vtable */
2021-11-10 10:56:51 -08:00
2021-08-17 02:59:00 +02:00
public:
cBgS() {}
2024-10-12 15:11:17 -07:00
bool Regist(dBgW_Base*, fpc_ProcID, void*);
bool Release(dBgW_Base*);
2021-11-10 10:56:51 -08:00
bool LineCross(cBgS_LinChk*);
f32 GroundCross(cBgS_GndChk*);
static void* ConvDzb(void*);
2021-11-10 10:56:51 -08:00
fopAc_ac_c* GetActorPointer(int) const;
dBgW_Base* GetBgWBasePointer(cBgS_PolyInfo const&) const;
bool ChkPolySafe(cBgS_PolyInfo const&);
s32 GetGrpRoomId(cBgS_PolyInfo const&) const;
bool GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const;
void ShdwDraw(cBgS_ShdwDraw*);
u32 GetGrpInf(cBgS_PolyInfo const&) const;
virtual ~cBgS() {}
2021-08-17 02:59:00 +02:00
virtual void Ct();
virtual void Dt();
2021-12-27 05:15:35 -08:00
fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& info) const {
return GetActorPointer(info.GetBgIndex());
}
2021-11-10 10:56:51 -08:00
}; // Size: 0x1404
class dBgS_Acch;
2021-08-17 02:59:00 +02:00
2023-11-02 13:35:31 -04:00
u8 dKy_pol_sound_get(cBgS_PolyInfo const* param_0);
2021-08-17 02:59:00 +02:00
class dBgS : public cBgS {
public:
2021-08-17 02:59:00 +02:00
dBgS() {}
~dBgS() {}
void Ct();
void Dt();
void ClrMoveFlag();
void Move();
2021-11-10 10:56:51 -08:00
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&);
2021-12-21 06:06:57 -08:00
s32 GetWallCode(cBgS_PolyInfo const&);
int GetPolyAtt0(cBgS_PolyInfo const&);
int GetPolyAtt1(cBgS_PolyInfo const&);
int GetGroundCode(cBgS_PolyInfo const&);
2021-11-10 10:56:51 -08:00
s32 GetCamMoveBG(cBgS_PolyInfo const&);
s32 GetRoomCamId(cBgS_PolyInfo const&);
s32 GetRoomPathId(cBgS_PolyInfo const&);
s32 GetRoomPathPntNo(cBgS_PolyInfo const&);
2024-06-25 07:34:59 -07:00
int GetGrpSoundId(cBgS_PolyInfo const&);
2021-11-10 10:56:51 -08:00
u32 ChkGrpInf(cBgS_PolyInfo const&, u32);
s32 GetRoomId(cBgS_PolyInfo const&);
bool GetPolyAttackThrough(cBgS_PolyInfo const&);
2022-06-01 03:49:32 -07:00
u32 ChkPolyHSStick(cBgS_PolyInfo const&);
void WallCorrect(dBgS_Acch*);
void WallCorrectSort(dBgS_Acch*);
2021-11-10 10:56:51 -08:00
f32 RoofChk(dBgS_RoofChk*);
bool SplGrpChk(dBgS_SplGrpChk*);
bool SphChk(dBgS_SphChk*, void*);
void MoveBgCrrPos(cBgS_PolyInfo const& i_poly, bool param_1, cXyz* i_pos, csXyz* i_angle,
csXyz* i_shapeAngle, bool param_5, bool param_6);
void MoveBgTransPos(cBgS_PolyInfo const& i_poly, bool param_1, cXyz* i_pos, csXyz* i_angle,
csXyz* i_shapeAngle);
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&);
2024-07-12 23:24:50 -07:00
fopAc_ac_c* PushPullCallBack(cBgS_PolyInfo const&, fopAc_ac_c*, s16, dBgW_Base::PushPullLabel);
2021-11-10 10:56:51 -08:00
bool WaterChk(dBgS_SplGrpChk* chk) { return SplGrpChk(chk); }
2024-07-17 12:51:24 -07:00
u32 GetMtrlSndId(const cBgS_PolyInfo& param_0) { return dKy_pol_sound_get(&param_0); }
2024-10-16 00:09:38 +03:00
void DebugDrawPoly(dBgW_Base *param_1) {}
2025-04-01 22:05:30 -04:00
fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& param_0) { return cBgS::GetActorPointer(param_0); }
2021-11-10 10:56:51 -08:00
}; // Size: 0x1404
bool dBgS_CheckBGroundPoly(cBgS_PolyInfo const&);
2023-08-03 23:13:13 +02:00
bool dBgS_CheckBRoofPoly(cBgS_PolyInfo const&);
2021-11-10 10:56:51 -08:00
bool dBgS_CheckBWallPoly(cBgS_PolyInfo const&);
void dBgS_MoveBGProc_Typical(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2,
bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6);
2023-04-07 18:35:52 +02:00
void dBgS_MoveBGProc_TypicalRotY(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2,
bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6);
2023-12-14 18:19:19 -05:00
void dBgS_MoveBGProc_Trans(dBgW* i_bgw, void* i_actor_ptr, cBgS_PolyInfo const& i_poly,
bool param_3, cXyz* i_pos, csXyz* i_angle, csXyz* i_shapeAngle);
2023-03-01 03:20:07 -08:00
f32 dBgS_GetNY(cBgS_PolyInfo const& poly);
2021-03-28 22:49:05 +02:00
#endif /* D_BG_D_BG_S_H */