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"
5#include "JSystem/JHostIO/JORReflexible.h"
6#include <os.h>
7#include "global.h"
8
9class dBgW;
10class fopAc_ac_c;
11
13public:
15 /* 0x04 */ bool m_used;
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 void Draw();
54
55 virtual ~cBgS() {}
56 virtual void Ct();
57 virtual void Dt();
58
60 return GetActorPointer(info.GetBgIndex());
61 }
62}; // Size: 0x1404
63
64class dBgS_Acch;
65
66u8 dKy_pol_sound_get(cBgS_PolyInfo const* param_0);
67
68class dBgS_HIO : public JORReflexible {
69public:
70#if DEBUG
94
105
106 virtual void genMessage(JORMContext*);
107 virtual ~dBgS_HIO();
108
122 bool ChkRoofOff() { return m_flags & FLAG_ROOF_OFF_e; }
123 bool ChkSplOff() { return m_flags2 & FLAG2_SPL_OFF_e; }
129
130 /* 0x04 */ s8 id;
131 /* 0x06 */ u16 m_flags;
132 /* 0x08 */ u16 m_flags2;
137#endif
138};
139
140class dBgS_InsideHIO : public JORReflexible {
141public:
142#if DEBUG
154
157
158 m_raise_amount = 1.0f;
159
160 m_p0.x = 100.0f;
161 m_p0.y = 0.0f;
162 m_p0.z = 0.0f;
163
164 m_p1.x = 0.0f;
165 m_p1.y = 0.0f;
166 m_p1.z = 0.0f;
167 }
168
169 virtual void genMessage(JORMContext*);
170 virtual ~dBgS_InsideHIO();
171
172 BOOL ChkWallOff() { return m_flags & FLAG_WALL_OFF_e; }
173 BOOL ChkRoofOff() { return m_flags & FLAG_ROOF_OFF_e; }
181
182 /* 0x04 */ s8 id;
183 /* 0x06 */ u16 m_flags;
184 /* 0x08 */ f32 m_raise_amount;
185 /* 0x0C */ cXyz m_p0;
186 /* 0x18 */ cXyz m_p1;
187#endif
188};
189
190class dBgS : public cBgS {
191public:
192 dBgS() {}
193 ~dBgS() {}
194 void Ct();
195 void Dt();
196 void ClrMoveFlag();
197 void Move();
198 bool Regist(dBgW_Base*, fopAc_ac_c*);
199 bool ChkMoveBG(cBgS_PolyInfo const&);
200 bool ChkMoveBG_NoDABg(cBgS_PolyInfo const&);
201 s32 GetExitId(cBgS_PolyInfo const&);
202 s32 GetPolyColor(cBgS_PolyInfo const&);
203 BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
204 int GetSpecialCode(cBgS_PolyInfo const&);
205 int GetMagnetCode(cBgS_PolyInfo const&);
208 s32 GetWallCode(cBgS_PolyInfo const&);
209 int GetPolyAtt0(cBgS_PolyInfo const&);
210 int GetPolyAtt1(cBgS_PolyInfo const&);
211 int GetGroundCode(cBgS_PolyInfo const&);
212 s32 GetCamMoveBG(cBgS_PolyInfo const&);
213 s32 GetRoomCamId(cBgS_PolyInfo const&);
214 s32 GetRoomPathId(cBgS_PolyInfo const&);
216 int GetGrpSoundId(cBgS_PolyInfo const&);
217 u32 ChkGrpInf(cBgS_PolyInfo const&, u32);
218 int GetRoomId(cBgS_PolyInfo const&);
220 u32 ChkPolyHSStick(cBgS_PolyInfo const&);
221 void WallCorrect(dBgS_Acch*);
223 f32 RoofChk(dBgS_RoofChk*);
225 bool SphChk(dBgS_SphChk*, void*);
226 void MoveBgCrrPos(cBgS_PolyInfo const& i_poly, bool param_1, cXyz* i_pos, csXyz* i_angle,
227 csXyz* i_shapeAngle, bool param_5, bool param_6);
228 void MoveBgTransPos(cBgS_PolyInfo const& i_poly, bool param_1, cXyz* i_pos, csXyz* i_angle,
229 csXyz* i_shapeAngle);
230 void MoveBgMatrixCrrPos(cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*);
234
235 bool WaterChk(dBgS_SplGrpChk* chk) { return SplGrpChk(chk); }
236 u32 GetMtrlSndId(const cBgS_PolyInfo& param_0) { return dKy_pol_sound_get(&param_0); }
237 void DrawPoly(cBgS_PolyInfo const& param_0, GXColor const& param_1);
238 fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& param_0) const { return cBgS::GetActorPointer(param_0); }
239
240 #if DEBUG
241 void DebugDrawPoly(const dBgW_Base& param_1);
242 #endif
243
244 #if DEBUG
245 bool LineCross(cBgS_LinChk* i_linChk);
246 f32 GroundCross(cBgS_GndChk* i_gndChk);
247 void ShdwDraw(cBgS_ShdwDraw*);
248 #else
249 bool LineCross(cBgS_LinChk* i_linChk) {
250 return cBgS::LineCross(i_linChk);
251 }
252
253 f32 GroundCross(cBgS_GndChk* i_gndChk) {
254 return cBgS::GroundCross(i_gndChk);
255 }
256 #endif
257
259
260 void Draw();
261 void CaptPoly(dBgS_CaptPoly&);
262
263#if DEBUG
264 /* 0x1404 */ u8 field_0x1404[0x1408 - 0x1404];
265 /* 0x1408 */ dBgS_HIO m_hio;
266#endif
267}; // Size: 0x1404
268
272void dBgS_MoveBGProc_Typical(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2,
273 bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6);
274void dBgS_MoveBGProc_TypicalRotY(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2,
275 bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6);
276void dBgS_MoveBGProc_Trans(dBgW* i_bgw, void* i_actor_ptr, cBgS_PolyInfo const& i_poly,
277 bool param_3, cXyz* i_pos, csXyz* i_angle, csXyz* i_shapeAngle);
278f32 dBgS_GetNY(cBgS_PolyInfo const& poly);
279
280#endif /* D_BG_D_BG_S_H */
struct _GXColor GXColor
Definition c_cc_d.h:12
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
cBgS_ChkElm()
Definition d_bg_s.h:21
bool m_used
Definition d_bg_s.h:15
void Release()
Definition d_bg_s.cpp:136
virtual void Regist2(dBgW_Base *, fpc_ProcID, void *)
Definition d_bg_s.cpp:129
virtual ~cBgS_ChkElm()
Definition d_bg_s.h:25
fpc_ProcID m_actor_id
Definition d_bg_s.h:16
fopAc_ac_c * m_actor_ptr
Definition d_bg_s.h:17
void Init()
Definition d_bg_s.cpp:122
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:273
u32 GetGrpInf(cBgS_PolyInfo const &) const
Definition d_bg_s.cpp:453
void ShdwDraw(cBgS_ShdwDraw *)
Definition d_bg_s.cpp:443
virtual ~cBgS()
Definition d_bg_s.h:55
f32 GroundCross(cBgS_GndChk *)
Definition d_bg_s.cpp:292
virtual void Dt()
Definition d_bg_s.cpp:258
fopAc_ac_c * GetActorPointer(int) const
Definition d_bg_s.cpp:378
void Draw()
Definition d_bg_s.cpp:441
bool Regist(dBgW_Base *, fpc_ProcID, void *)
Definition d_bg_s.cpp:145
bool ChkPolySafe(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:392
bool GetTriPnt(cBgS_PolyInfo const &, cXyz *, cXyz *, cXyz *) const
Definition d_bg_s.cpp:430
bool GetTriPla(cBgS_PolyInfo const &, cM3dGPla *) const
Definition d_bg_s.cpp:420
bool Release(dBgW_Base *)
Definition d_bg_s.cpp:197
fopAc_ac_c * GetActorPointer(cBgS_PolyInfo const &info) const
Definition d_bg_s.h:59
cBgS_ChkElm m_chk_element[256]
Definition d_bg_s.h:35
static void * ConvDzb(void *)
Definition d_bg_s.cpp:345
s32 GetGrpRoomId(cBgS_PolyInfo const &) const
Definition d_bg_s.cpp:409
dBgW_Base * GetBgWBasePointer(cBgS_PolyInfo const &) const
Definition d_bg_s.cpp:383
cBgS()
Definition d_bg_s.h:39
virtual void Ct()
Definition d_bg_s.cpp:246
Definition c_m3d_g_pla.h:8
Definition c_sxyz.h:10
Definition d_bg_s_acch.h:64
Definition d_bg_s.h:68
dBgS_HIO()
Definition d_bg_s.h:95
virtual void genMessage(JORMContext *)
Definition d_bg_s.cpp:31
cXyz m_linecheck_end
Definition d_bg_s.h:134
bool ChkShapeDisp()
Definition d_bg_s.h:127
bool ChkAcchDrawWall()
Definition d_bg_s.h:128
bool ChkShdwDrawOff()
Definition d_bg_s.h:117
bool ChkGndCheck()
Definition d_bg_s.h:114
bool ChkRoofOff()
Definition d_bg_s.h:122
bool ChkCaptPolyOff()
Definition d_bg_s.h:116
bool ChkLineOff()
Definition d_bg_s.h:109
cXyz m_gndcheck_pos
Definition d_bg_s.h:135
bool ChkSplOff()
Definition d_bg_s.h:123
bool ChkObjLineCheck()
Definition d_bg_s.h:113
bool ChkCheckCounter()
Definition d_bg_s.h:110
bool ChkSplTimer()
Definition d_bg_s.h:124
virtual ~dBgS_HIO()
bool ChkRoofTimer()
Definition d_bg_s.h:121
s32 m_errorCheck_actor_num
Definition d_bg_s.h:136
flags_e
Definition d_bg_s.h:71
@ FLAG_ACCH_WALL_TIMER_e
Definition d_bg_s.h:74
@ FLAG_ACCH_DRAW_WALL_e
Definition d_bg_s.h:76
@ FLAG2_GROUND_CHECK_TIMER_e
Definition d_bg_s.h:82
@ FLAG2_LINE_OFF_e
Definition d_bg_s.h:85
@ FLAG2_SHDW_DRAW_TIMER_e
Definition d_bg_s.h:88
@ FLAG2_SHAPE_DISP_e
Definition d_bg_s.h:81
@ FLAG2_GND_CHK_e
Definition d_bg_s.h:80
@ FLAG2_CAPTPOLY_TIMER_e
Definition d_bg_s.h:90
@ FLAG2_CAPTPOLY_OFF_e
Definition d_bg_s.h:89
@ FLAG2_SHDW_DRAW_OFF_e
Definition d_bg_s.h:87
@ FLAG_ROOF_TIMER_e
Definition d_bg_s.h:77
@ FLAG_CHECK_COUNTER_e
Definition d_bg_s.h:73
@ FLAG2_SPL_OFF_e
Definition d_bg_s.h:83
@ FLAG2_SPH_CHK_TIMER_e
Definition d_bg_s.h:92
@ FLAG_ACCH_WALL_OFF_e
Definition d_bg_s.h:72
@ FLAG_ROOF_OFF_e
Definition d_bg_s.h:78
@ FLAG2_SPH_CHK_OFF_e
Definition d_bg_s.h:91
@ FLAG2_SPL_TIMER_e
Definition d_bg_s.h:84
@ FLAG_OBJ_LINE_CHECK_e
Definition d_bg_s.h:75
@ FLAG2_LINE_TIMER_e
Definition d_bg_s.h:86
s8 id
Definition d_bg_s.h:130
bool ChkGroundCheckTimer()
Definition d_bg_s.h:112
bool ChkCaptPolyTimer()
Definition d_bg_s.h:115
bool ChkSphChkTimer()
Definition d_bg_s.h:126
cXyz m_linecheck_start
Definition d_bg_s.h:133
bool ChkSphChkOff()
Definition d_bg_s.h:125
u16 m_flags
Definition d_bg_s.h:131
u16 m_flags2
Definition d_bg_s.h:132
bool ChkShdwDrawTimer()
Definition d_bg_s.h:118
bool ChkAcchWallOff()
Definition d_bg_s.h:119
bool ChkLineTimer()
Definition d_bg_s.h:111
bool ChkAcchWallTimer()
Definition d_bg_s.h:120
Definition d_bg_s.h:140
BOOL ChkPlayerAround()
Definition d_bg_s.h:179
BOOL ChkGndChkPlayerUnder()
Definition d_bg_s.h:175
s8 id
Definition d_bg_s.h:182
BOOL ChkDispDpArea()
Definition d_bg_s.h:178
flags_e
Definition d_bg_s.h:143
@ FLAG_ROOF_OFF_e
Definition d_bg_s.h:151
@ FLAG_DISP_POLY_e
Definition d_bg_s.h:144
@ FLAG_GNDCHK_PLAYER_UNDER_e
Definition d_bg_s.h:152
@ FLAG_WALL_OFF_e
Definition d_bg_s.h:150
@ FLAG_DISP_WATER_POLY_e
Definition d_bg_s.h:148
@ FLAG_GROUND_OFF_e
Definition d_bg_s.h:149
@ FLAG_WHITE_WIRE_e
Definition d_bg_s.h:146
@ FLAG_DISP_DP_AREA_e
Definition d_bg_s.h:145
@ FLAG_PLAYER_AROUND_e
Definition d_bg_s.h:147
f32 m_raise_amount
Definition d_bg_s.h:184
cXyz m_p0
Definition d_bg_s.h:185
BOOL ChkDispWaterPoly()
Definition d_bg_s.h:177
BOOL ChkRoofOff()
Definition d_bg_s.h:173
cXyz m_p1
Definition d_bg_s.h:186
BOOL ChkDispPoly()
Definition d_bg_s.h:180
BOOL ChkWallOff()
Definition d_bg_s.h:172
dBgS_InsideHIO()
Definition d_bg_s.h:155
virtual ~dBgS_InsideHIO()
Definition d_bg_s.cpp:87
virtual void genMessage(JORMContext *)
Definition d_bg_s.cpp:89
u16 m_flags
Definition d_bg_s.h:183
BOOL ChkWhiteWire()
Definition d_bg_s.h:176
BOOL ChkGroundOff()
Definition d_bg_s.h:174
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:190
bool ChkMoveBG_NoDABg(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:851
void MoveBgMatrixCrrPos(cBgS_PolyInfo const &, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_s.cpp:1420
bool WaterChk(dBgS_SplGrpChk *chk)
Definition d_bg_s.h:235
bool LineCross(cBgS_LinChk *i_linChk)
Definition d_bg_s.cpp:1115
s32 GetPolyColor(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:871
f32 GroundCross(cBgS_GndChk *i_gndChk)
Definition d_bg_s.cpp:1097
bool GetPolyAttackThrough(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:1069
void Ct()
Definition d_bg_s.cpp:477
u32 ChkPolyHSStick(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:1081
void Dt()
Definition d_bg_s.cpp:519
f32 RoofChk(dBgS_RoofChk *)
Definition d_bg_s.cpp:1244
void Move()
Definition d_bg_s.cpp:537
u32 ChkGrpInf(cBgS_PolyInfo const &, u32)
Definition d_bg_s.cpp:1041
fopAc_ac_c * GetActorPointer(cBgS_PolyInfo const &param_0) const
Definition d_bg_s.h:238
void WallCorrect(dBgS_Acch *)
Definition d_bg_s.cpp:1156
bool SphChk(dBgS_SphChk *, void *)
Definition d_bg_s.cpp:1331
void DrawPoly(cBgS_PolyInfo const &param_0, GXColor const &param_1)
Definition d_bg_s.cpp:1557
s32 GetCamMoveBG(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:985
bool SplGrpChk(dBgS_SplGrpChk *)
Definition d_bg_s.cpp:1285
~dBgS()
Definition d_bg_s.h:193
BOOL GetHorseNoEntry(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:886
int GetMagnetCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:908
s32 GetRoomPathPntNo(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:1018
void ChkDeleteActorRegist(fopAc_ac_c *)
Definition d_bg_s.cpp:808
u32 GetMtrlSndId(const cBgS_PolyInfo &param_0)
Definition d_bg_s.h:236
void DebugDrawPoly(const dBgW_Base &param_1)
Definition d_bg_s.cpp:1551
u32 GetUnderwaterRoofCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:930
s32 GetExitId(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:860
bool ChkMoveBG(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:836
fopAc_ac_c * PushPullCallBack(cBgS_PolyInfo const &, fopAc_ac_c *, s16, dBgW_Base::PushPullLabel)
Definition d_bg_s.cpp:1526
u8 field_0x1404[0x1408 - 0x1404]
Definition d_bg_s.h:264
void Draw()
Definition d_bg_s.cpp:662
void RideCallBack(cBgS_PolyInfo const &, fopAc_ac_c *)
Definition d_bg_s.cpp:1502
s32 GetWallCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:941
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:1378
void ClrMoveFlag()
Definition d_bg_s.cpp:528
int GetPolyAtt0(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:952
int GetSpecialCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:897
void ShdwDraw(cBgS_ShdwDraw *)
Definition d_bg_s.cpp:1137
int GetMonkeyBarsCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:919
s32 GetRoomCamId(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:996
int GetGrpSoundId(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:1029
void WallCorrectSort(dBgS_Acch *)
Definition d_bg_s.cpp:1200
int GetRoomId(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:1046
dBgS_HIO m_hio
Definition d_bg_s.h:265
void ArrowStickCallBack(cBgS_PolyInfo const &, fopAc_ac_c *, cXyz &)
Definition d_bg_s.cpp:1514
bool Regist(dBgW_Base *, fopAc_ac_c *)
Definition d_bg_s.cpp:817
void CaptPoly(dBgS_CaptPoly &)
Definition d_bg_s.cpp:783
int GetPolyAtt1(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:963
int GetGroundCode(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:974
dBgS()
Definition d_bg_s.h:192
s32 GetRoomPathId(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:1007
void MoveBgTransPos(cBgS_PolyInfo const &i_poly, bool param_1, cXyz *i_pos, csXyz *i_angle, csXyz *i_shapeAngle)
Definition d_bg_s.cpp:1400
Definition d_bg_w_base.h:27
PushPullLabel
Definition d_bg_w_base.h:29
Definition d_bg_w.h:262
Definition f_op_actor.h:271
STATIC_ASSERT(sizeof(cBgS_ChkElm)==0x14)
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:1440
bool dBgS_CheckBGroundPoly(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:1576
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:1482
bool dBgS_CheckBRoofPoly(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:1587
u8 dKy_pol_sound_get(cBgS_PolyInfo const *param_0)
Definition d_kankyo.cpp:10544
bool dBgS_CheckBWallPoly(cBgS_PolyInfo const &)
Definition d_bg_s.cpp:1565
f32 dBgS_GetNY(cBgS_PolyInfo const &poly)
Definition d_bg_s.cpp:1598
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:1488
int cXyz int * param_2
Definition d_path.cpp:106
unsigned int fpc_ProcID
Definition f_pc_base.h:10
Definition c_xyz.h:7
Definition d_bg_s_capt_poly.h:11