Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_bg_w_kcol.h
Go to the documentation of this file.
1#ifndef D_BG_D_BG_W_KCOL_H
2#define D_BG_D_BG_W_KCOL_H
3
6#include "d/d_bg_plc.h"
7#include "d/d_bg_s_sph_chk.h"
8#include "d/d_bg_w_base.h"
9
10class cBgS_GrpPassChk;
12struct dBgPc;
13struct dBgS_CaptPoly;
14
16 /* 0x0 */ f32 height;
17 /* 0x4 */ u16 pos_i;
18 /* 0x6 */ u16 fnrm_i;
19 /* 0x8 */ u16 enrm1_i;
20 /* 0xA */ u16 enrm2_i;
21 /* 0xC */ u16 enrm3_i;
22 /* 0xE */ u16 attribute;
23}; // Size: 0x10
24
39
40class dBgWKCol : public dBgW_Base {
41public:
42 dBgWKCol();
43 static void* initKCollision(void*);
44 void create(void* pprism, void* plc);
45 void getTriNrm(KC_PrismData*, Vec**) const;
46 cM3dGPla GetTriPla(int) const;
47 bool GetTriPnt(int, Vec*, Vec*, Vec*) const;
48 bool GetTriPnt(KC_PrismData const*, Vec*, Vec*, Vec*) const;
49 void getPolyCode(int, dBgPc*) const;
52
53 virtual ~dBgWKCol();
54 virtual bool ChkNotReady() const;
55 virtual bool ChkLock() const;
56 virtual bool ChkMoveBg() const;
57 virtual u32 ChkMoveFlag() const;
58 virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const;
59 virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const;
60 virtual cM3dGAab* GetBnd() const;
61 virtual u32 GetGrpInf(cBgS_PolyInfo const&) const;
62 virtual void OffMoveFlag();
63 virtual void GetTopUnder(f32*, f32*) const;
64 virtual bool LineCheck(cBgS_LinChk*);
65 virtual bool GroundCross(cBgS_GndChk*);
66 virtual void ShdwDraw(cBgS_ShdwDraw*);
67 virtual void CaptPoly(dBgS_CaptPoly&);
68 virtual bool WallCorrect(dBgS_Acch*);
69 virtual bool WallCorrectSort(dBgS_Acch*);
70 virtual bool RoofChk(dBgS_RoofChk*);
71 virtual bool SplGrpChk(dBgS_SplGrpChk*);
72 virtual bool SphChk(dBgS_SphChk*, void*);
73 virtual int GetGrpRoomIndex(cBgS_PolyInfo const&) const;
74 virtual int GetExitId(cBgS_PolyInfo const&);
75 virtual int GetPolyColor(cBgS_PolyInfo const&);
76 virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
77 virtual int GetSpecialCode(cBgS_PolyInfo const&);
78 virtual int GetSpecialCode(int);
79 virtual int GetMagnetCode(cBgS_PolyInfo const&);
80 virtual u32 GetPolyObjThrough(int);
81 virtual u32 GetPolyCamThrough(int);
82 virtual u32 GetPolyLinkThrough(int);
83 virtual u32 GetPolyArrowThrough(int);
84 virtual u32 GetPolyHSStick(int);
85 virtual u32 GetPolyBoomerangThrough(int);
86 virtual u32 GetPolyRopeThrough(int);
87 virtual u32 GetPolyBombThrough(int);
88 virtual bool GetShdwThrough(int);
89 virtual u32 GetUnderwaterRoofCode(int);
90 virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&);
91 virtual int GetLinkNo(cBgS_PolyInfo const&);
92 virtual int GetWallCode(cBgS_PolyInfo const&);
93 virtual int GetPolyAtt0(cBgS_PolyInfo const&);
94 virtual int GetPolyAtt1(cBgS_PolyInfo const&);
95 virtual int GetGroundCode(cBgS_PolyInfo const&);
96 virtual u32 GetIronBallThrough(int);
97 virtual u32 GetAttackThrough(int);
98 virtual int GetCamMoveBG(cBgS_PolyInfo const&);
99 virtual int GetRoomCamId(cBgS_PolyInfo const&);
100 virtual int GetRoomPathId(cBgS_PolyInfo const&);
101 virtual int GetRoomPathPntNo(cBgS_PolyInfo const&);
102 virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&);
103 virtual int GetGrpSoundId(cBgS_PolyInfo const&);
104 virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
105 csXyz*);
106 virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
107 csXyz*);
108 virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*,
109 csXyz*, csXyz*);
110
111 KC_PrismData* getPrismData(int poly_index) const {
112 KC_PrismData* pd = &m_pkc_head->m_prism_data[poly_index];
113 JUT_ASSERT(0x12E, pd < (KC_PrismData*)m_pkc_head->m_block_data);
114 return pd;
115 }
116
117 void getTri1Pos(KC_PrismData* pd, Vec** nrm) const { *nrm = &m_pkc_head->m_pos_data[pd->pos_i]; }
118
119private:
121 /* 0x1C */ dBgPlc m_code;
122 /* 0x20 */ cM3dGAab m_bnd;
123};
124
125#endif /* D_BG_D_BG_W_KCOL_H */
Definition c_bg_s_gnd_chk.h:8
Definition c_bg_s_grp_pass_chk.h:4
Definition c_bg_s_lin_chk.h:8
Definition c_bg_s_poly_info.h:7
Definition c_bg_s_poly_pass_chk.h:4
Definition c_bg_s_shdw_draw.h:12
Definition c_m3d_g_aab.h:9
Definition c_m3d_g_pla.h:8
Definition c_sxyz.h:10
Definition d_bg_pc.h:20
Definition d_bg_plc.h:13
Definition d_bg_s_acch.h:62
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_kcol.h:40
virtual u32 ChkMoveFlag() const
Definition d_bg_w_kcol.cpp:62
virtual u32 GetIronBallThrough(int)
Definition d_bg_w_kcol.cpp:2415
virtual cM3dGAab * GetBnd() const
Definition d_bg_w_kcol.cpp:132
static void * initKCollision(void *)
Definition d_bg_w_kcol.cpp:22
virtual u32 GetPolyBombThrough(int)
Definition d_bg_w_kcol.cpp:2354
virtual int GetMonkeyBarsCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2297
virtual void TransPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w_kcol.cpp:2480
virtual int GetWallCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2383
virtual u32 GetPolyObjThrough(int)
Definition d_bg_w_kcol.cpp:2305
virtual int GetExitId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2254
virtual u32 GetPolyCamThrough(int)
Definition d_bg_w_kcol.cpp:2312
virtual bool GroundCross(cBgS_GndChk *)
Definition d_bg_w_kcol.cpp:518
virtual int GetSpecialCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2278
virtual int GetCamMoveBG(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2429
virtual void MatrixCrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w_kcol.cpp:2483
virtual int GetRoomPathPntNo(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2453
virtual u32 GetPolyArrowThrough(int)
Definition d_bg_w_kcol.cpp:2326
cM3dGPla GetTriPla(int) const
Definition d_bg_w_kcol.cpp:71
virtual bool LineCheck(cBgS_LinChk *)
Definition d_bg_w_kcol.cpp:233
void getTriNrm(KC_PrismData *, Vec **) const
Definition d_bg_w_kcol.cpp:45
virtual bool WallCorrectSort(dBgS_Acch *)
Definition d_bg_w_kcol.cpp:1013
virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2461
virtual void OffMoveFlag()
Definition d_bg_w_kcol.cpp:143
virtual ~dBgWKCol()
Definition d_bg_w_kcol.cpp:20
void getTri1Pos(KC_PrismData *pd, Vec **nrm) const
Definition d_bg_w_kcol.h:117
virtual u32 GetUnderwaterRoofCode(int)
Definition d_bg_w_kcol.cpp:2361
virtual bool SphChk(dBgS_SphChk *, void *)
Definition d_bg_w_kcol.cpp:2085
virtual bool ChkLock() const
Definition d_bg_w_kcol.cpp:54
void getPolyCode(int, dBgPc *) const
Definition d_bg_w_kcol.cpp:145
virtual void GetTopUnder(f32 *, f32 *) const
Definition d_bg_w_kcol.cpp:2241
virtual int GetRoomCamId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2437
virtual bool ChkNotReady() const
Definition d_bg_w_kcol.cpp:50
virtual int GetLinkNo(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2375
bool GetTriPnt(int, Vec *, Vec *, Vec *) const
Definition d_bg_w_kcol.cpp:93
dBgWKCol()
Definition d_bg_w_kcol.cpp:16
virtual int GetGrpSoundId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2469
virtual void CaptPoly(dBgS_CaptPoly &)
Definition d_bg_w_kcol.cpp:857
virtual bool SplGrpChk(dBgS_SplGrpChk *)
Definition d_bg_w_kcol.cpp:1972
virtual void CrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w_kcol.cpp:2477
virtual u32 GetPolyHSStick(int)
Definition d_bg_w_kcol.cpp:2333
virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2270
virtual bool RoofChk(dBgS_RoofChk *)
Definition d_bg_w_kcol.cpp:1848
virtual int GetPolyAtt0(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2391
virtual int GetRoomPathId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2445
bool ChkShdwDrawThrough(dBgPc *)
Definition d_bg_w_kcol.cpp:848
KC_PrismData * getPrismData(int poly_index) const
Definition d_bg_w_kcol.h:111
KC_Header * m_pkc_head
Definition d_bg_w_kcol.h:120
virtual int GetPolyColor(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2262
virtual bool WallCorrect(dBgS_Acch *)
Definition d_bg_w_kcol.cpp:1462
virtual int GetGroundCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2407
virtual int GetPolyAtt1(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2399
cM3dGAab m_bnd
Definition d_bg_w_kcol.h:122
virtual u32 GetAttackThrough(int)
Definition d_bg_w_kcol.cpp:2422
virtual u32 GetGrpInf(cBgS_PolyInfo const &) const
Definition d_bg_w_kcol.cpp:136
virtual void ShdwDraw(cBgS_ShdwDraw *)
Definition d_bg_w_kcol.cpp:610
dBgPlc m_code
Definition d_bg_w_kcol.h:121
virtual u32 GetPolyRopeThrough(int)
Definition d_bg_w_kcol.cpp:2347
virtual bool ChkMoveBg() const
Definition d_bg_w_kcol.cpp:58
virtual u32 GetPolyBoomerangThrough(int)
Definition d_bg_w_kcol.cpp:2340
virtual bool GetShdwThrough(int)
Definition d_bg_w_kcol.cpp:2368
virtual u32 GetPolyLinkThrough(int)
Definition d_bg_w_kcol.cpp:2319
virtual int GetGrpRoomIndex(cBgS_PolyInfo const &) const
Definition d_bg_w_kcol.cpp:2246
virtual int GetMagnetCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:2289
void create(void *pprism, void *plc)
Definition d_bg_w_kcol.cpp:31
bool chkPolyThrough(dBgPc *, cBgS_PolyPassChk *, cBgS_GrpPassChk *, cXyz &) const
Definition d_bg_w_kcol.cpp:153
Definition d_bg_w_base.h:26
static f32 pd[19]
Definition d_a_obj_wflag.cpp:30
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
Definition d_bg_w_kcol.h:25
u32 m_block_width_shift
Definition d_bg_w_kcol.h:35
Vec m_area_min_pos
Definition d_bg_w_kcol.h:31
u32 m_area_x_blocks_shift
Definition d_bg_w_kcol.h:36
KC_PrismData * m_prism_data
Definition d_bg_w_kcol.h:28
u32 m_area_x_width_mask
Definition d_bg_w_kcol.h:32
f32 m_prism_thickness
Definition d_bg_w_kcol.h:30
u32 m_area_y_width_mask
Definition d_bg_w_kcol.h:33
Vec * m_nrm_data
Definition d_bg_w_kcol.h:27
Vec * m_pos_data
Definition d_bg_w_kcol.h:26
KC_PrismData * m_block_data
Definition d_bg_w_kcol.h:29
u32 m_area_xy_blocks_shift
Definition d_bg_w_kcol.h:37
u32 m_area_z_width_mask
Definition d_bg_w_kcol.h:34
Definition d_bg_w_kcol.h:15
u16 enrm3_i
Definition d_bg_w_kcol.h:21
u16 attribute
Definition d_bg_w_kcol.h:22
u16 pos_i
Definition d_bg_w_kcol.h:17
u16 fnrm_i
Definition d_bg_w_kcol.h:18
f32 height
Definition d_bg_w_kcol.h:16
u16 enrm1_i
Definition d_bg_w_kcol.h:19
u16 enrm2_i
Definition d_bg_w_kcol.h:20
Definition mtx.h:13
Definition c_xyz.h:7
Definition d_bg_s_cap_poly.h:11