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
5#include "d/d_bg_plc.h"
6#include "d/d_bg_w_base.h"
7
10struct dBgPc;
11struct dBgS_CaptPoly;
12
14 /* 0x0 */ f32 field_0x0;
15 /* 0x4 */ u16 field_0x4;
16 /* 0x6 */ u16 field_0x6;
17 /* 0x8 */ u16 field_0x8;
18 /* 0xA */ u16 field_0xa;
19 /* 0xC */ u16 field_0xc;
20 /* 0xE */ u16 field_0xe;
21}; // Size: 0x10
22
23struct pkcdata {
24 /* 0x00 */ Vec* field_0x0;
25 /* 0x04 */ Vec* field_0x4;
28 /* 0x10 */ u8 field_0x10[4];
29 /* 0x14 */ Vec m_area_min_pos;
30 /* 0x20 */ u32 field_0x20;
31 /* 0x24 */ u32 field_0x24;
32 /* 0x28 */ u32 field_0x28;
33 /* 0x2C */ u32 field_0x2c;
34 /* 0x30 */ u32 field_0x30;
35 /* 0x34 */ u32 field_0x34;
36};
37
44
45class dBgWKCol : public dBgW_Base {
46public:
47 /* 8007E6F4 */ dBgWKCol();
48 /* 8007E7D0 */ static void* initKCollision(void*);
49 /* 8007E804 */ void create(void* pprism, void* plc);
50 /* 8007E850 */ void getTriNrm(KC_PrismData*, Vec**) const;
51 /* 8007E8C0 */ cM3dGPla GetTriPla(int) const;
52 /* 8007E9A4 */ bool GetTriPnt(int, Vec*, Vec*, Vec*) const;
53 /* 8007E9D4 */ bool GetTriPnt(KC_PrismData const*, Vec*, Vec*, Vec*) const;
54 /* 8007EB70 */ void getPolyCode(int, dBgPc*) const;
55 /* 8007EBC4 */ bool chkPolyThrough(dBgPc*, cBgS_PolyPassChk*, cBgS_GrpPassChk*, cXyz&) const;
56 /* 8007FF00 */ bool ChkShdwDrawThrough(dBgPc*);
57
58 /* 8007E74C */ virtual ~dBgWKCol();
59 /* 8007E86C */ virtual bool ChkNotReady() const;
60 /* 8007E87C */ virtual bool ChkLock() const;
61 /* 8007E884 */ virtual bool ChkMoveBg() const;
62 /* 8007E88C */ virtual u32 ChkMoveFlag() const;
63 /* 8007E894 */ virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const;
64 /* 8007E980 */ virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const;
65 /* 8007EB28 */ virtual cM3dGAab* GetBnd() const;
66 /* 8007EB30 */ virtual u32 GetGrpInf(cBgS_PolyInfo const&) const;
67 /* 8007EB6C */ virtual void OffMoveFlag();
68 /* 800829AC */ virtual void GetTopUnder(f32*, f32*) const;
69 /* 8007EE34 */ virtual bool LineCheck(cBgS_LinChk*);
70 /* 8007F628 */ virtual bool GroundCross(cBgS_GndChk*);
71 /* 8007F9A4 */ virtual void ShdwDraw(cBgS_ShdwDraw*);
72 /* 8007FF1C */ virtual void CaptPoly(dBgS_CaptPoly&);
73 /* 800811A0 */ virtual bool WallCorrect(dBgS_Acch*);
74 /* 80080330 */ virtual bool WallCorrectSort(dBgS_Acch*);
75 /* 80081E18 */ virtual bool RoofChk(dBgS_RoofChk*);
76 /* 80082184 */ virtual bool SplGrpChk(dBgS_SplGrpChk*);
77 /* 800824EC */ virtual bool SphChk(dBgS_SphChk*, void*);
78 /* 800829F0 */ virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const;
79 /* 80082A20 */ virtual s32 GetExitId(cBgS_PolyInfo const&);
80 /* 80082A50 */ virtual s32 GetPolyColor(cBgS_PolyInfo const&);
81 /* 80082A80 */ virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
82 /* 80082AB0 */ virtual int GetSpecialCode(cBgS_PolyInfo const&);
83 /* 80082AE0 */ virtual int GetSpecialCode(int);
84 /* 80082B0C */ virtual int GetMagnetCode(cBgS_PolyInfo const&);
85 /* 80082B6C */ virtual u32 GetPolyObjThrough(int);
86 /* 80082B98 */ virtual u32 GetPolyCamThrough(int);
87 /* 80082BC4 */ virtual u32 GetPolyLinkThrough(int);
88 /* 80082BF0 */ virtual u32 GetPolyArrowThrough(int);
89 /* 80082C1C */ virtual u32 GetPolyHSStick(int);
90 /* 80082C48 */ virtual u32 GetPolyBoomerangThrough(int);
91 /* 80082C74 */ virtual u32 GetPolyRopeThrough(int);
92 /* 80082CA0 */ virtual u32 GetPolyBombThrough(int);
93 /* 80082CF8 */ virtual bool GetShdwThrough(int);
94 /* 80082CCC */ virtual u32 GetUnderwaterRoofCode(int);
95 /* 80082B3C */ virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&);
96 /* 80082D24 */ virtual int GetLinkNo(cBgS_PolyInfo const&);
97 /* 80082D54 */ virtual s32 GetWallCode(cBgS_PolyInfo const&);
98 /* 80082D84 */ virtual int GetPolyAtt0(cBgS_PolyInfo const&);
99 /* 80082DB4 */ virtual int GetPolyAtt1(cBgS_PolyInfo const&);
100 /* 80082DE4 */ virtual int GetGroundCode(cBgS_PolyInfo const&);
101 /* 80082E14 */ virtual u32 GetIronBallThrough(int);
102 /* 80082E40 */ virtual u32 GetAttackThrough(int);
103 /* 80082E6C */ virtual s32 GetCamMoveBG(cBgS_PolyInfo const&);
104 /* 80082E9C */ virtual s32 GetRoomCamId(cBgS_PolyInfo const&);
105 /* 80082ECC */ virtual s32 GetRoomPathId(cBgS_PolyInfo const&);
106 /* 80082EFC */ virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&);
107 /* 80082F2C */ virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&);
108 /* 80082F5C */ virtual int GetGrpSoundId(cBgS_PolyInfo const&);
109 /* 80082F8C */ virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
110 csXyz*);
111 /* 80082F90 */ virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*,
112 csXyz*);
113 /* 80082F94 */ virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*,
114 csXyz*, csXyz*);
115
117 void getTri1Pos(KC_PrismData* pd, Vec** nrm) const { *nrm = &m_pkc_head->field_0x0[pd->field_0x4]; }
118
119private:
120 /* 0x18 */ pkcdata* m_pkc_head;
121 /* 0x1C */ dBgPlc m_code;
122 /* 0x20 */ cM3dGAab m_bnd;
123};
124
125#endif /* D_BG_D_BG_W_KCOL_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_pc.h:30
Definition d_bg_plc.h:17
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:45
virtual u32 ChkMoveFlag() const
Definition d_bg_w_kcol.cpp:184
virtual s32 GetRoomCamId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:784
virtual u32 GetIronBallThrough(int)
Definition d_bg_w_kcol.cpp:759
virtual cM3dGAab * GetBnd() const
Definition d_bg_w_kcol.cpp:257
static void * initKCollision(void *)
Definition d_bg_w_kcol.cpp:144
virtual u32 GetPolyBombThrough(int)
Definition d_bg_w_kcol.cpp:688
virtual int GetMonkeyBarsCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:623
virtual void TransPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w_kcol.cpp:839
virtual u32 GetPolyObjThrough(int)
Definition d_bg_w_kcol.cpp:632
virtual s32 GetExitId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:569
virtual u32 GetPolyCamThrough(int)
Definition d_bg_w_kcol.cpp:640
virtual bool GroundCross(cBgS_GndChk *)
Definition d_bg_w_kcol.cpp:384
virtual int GetSpecialCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:598
virtual void MatrixCrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w_kcol.cpp:844
virtual u32 GetPolyArrowThrough(int)
Definition d_bg_w_kcol.cpp:656
cM3dGPla GetTriPla(int) const
Definition d_bg_w_kcol.cpp:195
virtual bool LineCheck(cBgS_LinChk *)
Definition d_bg_w_kcol.cpp:374
void getTriNrm(KC_PrismData *, Vec **) const
Definition d_bg_w_kcol.cpp:164
virtual bool WallCorrectSort(dBgS_Acch *)
Definition d_bg_w_kcol.cpp:521
virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:814
virtual void OffMoveFlag()
Definition d_bg_w_kcol.cpp:270
virtual ~dBgWKCol()
Definition d_bg_w_kcol.cpp:141
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:697
virtual bool SphChk(dBgS_SphChk *, void *)
Definition d_bg_w_kcol.cpp:548
virtual bool ChkLock() const
Definition d_bg_w_kcol.cpp:174
pkcdata * m_pkc_head
Definition d_bg_w_kcol.h:120
void getPolyCode(int, dBgPc *) const
Definition d_bg_w_kcol.cpp:274
virtual void GetTopUnder(f32 *, f32 *) const
Definition d_bg_w_kcol.cpp:553
virtual bool ChkNotReady() const
Definition d_bg_w_kcol.cpp:169
virtual int GetLinkNo(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:713
virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:804
bool GetTriPnt(int, Vec *, Vec *, Vec *) const
Definition d_bg_w_kcol.cpp:220
virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const &) const
Definition d_bg_w_kcol.cpp:560
dBgWKCol()
Definition d_bg_w_kcol.cpp:136
virtual int GetGrpSoundId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:824
virtual void CaptPoly(dBgS_CaptPoly &)
Definition d_bg_w_kcol.cpp:494
virtual bool SplGrpChk(dBgS_SplGrpChk *)
Definition d_bg_w_kcol.cpp:538
virtual void CrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)
Definition d_bg_w_kcol.cpp:834
virtual s32 GetCamMoveBG(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:775
virtual u32 GetPolyHSStick(int)
Definition d_bg_w_kcol.cpp:664
virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:588
virtual bool RoofChk(dBgS_RoofChk *)
Definition d_bg_w_kcol.cpp:533
virtual int GetPolyAtt0(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:731
bool ChkShdwDrawThrough(dBgPc *)
Definition d_bg_w_kcol.cpp:481
KC_PrismData * getPrismData(int poly_index) const
Definition d_bg_w_kcol.h:116
virtual bool WallCorrect(dBgS_Acch *)
Definition d_bg_w_kcol.cpp:527
virtual int GetGroundCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:750
virtual int GetPolyAtt1(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:740
cM3dGAab m_bnd
Definition d_bg_w_kcol.h:122
virtual u32 GetAttackThrough(int)
Definition d_bg_w_kcol.cpp:767
virtual u32 GetGrpInf(cBgS_PolyInfo const &) const
Definition d_bg_w_kcol.cpp:262
virtual void ShdwDraw(cBgS_ShdwDraw *)
Definition d_bg_w_kcol.cpp:476
virtual s32 GetPolyColor(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:578
virtual s32 GetWallCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:722
dBgPlc m_code
Definition d_bg_w_kcol.h:121
virtual u32 GetPolyRopeThrough(int)
Definition d_bg_w_kcol.cpp:680
virtual bool ChkMoveBg() const
Definition d_bg_w_kcol.cpp:179
virtual u32 GetPolyBoomerangThrough(int)
Definition d_bg_w_kcol.cpp:672
virtual bool GetShdwThrough(int)
Definition d_bg_w_kcol.cpp:705
virtual u32 GetPolyLinkThrough(int)
Definition d_bg_w_kcol.cpp:648
virtual int GetMagnetCode(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:613
void create(void *pprism, void *plc)
Definition d_bg_w_kcol.cpp:156
bool chkPolyThrough(dBgPc *, cBgS_PolyPassChk *, cBgS_GrpPassChk *, cXyz &) const
Definition d_bg_w_kcol.cpp:284
virtual s32 GetRoomPathId(cBgS_PolyInfo const &)
Definition d_bg_w_kcol.cpp:794
Definition d_bg_w_base.h:26
static f32 pd[19]
Definition d_a_obj_wflag.cpp:30
Definition d_bg_w_kcol.h:13
u16 field_0x6
Definition d_bg_w_kcol.h:16
u16 field_0xc
Definition d_bg_w_kcol.h:19
f32 field_0x0
Definition d_bg_w_kcol.h:14
u16 field_0xe
Definition d_bg_w_kcol.h:20
u16 field_0x8
Definition d_bg_w_kcol.h:17
u16 field_0x4
Definition d_bg_w_kcol.h:15
u16 field_0xa
Definition d_bg_w_kcol.h:18
Definition d_bg_w_kcol.h:38
u32 pos_data_offset
Definition d_bg_w_kcol.h:39
u32 block_data_offset
Definition d_bg_w_kcol.h:42
u32 nrm_data_offset
Definition d_bg_w_kcol.h:40
u32 prism_data_offset
Definition d_bg_w_kcol.h:41
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
Definition d_bg_w_kcol.h:23
KC_PrismData * m_prism_data
Definition d_bg_w_kcol.h:26
u32 field_0x20
Definition d_bg_w_kcol.h:30
Vec * field_0x4
Definition d_bg_w_kcol.h:25
u32 field_0x30
Definition d_bg_w_kcol.h:34
u8 field_0x10[4]
Definition d_bg_w_kcol.h:28
u32 field_0x24
Definition d_bg_w_kcol.h:31
Vec m_area_min_pos
Definition d_bg_w_kcol.h:29
KC_PrismData * m_block_data
Definition d_bg_w_kcol.h:27
Vec * field_0x0
Definition d_bg_w_kcol.h:24
u32 field_0x34
Definition d_bg_w_kcol.h:35
u32 field_0x28
Definition d_bg_w_kcol.h:32
u32 field_0x2c
Definition d_bg_w_kcol.h:33
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