Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_bg_s.h
Go to the documentation of this file.
1#ifndef D_BG_D_BG_S_H
2#define D_BG_D_BG_S_H
3
4#include "d/d_bg_w_base.h"
6#include <dolphin/os.h>
7#include "global.h"
8
9class dBgW;
10class fopAc_ac_c;
11
13public:
15 /* 0x04 */ bool m_used;
16 /* 0x08 */ u32 m_actor_id;
18 /* 0x10 vtable */
19
20public:
21 cBgS_ChkElm() { this->Init(); }
22 void Init();
23 void Release();
24
25 virtual ~cBgS_ChkElm() {}
26 virtual void Regist2(dBgW_Base*, fpc_ProcID, void*);
27
28 bool ChkUsed() const { return m_used; }
29}; // Size: 0x14
30
31STATIC_ASSERT(sizeof(cBgS_ChkElm) == 0x14);
32
33class cBgS {
34public:
35 /* 0x0000 */ cBgS_ChkElm m_chk_element[256];
36 /* 0x1400 vtable */
37
38public:
39 cBgS() {}
40 bool Regist(dBgW_Base*, fpc_ProcID, void*);
41 bool Release(dBgW_Base*);
44 static void* ConvDzb(void*);
45 fopAc_ac_c* GetActorPointer(int) const;
47 bool ChkPolySafe(cBgS_PolyInfo const&);
48 s32 GetGrpRoomId(cBgS_PolyInfo const&) const;
49 bool GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
50 bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const;
52 u32 GetGrpInf(cBgS_PolyInfo const&) const;
53
54 virtual ~cBgS() {}
55 virtual void Ct();
56 virtual void Dt();
57
59 return GetActorPointer(info.GetBgIndex());
60 }
61}; // Size: 0x1404
62
63class dBgS_Acch;
64
65u8 dKy_pol_sound_get(cBgS_PolyInfo const* param_0);
66
67class dBgS_HIO : public JORReflexible {
68public:
69#if DEBUG
71 field_0x6 = 0;
72 field_0x8 = 0;
73
74 field_0xc.x = field_0xc.y = field_0xc.z = 0.0f;
77
78 field_0x30 = -1;
79 }
80
81 virtual void genMessage(JORMContext*);
82 virtual ~dBgS_HIO();
83
88
89 /* 0x04 */ u8 field_0x4[0x6 - 0x4];
90 /* 0x06 */ u16 field_0x6;
91 /* 0x08 */ u16 field_0x8;
92 /* 0x0C */ cXyz field_0xc;
93 /* 0x18 */ cXyz field_0x18;
94 /* 0x24 */ cXyz field_0x24;
95 /* 0x30 */ int field_0x30;
96#endif
97};
98
99extern int g_line_counter;
101
102extern int g_ground_counter;
104
105class dBgS : public cBgS {
106public:
107 dBgS() {}
108 ~dBgS() {}
109 void Ct();
110 void Dt();
111 void ClrMoveFlag();
112 void Move();
113 bool Regist(dBgW_Base*, fopAc_ac_c*);
114 bool ChkMoveBG(cBgS_PolyInfo const&);
115 bool ChkMoveBG_NoDABg(cBgS_PolyInfo const&);
119 int GetSpecialCode(cBgS_PolyInfo const&);
120 int GetMagnetCode(cBgS_PolyInfo const&);
124 int GetPolyAtt0(cBgS_PolyInfo const&);
125 int GetPolyAtt1(cBgS_PolyInfo const&);
126 int GetGroundCode(cBgS_PolyInfo const&);
131 int GetGrpSoundId(cBgS_PolyInfo const&);
133 int GetRoomId(cBgS_PolyInfo const&);
136 void WallCorrect(dBgS_Acch*);
140 bool SphChk(dBgS_SphChk*, void*);
141 void MoveBgCrrPos(cBgS_PolyInfo const& i_poly, bool param_1, cXyz* i_pos, csXyz* i_angle,
142 csXyz* i_shapeAngle, bool param_5, bool param_6);
143 void MoveBgTransPos(cBgS_PolyInfo const& i_poly, bool param_1, cXyz* i_pos, csXyz* i_angle,
144 csXyz* i_shapeAngle);
145 void MoveBgMatrixCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*);
149
150 bool WaterChk(dBgS_SplGrpChk* chk) { return SplGrpChk(chk); }
151 u32 GetMtrlSndId(const cBgS_PolyInfo& param_0) { return dKy_pol_sound_get(&param_0); }
152 void DebugDrawPoly(dBgW_Base *param_1) {}
153 void DebugDrawPoly(dBgW_Base const& param_1) {}
154 fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& param_0) const { return cBgS::GetActorPointer(param_0); }
155 bool LineCross(cBgS_LinChk* i_linChk) {
156 #if DEBUG
157 if (m_hio.ChkLineOff()) {
158 return false;
159 }
160 if (m_hio.ChkCheckCounter()) {
162 }
163 if (m_hio.ChkLineTimer()) {
165 }
166 bool rt = cBgS::LineCross(i_linChk);
167 if (m_hio.ChkLineTimer()) {
170 }
171 return rt;
172 #else
173 return cBgS::LineCross(i_linChk);
174 #endif
175 }
177 #if DEBUG
178 if (m_hio.ChkCheckCounter()) {
180 }
183 }
184 f32 rt = cBgS::GroundCross(i_gndChk);
188 }
189 return rt;
190 #else
191 return cBgS::GroundCross(i_gndChk);
192 #endif
193 }
194
196
197#if DEBUG
198 /* 0x1404 */ u8 field_0x1404[0x1408 - 0x1404];
199 /* 0x1408 */ dBgS_HIO m_hio;
200#endif
201}; // Size: 0x1404
202
206void dBgS_MoveBGProc_Typical(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2,
207 bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6);
208void dBgS_MoveBGProc_TypicalRotY(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2,
209 bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6);
210void dBgS_MoveBGProc_Trans(dBgW* i_bgw, void* i_actor_ptr, cBgS_PolyInfo const& i_poly,
211 bool param_3, cXyz* i_pos, csXyz* i_angle, csXyz* i_shapeAngle);
212f32 dBgS_GetNY(cBgS_PolyInfo const& poly);
213
214#endif /* D_BG_D_BG_S_H */
Definition JORMContext.h:120
Definition JORReflexible.h:43
Definition d_bg_s.h:12
bool ChkUsed() const
Definition d_bg_s.h:28
dBgW_Base * m_bgw_base_ptr
Definition d_bg_s.h:14
u32 m_actor_id
Definition d_bg_s.h:16
cBgS_ChkElm()
Definition d_bg_s.h:21
bool m_used
Definition d_bg_s.h:15
void Release()
Definition d_bg_s.cpp:28
virtual void Regist2(dBgW_Base *, fpc_ProcID, void *)
Definition d_bg_s.cpp:21
virtual ~cBgS_ChkElm()
Definition d_bg_s.h:25
fopAc_ac_c * m_actor_ptr
Definition d_bg_s.h:17
void Init()
Definition d_bg_s.cpp:14
Definition c_bg_s_gnd_chk.h:8
Definition c_bg_s_lin_chk.h:8
Definition c_bg_s_poly_info.h:7
int GetBgIndex() const
Definition c_bg_s_poly_info.h:27
Definition c_bg_s_shdw_draw.h:12
Definition d_bg_s.h:33
bool LineCross(cBgS_LinChk *)
Definition d_bg_s.cpp:103
u32 GetGrpInf(cBgS_PolyInfo const &) const
Definition d_bg_s.cpp:271
void ShdwDraw(cBgS_ShdwDraw *)
Definition d_bg_s.cpp:261
virtual ~cBgS()
Definition d_bg_s.h:54
f32 GroundCross(cBgS_GndChk *)
Definition d_bg_s.cpp:122
virtual void Dt()
Definition d_bg_s.cpp:91
fopAc_ac_c * GetActorPointer(int) const
Definition d_bg_s.cpp:202
bool Regist(dBgW_Base *, fpc_ProcID, void *)
Definition d_bg_s.cpp:37
bool ChkPolySafe(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:215
bool GetTriPnt(cBgS_PolyInfo const &, cXyz *, cXyz *, cXyz *) const
Definition d_bg_s.cpp:252
bool GetTriPla(cBgS_PolyInfo const &, cM3dGPla *) const
Definition d_bg_s.cpp:242
bool Release(dBgW_Base *)
Definition d_bg_s.cpp:68
fopAc_ac_c * GetActorPointer(cBgS_PolyInfo const &info) const
Definition d_bg_s.h:58
cBgS_ChkElm m_chk_element[256]
Definition d_bg_s.h:35
static void * ConvDzb(void *)
Definition d_bg_s.cpp:175
s32 GetGrpRoomId(cBgS_PolyInfo const &) const
Definition d_bg_s.cpp:233
dBgW_Base * GetBgWBasePointer(cBgS_PolyInfo const &) const
Definition d_bg_s.cpp:206
cBgS()
Definition d_bg_s.h:39
virtual void Ct()
Definition d_bg_s.cpp:84
Definition c_m3d_g_pla.h:8
Definition c_sxyz.h:10
Definition d_bg_s_acch.h:62
Definition d_bg_s.h:67
dBgS_HIO()
Definition d_bg_s.h:70
cXyz field_0x18
Definition d_bg_s.h:93
BOOL ChkCheckCounter()
BOOL ChkLineOff()
u16 field_0x6
Definition d_bg_s.h:90
virtual ~dBgS_HIO()
u16 field_0x8
Definition d_bg_s.h:91
virtual void genMessage(JORMContext *)
cXyz field_0xc
Definition d_bg_s.h:92
BOOL ChkLineTimer()
BOOL ChkGroundCheckTimer()
cXyz field_0x24
Definition d_bg_s.h:94
u8 field_0x4[0x6 - 0x4]
Definition d_bg_s.h:89
int field_0x30
Definition d_bg_s.h:95
Definition d_bg_s_roof_chk.h:8
Definition d_bg_s_sph_chk.h:13
Definition d_bg_s_spl_grp_chk.h:8
Definition d_bg_s.h:105
bool ChkMoveBG_NoDABg(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:338
void MoveBgMatrixCrrPos(cBgS_PolyInfo const &, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_s.cpp:695
bool WaterChk(dBgS_SplGrpChk *chk)
Definition d_bg_s.h:150
bool LineCross(cBgS_LinChk *i_linChk)
Definition d_bg_s.h:155
s32 GetPolyColor(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:356
f32 GroundCross(cBgS_GndChk *i_gndChk)
Definition d_bg_s.h:176
bool GetPolyAttackThrough(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:522
void Ct()
Definition d_bg_s.cpp:280
u32 ChkPolyHSStick(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:532
void Dt()
Definition d_bg_s.cpp:284
f32 RoofChk(dBgS_RoofChk *)
Definition d_bg_s.cpp:588
void Move()
Definition d_bg_s.cpp:296
u32 ChkGrpInf(cBgS_PolyInfo const &, u32)
Definition d_bg_s.cpp:496
fopAc_ac_c * GetActorPointer(cBgS_PolyInfo const &param_0) const
Definition d_bg_s.h:154
void WallCorrect(dBgS_Acch *)
Definition d_bg_s.cpp:542
bool SphChk(dBgS_SphChk *, void *)
Definition d_bg_s.cpp:633
s32 GetCamMoveBG(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:450
bool SplGrpChk(dBgS_SplGrpChk *)
Definition d_bg_s.cpp:608
~dBgS()
Definition d_bg_s.h:108
BOOL GetHorseNoEntry(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:369
int GetMagnetCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:387
s32 GetRoomPathPntNo(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:477
void ChkDeleteActorRegist(fopAc_ac_c *)
u32 GetMtrlSndId(const cBgS_PolyInfo &param_0)
Definition d_bg_s.h:151
u32 GetUnderwaterRoofCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:405
s32 GetExitId(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:347
bool ChkMoveBG(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:323
fopAc_ac_c * PushPullCallBack(cBgS_PolyInfo const &, fopAc_ac_c *, s16, dBgW_Base::PushPullLabel)
Definition d_bg_s.cpp:772
void DebugDrawPoly(dBgW_Base *param_1)
Definition d_bg_s.h:152
u8 field_0x1404[0x1408 - 0x1404]
Definition d_bg_s.h:198
void DebugDrawPoly(dBgW_Base const &param_1)
Definition d_bg_s.h:153
void RideCallBack(cBgS_PolyInfo const &, fopAc_ac_c *)
Definition d_bg_s.cpp:756
s32 GetWallCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:414
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)
Definition d_bg_s.cpp:659
void ClrMoveFlag()
Definition d_bg_s.cpp:288
int GetPolyAtt0(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:423
int GetSpecialCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:378
int GetMonkeyBarsCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:396
s32 GetRoomCamId(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:459
int GetGrpSoundId(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:486
void WallCorrectSort(dBgS_Acch *)
Definition d_bg_s.cpp:565
int GetRoomId(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:501
dBgS_HIO m_hio
Definition d_bg_s.h:199
void ArrowStickCallBack(cBgS_PolyInfo const &, fopAc_ac_c *, cXyz &)
Definition d_bg_s.cpp:764
bool Regist(dBgW_Base *, fopAc_ac_c *)
Definition d_bg_s.cpp:306
int GetPolyAtt1(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:432
int GetGroundCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:441
dBgS()
Definition d_bg_s.h:107
s32 GetRoomPathId(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:468
void MoveBgTransPos(cBgS_PolyInfo const &i_poly, bool param_1, cXyz *i_pos, csXyz *i_angle, csXyz *i_shapeAngle)
Definition d_bg_s.cpp:678
Definition d_bg_w_base.h:26
PushPullLabel
Definition d_bg_w_base.h:28
Definition d_bg_w.h:257
Definition f_op_actor.h:230
OSStopwatch s_line_sw
STATIC_ASSERT(sizeof(cBgS_ChkElm)==0x14)
int g_ground_counter
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)
Definition d_bg_s.cpp:712
int g_line_counter
bool dBgS_CheckBGroundPoly(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:802
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)
Definition d_bg_s.cpp:742
bool dBgS_CheckBRoofPoly(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:812
u8 dKy_pol_sound_get(cBgS_PolyInfo const *param_0)
Definition d_kankyo.cpp:10927
bool dBgS_CheckBWallPoly(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:792
f32 dBgS_GetNY(cBgS_PolyInfo const &poly)
Definition d_bg_s.cpp:822
OSStopwatch s_ground_sw
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)
Definition d_bg_s.cpp:748
void OSStopStopwatch(OSStopwatch *sw)
Definition OSStopwatch.c:17
void OSStartStopwatch(OSStopwatch *sw)
Definition OSStopwatch.c:12
void OSDumpStopwatch(OSStopwatch *sw)
Definition OSStopwatch.c:48
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
unsigned int fpc_ProcID
Definition f_pc_base.h:10
Definition os.h:140
f32 z
Definition mtx.h:14
f32 x
Definition mtx.h:14
f32 y
Definition mtx.h:14
Definition c_xyz.h:7