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_w_base.h"
8
11struct dBgPc;
12struct dBgS_CaptPoly;
13
15 /* 0x0 */ f32 height;
16 /* 0x4 */ u16 pos_i;
17 /* 0x6 */ u16 fnrm_i;
18 /* 0x8 */ u16 enrm1_i;
19 /* 0xA */ u16 enrm2_i;
20 /* 0xC */ u16 enrm3_i;
21 /* 0xE */ u16 attribute;
22}; // Size: 0x10
23
38
39class dBgWKCol : public dBgW_Base {
40public:
41 /* 8007E6F4 */ dBgWKCol();
42 /* 8007E7D0 */ static void* initKCollision(void*);
43 /* 8007E804 */ void create(void* pprism, void* plc);
44 /* 8007E850 */ void getTriNrm(KC_PrismData*, Vec**) const;
45 /* 8007E8C0 */ cM3dGPla GetTriPla(int) const;
46 /* 8007E9A4 */ bool GetTriPnt(int, Vec*, Vec*, Vec*) const;
47 /* 8007E9D4 */ bool GetTriPnt(KC_PrismData const*, Vec*, Vec*, Vec*) const;
48 /* 8007EB70 */ void getPolyCode(int, dBgPc*) const;
49 /* 8007EBC4 */ bool chkPolyThrough(dBgPc*, cBgS_PolyPassChk*, cBgS_GrpPassChk*, cXyz&) const;
50 /* 8007FF00 */ bool ChkShdwDrawThrough(dBgPc*);
51
52 /* 8007E74C */ virtual ~dBgWKCol();
53 /* 8007E86C */ virtual bool ChkNotReady() const;
54 /* 8007E87C */ virtual bool ChkLock() const;
55 /* 8007E884 */ virtual bool ChkMoveBg() const;
56 /* 8007E88C */ virtual u32 ChkMoveFlag() const;
57 /* 8007E894 */ virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const;
58 /* 8007E980 */ virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const;
59 /* 8007EB28 */ virtual cM3dGAab* GetBnd() const;
60 /* 8007EB30 */ virtual u32 GetGrpInf(cBgS_PolyInfo const&) const;
61 /* 8007EB6C */ virtual void OffMoveFlag();
62 /* 800829AC */ virtual void GetTopUnder(f32*, f32*) const;
63 /* 8007EE34 */ virtual bool LineCheck(cBgS_LinChk*);
64 /* 8007F628 */ virtual bool GroundCross(cBgS_GndChk*);
65 /* 8007F9A4 */ virtual void ShdwDraw(cBgS_ShdwDraw*);
66 /* 8007FF1C */ virtual void CaptPoly(dBgS_CaptPoly&);
67 /* 800811A0 */ virtual bool WallCorrect(dBgS_Acch*);
68 /* 80080330 */ virtual bool WallCorrectSort(dBgS_Acch*);
69 /* 80081E18 */ virtual bool RoofChk(dBgS_RoofChk*);
70 /* 80082184 */ virtual bool SplGrpChk(dBgS_SplGrpChk*);
71 /* 800824EC */ virtual bool SphChk(dBgS_SphChk*, void*);
72 /* 800829F0 */ virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const;
73 /* 80082A20 */ virtual s32 GetExitId(cBgS_PolyInfo const&);
74 /* 80082A50 */ virtual s32 GetPolyColor(cBgS_PolyInfo const&);
75 /* 80082A80 */ virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
76 /* 80082AB0 */ virtual int GetSpecialCode(cBgS_PolyInfo const&);
77 /* 80082AE0 */ virtual int GetSpecialCode(int);
78 /* 80082B0C */ virtual int GetMagnetCode(cBgS_PolyInfo const&);
79 /* 80082B6C */ virtual u32 GetPolyObjThrough(int);
80 /* 80082B98 */ virtual u32 GetPolyCamThrough(int);
81 /* 80082BC4 */ virtual u32 GetPolyLinkThrough(int);
82 /* 80082BF0 */ virtual u32 GetPolyArrowThrough(int);
83 /* 80082C1C */ virtual u32 GetPolyHSStick(int);
84 /* 80082C48 */ virtual u32 GetPolyBoomerangThrough(int);
85 /* 80082C74 */ virtual u32 GetPolyRopeThrough(int);
86 /* 80082CA0 */ virtual u32 GetPolyBombThrough(int);
87 /* 80082CF8 */ virtual bool GetShdwThrough(int);
88 /* 80082CCC */ virtual u32 GetUnderwaterRoofCode(int);
89 /* 80082B3C */ virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&);
90 /* 80082D24 */ virtual int GetLinkNo(cBgS_PolyInfo const&);
91 /* 80082D54 */ virtual s32 GetWallCode(cBgS_PolyInfo const&);
92 /* 80082D84 */ virtual int GetPolyAtt0(cBgS_PolyInfo const&);
93 /* 80082DB4 */ virtual int GetPolyAtt1(cBgS_PolyInfo const&);
94 /* 80082DE4 */ virtual int GetGroundCode(cBgS_PolyInfo const&);
95 /* 80082E14 */ virtual u32 GetIronBallThrough(int);
96 /* 80082E40 */ virtual u32 GetAttackThrough(int);
97 /* 80082E6C */ virtual s32 GetCamMoveBG(cBgS_PolyInfo const&);
98 /* 80082E9C */ virtual s32 GetRoomCamId(cBgS_PolyInfo const&);
99 /* 80082ECC */ virtual s32 GetRoomPathId(cBgS_PolyInfo const&);
100 /* 80082EFC */ virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&);
101 /* 80082F2C */ virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&);
102 /* 80082F5C */ virtual int GetGrpSoundId(cBgS_PolyInfo const&);
103 /* 80082F8C */ virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
104 csXyz*);
105 /* 80082F90 */ virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
106 csXyz*);
107 /* 80082F94 */ virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*,
108 csXyz*, csXyz*);
109
115
116 void getTri1Pos(KC_PrismData* pd, Vec** nrm) const { *nrm = &m_pkc_head->m_pos_data[pd->pos_i]; }
117
118private:
120 /* 0x1C */ dBgPlc m_code;
121 /* 0x20 */ cM3dGAab m_bnd;
122};
123
124#endif /* D_BG_D_BG_W_KCOL_H */
T cLib_calcTimer(T *value)
Definition c_lib.h:79
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_pc.h:20
Definition d_bg_plc.h:13
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:39
virtual u32 ChkMoveFlag() const
Definition d_bg_w_kcol.cpp:64
virtual s32 GetRoomCamId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:1050
virtual u32 GetIronBallThrough(int)
Definition d_bg_w_kcol.cpp:1025
virtual cM3dGAab * GetBnd() const
Definition d_bg_w_kcol.cpp:142
static void * initKCollision(void *)
Definition d_bg_w_kcol.cpp:16
virtual u32 GetPolyBombThrough(int)
Definition d_bg_w_kcol.cpp:954
virtual int GetMonkeyBarsCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:889
virtual void TransPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w_kcol.cpp:1105
virtual u32 GetPolyObjThrough(int)
Definition d_bg_w_kcol.cpp:898
virtual s32 GetExitId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:835
virtual u32 GetPolyCamThrough(int)
Definition d_bg_w_kcol.cpp:906
virtual bool GroundCross(cBgS_GndChk *)
Definition d_bg_w_kcol.cpp:515
virtual int GetSpecialCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:864
virtual void MatrixCrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w_kcol.cpp:1110
virtual u32 GetPolyArrowThrough(int)
Definition d_bg_w_kcol.cpp:922
cM3dGPla GetTriPla(int) const
Definition d_bg_w_kcol.cpp:75
virtual bool LineCheck(cBgS_LinChk *)
Definition d_bg_w_kcol.cpp:253
void getTriNrm(KC_PrismData *, Vec **) const
Definition d_bg_w_kcol.cpp:44
virtual bool WallCorrectSort(dBgS_Acch *)
Definition d_bg_w_kcol.cpp:790
virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:1080
virtual void OffMoveFlag()
Definition d_bg_w_kcol.cpp:155
virtual ~dBgWKCol()
Definition d_bg_w_kcol.cpp:13
void getTri1Pos(KC_PrismData *pd, Vec **nrm) const
Definition d_bg_w_kcol.h:116
virtual u32 GetUnderwaterRoofCode(int)
Definition d_bg_w_kcol.cpp:963
virtual bool SphChk(dBgS_SphChk *, void *)
Definition d_bg_w_kcol.cpp:813
virtual bool ChkLock() const
Definition d_bg_w_kcol.cpp:54
void getPolyCode(int, dBgPc *) const
Definition d_bg_w_kcol.cpp:159
virtual void GetTopUnder(f32 *, f32 *) const
Definition d_bg_w_kcol.cpp:819
virtual bool ChkNotReady() const
Definition d_bg_w_kcol.cpp:49
virtual int GetLinkNo(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:979
virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:1070
bool GetTriPnt(int, Vec *, Vec *, Vec *) const
Definition d_bg_w_kcol.cpp:100
virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const &) const
Definition d_bg_w_kcol.cpp:826
dBgWKCol()
Definition d_bg_w_kcol.cpp:8
virtual int GetGrpSoundId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:1090
virtual void CaptPoly(dBgS_CaptPoly &)
Definition d_bg_w_kcol.cpp:622
virtual bool SplGrpChk(dBgS_SplGrpChk *)
Definition d_bg_w_kcol.cpp:807
virtual void CrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w_kcol.cpp:1100
virtual s32 GetCamMoveBG(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:1041
virtual u32 GetPolyHSStick(int)
Definition d_bg_w_kcol.cpp:930
virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:854
virtual bool RoofChk(dBgS_RoofChk *)
Definition d_bg_w_kcol.cpp:802
virtual int GetPolyAtt0(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:997
bool ChkShdwDrawThrough(dBgPc *)
Definition d_bg_w_kcol.cpp:612
KC_PrismData * getPrismData(int poly_index) const
Definition d_bg_w_kcol.h:110
KC_Header * m_pkc_head
Definition d_bg_w_kcol.h:119
virtual bool WallCorrect(dBgS_Acch *)
Definition d_bg_w_kcol.cpp:796
virtual int GetGroundCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:1016
virtual int GetPolyAtt1(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:1006
cM3dGAab m_bnd
Definition d_bg_w_kcol.h:121
virtual u32 GetAttackThrough(int)
Definition d_bg_w_kcol.cpp:1033
virtual u32 GetGrpInf(cBgS_PolyInfo const &) const
Definition d_bg_w_kcol.cpp:147
virtual void ShdwDraw(cBgS_ShdwDraw *)
Definition d_bg_w_kcol.cpp:607
virtual s32 GetPolyColor(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:844
virtual s32 GetWallCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:988
dBgPlc m_code
Definition d_bg_w_kcol.h:120
virtual u32 GetPolyRopeThrough(int)
Definition d_bg_w_kcol.cpp:946
virtual bool ChkMoveBg() const
Definition d_bg_w_kcol.cpp:59
virtual u32 GetPolyBoomerangThrough(int)
Definition d_bg_w_kcol.cpp:938
virtual bool GetShdwThrough(int)
Definition d_bg_w_kcol.cpp:971
virtual u32 GetPolyLinkThrough(int)
Definition d_bg_w_kcol.cpp:914
virtual int GetMagnetCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:879
void create(void *pprism, void *plc)
Definition d_bg_w_kcol.cpp:28
bool chkPolyThrough(dBgPc *, cBgS_PolyPassChk *, cBgS_GrpPassChk *, cXyz &) const
Definition d_bg_w_kcol.cpp:169
virtual s32 GetRoomPathId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:1060
Definition d_bg_w_base.h:26
static f32 pd[19]
Definition d_a_obj_wflag.cpp:30
Definition d_bg_w_kcol.h:24
u32 m_block_width_shift
Definition d_bg_w_kcol.h:34
Vec m_area_min_pos
Definition d_bg_w_kcol.h:30
u32 m_area_x_blocks_shift
Definition d_bg_w_kcol.h:35
KC_PrismData * m_prism_data
Definition d_bg_w_kcol.h:27
u32 m_area_x_width_mask
Definition d_bg_w_kcol.h:31
f32 m_prism_thickness
Definition d_bg_w_kcol.h:29
u32 m_area_y_width_mask
Definition d_bg_w_kcol.h:32
Vec * m_nrm_data
Definition d_bg_w_kcol.h:26
Vec * m_pos_data
Definition d_bg_w_kcol.h:25
KC_PrismData * m_block_data
Definition d_bg_w_kcol.h:28
u32 m_area_xy_blocks_shift
Definition d_bg_w_kcol.h:36
u32 m_area_z_width_mask
Definition d_bg_w_kcol.h:33
Definition d_bg_w_kcol.h:14
u16 enrm3_i
Definition d_bg_w_kcol.h:20
u16 attribute
Definition d_bg_w_kcol.h:21
u16 pos_i
Definition d_bg_w_kcol.h:16
u16 fnrm_i
Definition d_bg_w_kcol.h:17
f32 height
Definition d_bg_w_kcol.h:15
u16 enrm1_i
Definition d_bg_w_kcol.h:18
u16 enrm2_i
Definition d_bg_w_kcol.h:19
Definition d_a_hozelda.cpp:18
Definition d_a_ep.cpp:138
Definition d_a_ep.cpp:136
Definition d_a_ep.cpp:134
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
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