Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_bg_w.h
Go to the documentation of this file.
1#ifndef D_BG_D_BG_W_H
2#define D_BG_D_BG_W_H
3
6#include "d/d_bg_w_base.h"
7#include "dolphin/mtx.h"
8#include "dolphin/types.h"
9
10class cBgS_GrpPassChk;
12class fopAc_ac_c;
13struct cBgD_Vtx_t;
14struct dBgS_CaptPoly;
15
17public:
18 /* 0x00 */ cM3dGPla m_plane;
19
20 /* 80079754 */ cBgW_TriElm();
21 /* 800796F8 */ virtual ~cBgW_TriElm();
22
23 /* 0x14 vtable */
24}; // Size: 0x18
25
27public:
28 /* 0x0 */ u16 m_next;
29
30 /* 800791C4 */ cBgW_RwgElm();
31 /* 800791D4 */ virtual ~cBgW_RwgElm();
32}; // Size: 0x8
33
34class cBgW_NodeTree : public cM3dGAab {
35public:
36 /* 8007921C */ cBgW_NodeTree();
37
38 /* 80079238 */ virtual ~cBgW_NodeTree();
39};
40
42public:
43 /* 8007A1E4 */ cBgW_GrpElm();
44
45 /* 8007A184 */ virtual ~cBgW_GrpElm();
46
47 /* 0x4 */ cM3dGAab m_aab;
48};
49
51 /* 0x0 */ u16 m_roof_idx;
52 /* 0x2 */ u16 m_wall_idx;
53 /* 0x4 */ u16 m_gnd_idx;
54}; // Size: 0x6
55
56struct cBgD_Tri_t {
57 /* 0x0 */ u16 m_vtx_idx0;
58 /* 0x2 */ u16 m_vtx_idx1;
59 /* 0x4 */ u16 m_vtx_idx2;
60 /* 0x6 */ u16 m_id;
61 /* 0x8 */ u16 m_grp;
62}; // Size: 0xA
63
64struct cBgD_Ti_t {
65 /* 0x0 */ u32 m_info0;
66 /* 0x4 */ u32 m_info1;
67 /* 0x8 */ u32 m_info2;
68 /* 0xC */ u32 m_passFlag;
69};
70
71struct cBgD_Blk_t {
72 /* 0x0 */ u16 field_0x0;
73};
74
76 /* 0x0 */ u16 m_flag;
77 /* 0x2 */ u16 m_parent_id;
78 /* 0x4 */ u16 m_id[8];
79}; // Size: 0x14
80
81struct cBgD_Grp_t {
82 /* 0x00 */ char* m_name;
83 /* 0x04 */ cXyz m_scale;
84 /* 0x10 */ csXyz m_rotation;
85 /* 0x18 */ cXyz m_translation;
86 /* 0x24 */ u16 m_parent;
87 /* 0x26 */ u16 m_next_sibling;
88 /* 0x28 */ u16 m_first_child;
89 /* 0x2A */ u16 m_room_id;
90 /* 0x2C */ u16 m_first_vtx_idx;
91 /* 0x2E */ u16 m_tree_idx;
92 /* 0x30 */ u32 m_info;
93}; // Size: 0x34
94
95struct cBgD_t {
96 /* 0x00 */ int m_v_num; // vertex num
97 /* 0x04 */ cBgD_Vtx_t* m_v_tbl; // vertex table
98 /* 0x08 */ int m_t_num; // triangle num
99 /* 0x0C */ cBgD_Tri_t* m_t_tbl; // triangle table
100 /* 0x10 */ int m_b_num;
101 /* 0x14 */ cBgD_Blk_t* m_b_tbl;
102 /* 0x18 */ int m_tree_num;
104 /* 0x20 */ int m_g_num;
105 /* 0x24 */ cBgD_Grp_t* m_g_tbl;
106 /* 0x28 */ int m_ti_num;
107 /* 0x2C */ cBgD_Ti_t* m_ti_tbl;
108 /* 0x30 */ int mFlags;
109};
110
111class cBgW : public dBgW_Base {
112public:
113 enum Flags_e {
117 GLOBAL_e = 0x20,
119 LOCK_e = 0x80,
120 };
121
122 /* 80079294 */ cBgW();
123 /* 800793A4 */ void FreeArea();
124 /* 800793C4 */ void GlobalVtx();
125 /* 80079484 */ bool SetVtx();
126 /* 80079668 */ bool SetTri();
127 /* 80079770 */ void BlckConnect(u16*, int*, int);
128 /* 8007998C */ void MakeBlckTransMinMax(cXyz*, cXyz*);
129 /* 800799E0 */ void MakeBlckMinMax(int, cXyz*, cXyz*);
130 /* 80079A68 */ void MakeBlckBnd(int, cXyz*, cXyz*);
131 /* 80079BDC */ void MakeNodeTreeRp(int);
132 /* 80079CC4 */ void MakeNodeTreeGrpRp(int);
133 /* 80079DF0 */ void MakeNodeTree();
134 /* 80079F38 */ bool Set(cBgD_t* pdzb, u32 flags, Mtx* pbase_mtx);
135 /* 8007A200 */ bool RwgLineCheck(u16, cBgS_LinChk*);
136 /* 8007A3A0 */ bool LineCheckRp(cBgS_LinChk*, int);
137 /* 8007A52C */ bool LineCheckGrpRp(cBgS_LinChk*, int, int);
138 /* 8007A680 */ bool RwgGroundCheckCommon(f32, u16, cBgS_GndChk*);
139 /* 8007A774 */ bool RwgGroundCheckGnd(u16, cBgS_GndChk*);
140 /* 8007A824 */ bool RwgGroundCheckWall(u16, cBgS_GndChk*);
141 /* 8007A8F4 */ bool GroundCrossRp(cBgS_GndChk*, int);
142 /* 8007AA50 */ bool GroundCrossGrpRp(cBgS_GndChk*, int, int);
143 /* 8007ABC4 */ void CopyOldMtx();
144 /* 8007AC10 */ void Move();
145 /* 8007ADF0 */ void RwgShdwDraw(int, cBgS_ShdwDraw*);
146 /* 8007AEA4 */ void ShdwDrawRp(cBgS_ShdwDraw*, int);
147 /* 8007AFC0 */ void ShdwDrawGrpRp(cBgS_ShdwDraw*, int);
148 /* 8007B17C */ void GetTrans(cXyz*) const;
149 /* 8007B2F4 */ int GetPolyInfId(int) const;
150 /* 8007B30C */ u32 GetPolyInf0(int, u32, u32) const;
151 /* 8007B360 */ u32 GetMaskPolyInf0_NoShift(int, u32) const;
152 /* 8007B654 */ u32 GetPolyInf1(int, u32, u32) const;
153 /* 8007B78C */ u32 GetMaskPolyInf1_NoShift(int, u32) const;
154 /* 8007B824 */ u32 GetPolyInf2(int, u32, u32) const;
155 /* 8007B930 */ int GetTriGrp(int) const;
156
157 /* 8007933C */ virtual ~cBgW();
158 /* 80079EEC */ virtual bool ChkMemoryError();
159 /* 8007B948 */ virtual bool ChkNotReady() const;
160 /* 8007B958 */ virtual bool ChkLock() const;
161 /* 8007B964 */ virtual bool ChkMoveBg() const;
162 virtual u32 ChkMoveFlag() const = 0;
163 /* 8007B270 */ virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const;
164 /* 8007B1B4 */ virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const;
165 /* 8007B164 */ virtual cM3dGAab* GetBnd() const;
166 /* 8007B2B0 */ virtual u32 GetGrpInf(cBgS_PolyInfo const&) const;
167 virtual void OffMoveFlag() = 0;
168 /* 8007B240 */ virtual void GetTopUnder(f32*, f32*) const;
169 /* 8007A658 */ virtual bool LineCheck(cBgS_LinChk*);
170 /* 8007AB9C */ virtual bool GroundCross(cBgS_GndChk*);
171 /* 8007B084 */ virtual void ShdwDraw(cBgS_ShdwDraw*);
172 virtual void CaptPoly(dBgS_CaptPoly&) = 0;
173 virtual bool WallCorrect(dBgS_Acch*) = 0;
174 virtual bool WallCorrectSort(dBgS_Acch*) = 0;
175 virtual bool RoofChk(dBgS_RoofChk*) = 0;
176 virtual bool SplGrpChk(dBgS_SplGrpChk*) = 0;
177 virtual bool SphChk(dBgS_SphChk*, void*) = 0;
178 /* 8007B0E4 */ virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const;
179 virtual s32 GetExitId(cBgS_PolyInfo const&) = 0;
180 virtual s32 GetPolyColor(cBgS_PolyInfo const&) = 0;
181 virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
182 virtual int GetSpecialCode(cBgS_PolyInfo const&) = 0;
183 virtual int GetSpecialCode(int) = 0;
184 virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0;
185 virtual u32 GetPolyObjThrough(int) = 0;
186 virtual u32 GetPolyCamThrough(int) = 0;
187 virtual u32 GetPolyLinkThrough(int) = 0;
188 virtual u32 GetPolyArrowThrough(int) = 0;
189 virtual u32 GetPolyHSStick(int) = 0;
190 virtual u32 GetPolyBoomerangThrough(int) = 0;
191 virtual u32 GetPolyRopeThrough(int) = 0;
192 virtual u32 GetPolyBombThrough(int) = 0;
193 virtual bool GetShdwThrough(int) = 0;
194 virtual u32 GetUnderwaterRoofCode(int) = 0;
195 virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
196 virtual int GetLinkNo(cBgS_PolyInfo const&) = 0;
197 virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0;
198 virtual int GetPolyAtt0(cBgS_PolyInfo const&) = 0;
199 virtual int GetPolyAtt1(cBgS_PolyInfo const&) = 0;
200 virtual int GetGroundCode(cBgS_PolyInfo const&) = 0;
201 virtual u32 GetIronBallThrough(int) = 0;
202 virtual u32 GetAttackThrough(int) = 0;
203 virtual s32 GetCamMoveBG(cBgS_PolyInfo const&) = 0;
204 virtual s32 GetRoomCamId(cBgS_PolyInfo const&) = 0;
205 virtual s32 GetRoomPathId(cBgS_PolyInfo const&) = 0;
206 virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&) = 0;
208 virtual int GetGrpSoundId(cBgS_PolyInfo const&) = 0;
209 virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
210 virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
211 virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
212 /* 80079564 */ virtual void CalcPlane();
213 /* 800797BC */ virtual void ClassifyPlane();
214 /* 8007B0A8 */ virtual bool ChkPolyThrough(int, cBgS_PolyPassChk*);
215 /* 8007B0B0 */ virtual bool ChkShdwDrawThrough(int, cBgS_PolyPassChk*);
216 /* 8007B0DC */ virtual bool ChkGrpThrough(int, cBgS_GrpPassChk*, int);
217
220 bool ChkNoCalcVtx() { return mFlags & NO_CALC_VTX_e; }
221 bool ChkFlush() { return field_0x91 & 8; }
222 void SetLock() { mFlags |= LOCK_e; }
223 bool ChkRoofRegist() { return field_0x91 & 4;}
224 cBgD_Vtx_t* GetVtxTbl() const { return pm_vtx_tbl; }
225 int GetVtxNum() const { return pm_bgd->m_v_num; }
226
227public:
228 /* 0x18 */ MtxP pm_base; // Model Matrix
229 /* 0x1C */ Mtx m_inv_mtx;
230 /* 0x4C */ Mtx m_mtx;
231 /* 0x7C */ cXyz mTransVel;
232 /* 0x88 */ u8 mFlags;
234 /* 0x8C */ u32 field_0x8c;
235 /* 0x90 */ u8 mMoveCounter;
236 /* 0x91 */ u8 field_0x91;
237 /* 0x92 */ u16 m_rootGrpIdx;
238 /* 0x94 */ cBgW_TriElm* pm_tri;
239 /* 0x98 */ cBgW_RwgElm* pm_rwg;
241 /* 0xA0 */ cBgD_t* pm_bgd;
242 /* 0xA4 */ cBgW_BlkElm* pm_blk;
243 /* 0xA8 */ cBgW_GrpElm* pm_grp;
245};
246
247class dBgW;
250typedef void (*dBgW_CrrFunc)(dBgW*, void*, cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*);
251
252class dBgW : public cBgW {
253public:
254 /* 8007B970 */ dBgW();
255 /* 8007B9C0 */ void Move();
256 /* 8007B9EC */ void positionWallCorrect(dBgS_Acch*, f32, cM3dGPla&, cXyz* pupper_pos, f32);
257 /* 8007BA40 */ bool RwgWallCorrect(dBgS_Acch*, u16);
258 /* 8007C234 */ bool WallCorrectRp(dBgS_Acch*, int);
259 /* 8007C360 */ bool WallCorrectGrpRp(dBgS_Acch*, int, int);
260 /* 8007C4AC */ void RwgWallCorrectSort(dBgS_Acch*, u16);
261 /* 8007C714 */ void WallCorrectRpSort(dBgS_Acch*, int);
262 /* 8007C808 */ bool WallCorrectGrpRpSort(dBgS_Acch*, int, int);
263 /* 8007D0DC */ bool RwgRoofChk(u16, dBgS_RoofChk*);
264 /* 8007D208 */ bool RoofChkRp(dBgS_RoofChk*, int);
265 /* 8007D330 */ bool RoofChkGrpRp(dBgS_RoofChk*, int, int);
266 /* 8007D498 */ bool RwgSplGrpChk(u16, dBgS_SplGrpChk*);
267 /* 8007D5C4 */ bool SplGrpChkRp(dBgS_SplGrpChk*, int);
268 /* 8007D6F0 */ bool SplGrpChkGrpRp(dBgS_SplGrpChk*, int, int);
269 /* 8007D858 */ void RwgCaptPoly(int, dBgS_CaptPoly&);
270 /* 8007D8E8 */ void CaptPolyRp(dBgS_CaptPoly&, int);
271 /* 8007DA04 */ void CaptPolyGrpRp(dBgS_CaptPoly&, int, int);
272 /* 8007DB20 */ bool RwgSphChk(u16, dBgS_SphChk*, void*);
273 /* 8007DC70 */ bool SphChkRp(dBgS_SphChk*, void*, int);
274 /* 8007DDE0 */ bool SphChkGrpRp(dBgS_SphChk*, void*, int, int);
275
276 /* 8007E548 */ virtual ~dBgW() {}
277 /* 8007E4B4 */ virtual u32 ChkMoveFlag() const;
278 /* 8007E4A4 */ virtual void OffMoveFlag();
279 /* 8007DAF8 */ virtual void CaptPoly(dBgS_CaptPoly&);
280 /* 8007C484 */ virtual bool WallCorrect(dBgS_Acch*);
281 /* 8007C910 */ virtual bool WallCorrectSort(dBgS_Acch*);
282 /* 8007D470 */ virtual bool RoofChk(dBgS_RoofChk*);
283 /* 8007D830 */ virtual bool SplGrpChk(dBgS_SplGrpChk*);
284 /* 8007DF00 */ virtual bool SphChk(dBgS_SphChk*, void*);
285 /* 8007B3AC */ virtual s32 GetExitId(cBgS_PolyInfo const&);
286 /* 8007B3D8 */ virtual s32 GetPolyColor(cBgS_PolyInfo const&);
287 /* 8007B404 */ virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
288 /* 8007B430 */ virtual int GetSpecialCode(cBgS_PolyInfo const&);
289 /* 8007B460 */ virtual int GetSpecialCode(int);
290 /* 8007B488 */ virtual int GetMagnetCode(cBgS_PolyInfo const&);
291 /* 8007B4E0 */ virtual u32 GetPolyObjThrough(int);
292 /* 8007B504 */ virtual u32 GetPolyCamThrough(int);
293 /* 8007B52C */ virtual u32 GetPolyLinkThrough(int);
294 /* 8007B550 */ virtual u32 GetPolyArrowThrough(int);
295 /* 8007B574 */ virtual u32 GetPolyHSStick(int);
296 /* 8007B598 */ virtual u32 GetPolyBoomerangThrough(int);
297 /* 8007B5BC */ virtual u32 GetPolyRopeThrough(int);
298 /* 8007B5E0 */ virtual u32 GetPolyBombThrough(int);
299 /* 8007B604 */ virtual bool GetShdwThrough(int);
300 /* 8007B630 */ virtual u32 GetUnderwaterRoofCode(int);
301 /* 8007B4B4 */ virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&);
302 /* 8007B6AC */ virtual int GetLinkNo(cBgS_PolyInfo const&);
303 /* 8007B6D8 */ virtual s32 GetWallCode(cBgS_PolyInfo const&);
304 /* 8007B704 */ virtual int GetPolyAtt0(cBgS_PolyInfo const&);
305 /* 8007B734 */ virtual int GetPolyAtt1(cBgS_PolyInfo const&);
306 /* 8007B760 */ virtual int GetGroundCode(cBgS_PolyInfo const&);
307 /* 8007B7DC */ virtual u32 GetIronBallThrough(int);
308 /* 8007B800 */ virtual u32 GetAttackThrough(int);
309 /* 8007B87C */ virtual s32 GetCamMoveBG(cBgS_PolyInfo const&);
310 /* 8007B8A8 */ virtual s32 GetRoomCamId(cBgS_PolyInfo const&);
311 /* 8007B8D8 */ virtual s32 GetRoomPathId(cBgS_PolyInfo const&);
312 /* 8007B904 */ virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&);
313 /* 8007DF28 */ virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&);
314 /* 8007DF58 */ virtual int GetGrpSoundId(cBgS_PolyInfo const&);
315 /* 8007DF88 */ virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
316 csXyz*);
317 /* 8007DFC4 */ virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
318 csXyz*);
319 /* 8007E000 */ virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*,
320 csXyz*, csXyz*);
321 /* 8007E444 */ virtual void CallRideCallBack(fopAc_ac_c*, fopAc_ac_c*);
322 /* 8007E474 */ virtual void CallArrowStickCallBack(fopAc_ac_c*, fopAc_ac_c*, cXyz&);
323 /* 8007E02C */ virtual bool ChkPolyThrough(int, cBgS_PolyPassChk*);
324 /* 8007E360 */ virtual bool ChkShdwDrawThrough(int, cBgS_PolyPassChk*);
325 /* 8007E3D8 */ virtual bool ChkGrpThrough(int, cBgS_GrpPassChk*, int);
326
327 void SetCrrFunc(dBgW_CrrFunc func) { m_crr_func = func; }
329 void OnMoveFlag() { m_flags |= 1; }
330
331private:
335 /* 0xBC */ u8 m_flags;
336};
337
338#endif /* D_BG_D_BG_W_H */
T cLib_calcTimer(T *value)
Definition c_lib.h:74
Definition c_bg_s_chk.h:9
Definition d_bg_s_poly_pass_chk.h:5
Definition c_bg_s_shdw_draw.h:12
Definition d_bg_w.h:41
cBgW_GrpElm()
Definition d_bg_w.cpp:423
cM3dGAab m_aab
Definition d_bg_w.h:47
virtual ~cBgW_GrpElm()
Definition d_bg_w.cpp:420
Definition d_bg_w.h:34
cBgW_NodeTree()
Definition d_bg_w.cpp:22
virtual ~cBgW_NodeTree()
Definition d_bg_w.cpp:25
Definition d_bg_w.h:26
cBgW_RwgElm()
Definition d_bg_w.cpp:16
u16 m_next
Definition d_bg_w.h:28
virtual ~cBgW_RwgElm()
Definition d_bg_w.cpp:19
Definition d_bg_w.h:16
cBgW_TriElm()
Definition d_bg_w.cpp:142
virtual ~cBgW_TriElm()
Definition d_bg_w.cpp:139
cM3dGPla m_plane
Definition d_bg_w.h:18
Definition d_bg_w.h:111
virtual int GetPolyAtt0(cBgS_PolyInfo const &)=0
virtual void CaptPoly(dBgS_CaptPoly &)=0
virtual bool ChkLock() const
Definition d_bg_w.cpp:1059
virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const &)=0
cBgD_t * pm_bgd
Definition d_bg_w.h:241
virtual s32 GetRoomCamId(cBgS_PolyInfo const &)=0
void FreeArea()
Definition d_bg_w.cpp:55
virtual int GetSpecialCode(int)=0
virtual int GetGroundCode(cBgS_PolyInfo const &)=0
virtual int GetSpecialCode(cBgS_PolyInfo const &)=0
virtual bool WallCorrect(dBgS_Acch *)=0
void Move()
Definition d_bg_w.cpp:686
virtual bool SphChk(dBgS_SphChk *, void *)=0
u32 GetMaskPolyInf1_NoShift(int, u32) const
Definition d_bg_w.cpp:1007
virtual u32 GetPolyLinkThrough(int)=0
void BlckConnect(u16 *, int *, int)
Definition d_bg_w.cpp:145
virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const &)=0
u32 GetOldInvMtx(Mtx m)
Definition d_bg_w.h:218
u8 mMoveCounter
Definition d_bg_w.h:235
virtual bool GroundCross(cBgS_GndChk *)
Definition d_bg_w.cpp:673
bool ChkFlush()
Definition d_bg_w.h:221
virtual u32 GetUnderwaterRoofCode(int)=0
void GetTrans(cXyz *) const
Definition d_bg_w.cpp:830
Flags_e
Definition d_bg_w.h:113
@ NO_CALC_VTX_e
Definition d_bg_w.h:115
@ CBGW_UNK_FLAG_40
Definition d_bg_w.h:118
@ GLOBAL_e
Definition d_bg_w.h:117
@ LOCK_e
Definition d_bg_w.h:119
@ NO_VTX_TBL_e
Definition d_bg_w.h:116
@ MOVE_BG_e
Definition d_bg_w.h:114
cBgD_Vtx_t * pm_vtx_tbl
Definition d_bg_w.h:240
u8 mNeedsFullTransform
Definition d_bg_w.h:233
void MakeBlckBnd(int, cXyz *, cXyz *)
Definition d_bg_w.cpp:237
virtual ~cBgW()
Definition d_bg_w.cpp:50
virtual u32 GetPolyBombThrough(int)=0
virtual s32 GetCamMoveBG(cBgS_PolyInfo const &)=0
cBgD_Vtx_t * GetVtxTbl() const
Definition d_bg_w.h:224
void MakeNodeTreeGrpRp(int)
Definition d_bg_w.cpp:301
cBgW()
Definition d_bg_w.cpp:28
virtual bool ChkMemoryError()
Definition d_bg_w.cpp:346
void SetLock()
Definition d_bg_w.h:222
bool RwgGroundCheckGnd(u16, cBgS_GndChk *)
Definition d_bg_w.cpp:558
virtual cM3dGPla GetTriPla(cBgS_PolyInfo const &) const
Definition d_bg_w.cpp:857
u32 field_0x8c
Definition d_bg_w.h:234
u32 GetPolyInf0(int, u32, u32) const
Definition d_bg_w.cpp:875
virtual u32 GetIronBallThrough(int)=0
bool GroundCrossRp(cBgS_GndChk *, int)
Definition d_bg_w.cpp:598
bool RwgGroundCheckCommon(f32, u16, cBgS_GndChk *)
Definition d_bg_w.cpp:540
cBgW_RwgElm * pm_rwg
Definition d_bg_w.h:239
virtual bool ChkNotReady() const
Definition d_bg_w.cpp:1054
virtual void CrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)=0
virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const &) const
Definition d_bg_w.cpp:807
cXyz mTransVel
Definition d_bg_w.h:231
void MakeBlckMinMax(int, cXyz *, cXyz *)
Definition d_bg_w.cpp:208
virtual int GetLinkNo(cBgS_PolyInfo const &)=0
virtual void TransPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)=0
bool ChkNoCalcVtx()
Definition d_bg_w.h:220
virtual int GetPolyAtt1(cBgS_PolyInfo const &)=0
void CopyOldMtx()
Definition d_bg_w.cpp:678
cBgW_GrpElm * pm_grp
Definition d_bg_w.h:243
void MakeNodeTree()
Definition d_bg_w.cpp:322
void ShdwDrawGrpRp(cBgS_ShdwDraw *, int)
Definition d_bg_w.cpp:767
virtual s32 GetWallCode(cBgS_PolyInfo const &)=0
MtxP pm_base
Definition d_bg_w.h:228
virtual u32 ChkMoveFlag() const =0
int GetPolyInfId(int) const
Definition d_bg_w.cpp:870
Mtx m_mtx
Definition d_bg_w.h:230
u32 GetPolyInf1(int, u32, u32) const
Definition d_bg_w.cpp:974
bool RwgLineCheck(u16, cBgS_LinChk *)
Definition d_bg_w.cpp:426
virtual bool ChkMoveBg() const
Definition d_bg_w.cpp:1064
bool SetVtx()
Definition d_bg_w.cpp:81
virtual void GetTopUnder(f32 *, f32 *) const
Definition d_bg_w.cpp:850
virtual void MatrixCrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)=0
cBgW_BlkElm * pm_blk
Definition d_bg_w.h:242
virtual int GetMagnetCode(cBgS_PolyInfo const &)=0
virtual bool GetTriPnt(cBgS_PolyInfo const &, cXyz *, cXyz *, cXyz *) const
Definition d_bg_w.cpp:839
virtual u32 GetGrpInf(cBgS_PolyInfo const &) const
Definition d_bg_w.cpp:864
u8 mFlags
Definition d_bg_w.h:232
virtual int GetMonkeyBarsCode(cBgS_PolyInfo const &)=0
virtual u32 GetPolyArrowThrough(int)=0
cBgW_TriElm * pm_tri
Definition d_bg_w.h:238
virtual s32 GetPolyColor(cBgS_PolyInfo const &)=0
cBgW_NodeTree * pm_node_tree
Definition d_bg_w.h:244
void RwgShdwDraw(int, cBgS_ShdwDraw *)
Definition d_bg_w.cpp:726
virtual u32 GetPolyCamThrough(int)=0
int GetTriGrp(int) const
Definition d_bg_w.cpp:1049
MtxP GetBaseMtxP()
Definition d_bg_w.h:219
virtual void ShdwDraw(cBgS_ShdwDraw *)
Definition d_bg_w.cpp:785
bool LineCheckGrpRp(cBgS_LinChk *, int, int)
Definition d_bg_w.cpp:501
virtual void OffMoveFlag()=0
virtual bool RoofChk(dBgS_RoofChk *)=0
virtual bool ChkGrpThrough(int, cBgS_GrpPassChk *, int)
Definition d_bg_w.cpp:802
u32 GetMaskPolyInf0_NoShift(int, u32) const
Definition d_bg_w.cpp:881
bool SetTri()
Definition d_bg_w.cpp:127
bool Set(cBgD_t *pdzb, u32 flags, Mtx *pbase_mtx)
Definition d_bg_w.cpp:357
virtual int GetGrpSoundId(cBgS_PolyInfo const &)=0
virtual bool SplGrpChk(dBgS_SplGrpChk *)=0
virtual u32 GetPolyRopeThrough(int)=0
virtual u32 GetPolyObjThrough(int)=0
virtual u32 GetPolyBoomerangThrough(int)=0
virtual void CalcPlane()
Definition d_bg_w.cpp:108
void GlobalVtx()
Definition d_bg_w.cpp:65
void MakeBlckTransMinMax(cXyz *, cXyz *)
Definition d_bg_w.cpp:201
virtual bool LineCheck(cBgS_LinChk *)
Definition d_bg_w.cpp:534
void ShdwDrawRp(cBgS_ShdwDraw *, int)
Definition d_bg_w.cpp:743
virtual bool WallCorrectSort(dBgS_Acch *)=0
int GetVtxNum() const
Definition d_bg_w.h:225
bool LineCheckRp(cBgS_LinChk *, int)
Definition d_bg_w.cpp:458
virtual void ClassifyPlane()
Definition d_bg_w.cpp:159
u16 m_rootGrpIdx
Definition d_bg_w.h:237
virtual bool ChkShdwDrawThrough(int, cBgS_PolyPassChk *)
Definition d_bg_w.cpp:797
virtual s32 GetRoomPathId(cBgS_PolyInfo const &)=0
Mtx m_inv_mtx
Definition d_bg_w.h:229
bool ChkRoofRegist()
Definition d_bg_w.h:223
u32 GetPolyInf2(int, u32, u32) const
Definition d_bg_w.cpp:1023
virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const &)=0
virtual s32 GetExitId(cBgS_PolyInfo const &)=0
virtual bool GetShdwThrough(int)=0
virtual u32 GetAttackThrough(int)=0
void MakeNodeTreeRp(int)
Definition d_bg_w.cpp:273
virtual cM3dGAab * GetBnd() const
Definition d_bg_w.cpp:825
virtual bool ChkPolyThrough(int, cBgS_PolyPassChk *)
Definition d_bg_w.cpp:791
bool RwgGroundCheckWall(u16, cBgS_GndChk *)
Definition d_bg_w.cpp:577
u8 field_0x91
Definition d_bg_w.h:236
bool GroundCrossGrpRp(cBgS_GndChk *, int, int)
Definition d_bg_w.cpp:635
virtual u32 GetPolyHSStick(int)=0
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_w_base.h:26
Definition d_bg_w.h:252
dBgW_CrrFunc m_crr_func
Definition d_bg_w.h:332
virtual s32 GetRoomPathId(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:1039
virtual ~dBgW()
Definition d_bg_w.h:276
virtual u32 GetPolyCamThrough(int)
Definition d_bg_w.cpp:929
virtual void MatrixCrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w.cpp:2162
virtual int GetSpecialCode(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:903
virtual bool SplGrpChk(dBgS_SplGrpChk *)
Definition d_bg_w.cpp:1945
virtual u32 GetPolyLinkThrough(int)
Definition d_bg_w.cpp:934
void RwgWallCorrectSort(dBgS_Acch *, u16)
Definition d_bg_w.cpp:1404
void positionWallCorrect(dBgS_Acch *, f32, cM3dGPla &, cXyz *pupper_pos, f32)
Definition d_bg_w.cpp:1084
void CaptPolyRp(dBgS_CaptPoly &, int)
Definition d_bg_w.cpp:1965
void CaptPolyGrpRp(dBgS_CaptPoly &, int, int)
Definition d_bg_w.cpp:1993
virtual s32 GetRoomCamId(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:1034
bool RoofChkGrpRp(dBgS_RoofChk *, int, int)
Definition d_bg_w.cpp:1813
virtual u32 ChkMoveFlag() const
Definition d_bg_w.cpp:2290
bool RoofChkRp(dBgS_RoofChk *, int)
Definition d_bg_w.cpp:1784
virtual void CallRideCallBack(fopAc_ac_c *, fopAc_ac_c *)
Definition d_bg_w.cpp:2270
bool RwgSplGrpChk(u16, dBgS_SplGrpChk *)
Definition d_bg_w.cpp:1852
void WallCorrectRpSort(dBgS_Acch *, int)
Definition d_bg_w.cpp:1490
u8 m_flags
Definition d_bg_w.h:335
virtual bool SphChk(dBgS_SphChk *, void *)
Definition d_bg_w.cpp:2127
virtual bool WallCorrect(dBgS_Acch *)
Definition d_bg_w.cpp:1384
virtual u32 GetPolyObjThrough(int)
Definition d_bg_w.cpp:924
virtual bool ChkGrpThrough(int, cBgS_GrpPassChk *, int)
Definition d_bg_w.cpp:2249
virtual int GetLinkNo(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:981
virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:898
bool SphChkRp(dBgS_SphChk *, void *, int)
Definition d_bg_w.cpp:2056
virtual bool GetShdwThrough(int)
Definition d_bg_w.cpp:964
virtual u32 GetPolyHSStick(int)
Definition d_bg_w.cpp:944
virtual void TransPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w.cpp:2153
virtual void CrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w.cpp:2144
void SetRideCallback(dBgW_RideCallback func)
Definition d_bg_w.h:328
virtual void OffMoveFlag()
Definition d_bg_w.cpp:2285
virtual int GetGroundCode(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:1001
dBgW_RideCallback m_ride_callback
Definition d_bg_w.h:333
dBgW()
Definition d_bg_w.cpp:1069
bool RwgWallCorrect(dBgS_Acch *, u16)
Definition d_bg_w.cpp:1100
virtual void CallArrowStickCallBack(fopAc_ac_c *, fopAc_ac_c *, cXyz &)
Definition d_bg_w.cpp:2278
void SetCrrFunc(dBgW_CrrFunc func)
Definition d_bg_w.h:327
virtual bool ChkShdwDrawThrough(int, cBgS_PolyPassChk *)
Definition d_bg_w.cpp:2240
dBgW_ArrowStickCallback m_arrow_stick_callback
Definition d_bg_w.h:334
virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:2133
virtual u32 GetPolyArrowThrough(int)
Definition d_bg_w.cpp:939
void Move()
Definition d_bg_w.cpp:1077
virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:1044
virtual u32 GetPolyBoomerangThrough(int)
Definition d_bg_w.cpp:949
bool RwgRoofChk(u16, dBgS_RoofChk *)
Definition d_bg_w.cpp:1754
virtual u32 GetPolyBombThrough(int)
Definition d_bg_w.cpp:959
virtual u32 GetUnderwaterRoofCode(int)
Definition d_bg_w.cpp:969
bool SplGrpChkRp(dBgS_SplGrpChk *, int)
Definition d_bg_w.cpp:1881
virtual int GetMagnetCode(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:913
bool WallCorrectGrpRpSort(dBgS_Acch *, int, int)
Definition d_bg_w.cpp:1514
virtual u32 GetPolyRopeThrough(int)
Definition d_bg_w.cpp:954
bool WallCorrectGrpRp(dBgS_Acch *, int, int)
Definition d_bg_w.cpp:1353
void OnMoveFlag()
Definition d_bg_w.h:329
virtual u32 GetIronBallThrough(int)
Definition d_bg_w.cpp:1013
virtual u32 GetAttackThrough(int)
Definition d_bg_w.cpp:1018
virtual int GetPolyAtt1(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:996
bool SphChkGrpRp(dBgS_SphChk *, void *, int, int)
Definition d_bg_w.cpp:2097
bool RwgSphChk(u16, dBgS_SphChk *, void *)
Definition d_bg_w.cpp:2025
void RwgCaptPoly(int, dBgS_CaptPoly &)
Definition d_bg_w.cpp:1950
virtual bool WallCorrectSort(dBgS_Acch *)
Definition d_bg_w.cpp:1541
virtual int GetPolyAtt0(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:991
bool SplGrpChkGrpRp(dBgS_SplGrpChk *, int, int)
Definition d_bg_w.cpp:1910
virtual void CaptPoly(dBgS_CaptPoly &)
Definition d_bg_w.cpp:2019
virtual bool ChkPolyThrough(int, cBgS_PolyPassChk *)
Definition d_bg_w.cpp:2169
virtual bool RoofChk(dBgS_RoofChk *)
Definition d_bg_w.cpp:1847
virtual s32 GetExitId(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:888
bool WallCorrectRp(dBgS_Acch *, int)
Definition d_bg_w.cpp:1322
virtual s32 GetWallCode(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:986
virtual s32 GetCamMoveBG(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:1029
virtual s32 GetPolyColor(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:893
virtual int GetGrpSoundId(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:2138
virtual int GetMonkeyBarsCode(cBgS_PolyInfo const &)
Definition d_bg_w.cpp:919
void(* dBgW_CrrFunc)(dBgW *, void *, cBgS_PolyInfo const &, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w.h:250
void(* dBgW_RideCallback)(dBgW *, fopAc_ac_c *, fopAc_ac_c *)
Definition d_bg_w.h:248
void(* dBgW_ArrowStickCallback)(dBgW *, fopAc_ac_c *, fopAc_ac_c *, cXyz &)
Definition d_bg_w.h:249
int m
Definition e_atan2.c:62
f32(* MtxP)[4]
Definition mtx.h:18
f32 Mtx[3][4]
Definition mtx.h:15
Definition d_bg_w.h:71
u16 field_0x0
Definition d_bg_w.h:72
Definition d_bg_w.h:81
u16 m_first_vtx_idx
Definition d_bg_w.h:90
cXyz m_scale
Definition d_bg_w.h:83
u16 m_room_id
Definition d_bg_w.h:89
cXyz m_translation
Definition d_bg_w.h:85
u16 m_first_child
Definition d_bg_w.h:88
u16 m_next_sibling
Definition d_bg_w.h:87
u32 m_info
Definition d_bg_w.h:92
u16 m_parent
Definition d_bg_w.h:86
char * m_name
Definition d_bg_w.h:82
csXyz m_rotation
Definition d_bg_w.h:84
u16 m_tree_idx
Definition d_bg_w.h:91
Definition d_bg_w.h:64
u32 m_info1
Definition d_bg_w.h:66
u32 m_info2
Definition d_bg_w.h:67
u32 m_info0
Definition d_bg_w.h:65
u32 m_passFlag
Definition d_bg_w.h:68
Definition d_bg_w.h:75
u16 m_flag
Definition d_bg_w.h:76
u16 m_parent_id
Definition d_bg_w.h:77
u16 m_id[8]
Definition d_bg_w.h:78
Definition d_bg_w.h:56
u16 m_vtx_idx0
Definition d_bg_w.h:57
u16 m_id
Definition d_bg_w.h:60
u16 m_vtx_idx2
Definition d_bg_w.h:59
u16 m_vtx_idx1
Definition d_bg_w.h:58
u16 m_grp
Definition d_bg_w.h:61
Definition c_bg_s_chk.h:7
Definition d_bg_w.h:95
int m_b_num
Definition d_bg_w.h:100
int m_v_num
Definition d_bg_w.h:96
cBgD_Blk_t * m_b_tbl
Definition d_bg_w.h:101
cBgD_Tree_t * m_tree_tbl
Definition d_bg_w.h:103
cBgD_Vtx_t * m_v_tbl
Definition d_bg_w.h:97
cBgD_Tri_t * m_t_tbl
Definition d_bg_w.h:99
int m_g_num
Definition d_bg_w.h:104
int mFlags
Definition d_bg_w.h:108
int m_tree_num
Definition d_bg_w.h:102
cBgD_Grp_t * m_g_tbl
Definition d_bg_w.h:105
cBgD_Ti_t * m_ti_tbl
Definition d_bg_w.h:107
int m_ti_num
Definition d_bg_w.h:106
int m_t_num
Definition d_bg_w.h:98
Definition d_a_ep.cpp:138
Definition d_a_ep.cpp:136
Definition d_a_ep.cpp:134
Definition d_bg_w.h:50
u16 m_gnd_idx
Definition d_bg_w.h:53
u16 m_roof_idx
Definition d_bg_w.h:51
u16 m_wall_idx
Definition d_bg_w.h:52
Definition d_a_npc_fguard.cpp:137
Definition d_a_npc_fguard.cpp:122
Definition d_a_hozelda.cpp:20
Definition d_a_ep.cpp:66
Definition d_a_npc_fguard.cpp:115
Definition d_bg_s_cap_poly.h:10
Definition d_a_ep.cpp:19
int BOOL
Definition types.h:27
unsigned long u32
Definition types.h:10
float f32
Definition types.h:22
unsigned short u16
Definition types.h:9
signed long s32
Definition types.h:6
unsigned char u8
Definition types.h:8