Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_bg_w_base.h
Go to the documentation of this file.
1#ifndef D_BG_D_BG_W_BASE_H
2#define D_BG_D_BG_W_BASE_H
3
7#include "f_pc/f_pc_base.h"
8
9class cBgS_GndChk;
10class cBgS_LinChk;
11class cBgS_ShdwDraw;
12class dBgS_Acch;
13struct dBgS_CaptPoly;
14class dBgS_RoofChk;
15class dBgS_SphChk;
16class dBgS_SplGrpChk;
17class fopAc_ac_c;
18
25
26class dBgW_Base : public cBgW_BgId {
27public:
35
36 enum PRIORITY {
38 };
39
40 typedef fopAc_ac_c* (*PushPull_CallBack)(fopAc_ac_c*, fopAc_ac_c*, s16,
42
43 /* 8007E5A8 */ dBgW_Base();
44 /* 8007E69C */ void ClrDBgWBase();
45 /* 8007E6E0 */ void CalcDiffShapeAngleY(s16);
46
47 /* 8007E640 */ virtual ~dBgW_Base();
48 /* 8007E6D0 */ virtual bool ChkMemoryError();
49 virtual bool ChkNotReady() const = 0;
50 virtual bool ChkLock() const = 0;
51 virtual bool ChkMoveBg() const = 0;
52 virtual u32 ChkMoveFlag() const = 0;
53 virtual cM3dGPla GetTriPla(cBgS_PolyInfo const&) const = 0;
54 virtual bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const = 0;
55 virtual cM3dGAab* GetBnd() const = 0;
56 virtual u32 GetGrpInf(cBgS_PolyInfo const&) const = 0;
57 virtual void OffMoveFlag() = 0;
58 virtual void GetTopUnder(f32*, f32*) const = 0;
59 /* 80074AB4 */ virtual void SetOldShapeAngleY(s16);
60 virtual bool LineCheck(cBgS_LinChk*) = 0;
61 virtual bool GroundCross(cBgS_GndChk*) = 0;
62 virtual void ShdwDraw(cBgS_ShdwDraw*) = 0;
63 virtual void CaptPoly(dBgS_CaptPoly&) = 0;
64 virtual bool WallCorrect(dBgS_Acch*) = 0;
65 virtual bool WallCorrectSort(dBgS_Acch*) = 0;
66 virtual bool RoofChk(dBgS_RoofChk*) = 0;
67 virtual bool SplGrpChk(dBgS_SplGrpChk*) = 0;
68 virtual bool SphChk(dBgS_SphChk*, void*) = 0;
69 virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const = 0;
70 virtual s32 GetExitId(cBgS_PolyInfo const&) = 0;
71 virtual s32 GetPolyColor(cBgS_PolyInfo const&) = 0;
72 virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
73 virtual int GetSpecialCode(cBgS_PolyInfo const&) = 0;
74 virtual int GetSpecialCode(int) = 0;
75 virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0;
76 virtual u32 GetPolyObjThrough(int) = 0;
77 virtual u32 GetPolyCamThrough(int) = 0;
78 virtual u32 GetPolyLinkThrough(int) = 0;
79 virtual u32 GetPolyArrowThrough(int) = 0;
80 virtual u32 GetPolyHSStick(int) = 0;
81 virtual u32 GetPolyBoomerangThrough(int) = 0;
82 virtual u32 GetPolyRopeThrough(int) = 0;
83 virtual u32 GetPolyBombThrough(int) = 0;
84 virtual bool GetShdwThrough(int) = 0;
85 virtual u32 GetUnderwaterRoofCode(int) = 0;
86 virtual int GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
87 virtual int GetLinkNo(cBgS_PolyInfo const&) = 0;
88 virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0;
89 virtual int GetPolyAtt0(cBgS_PolyInfo const&) = 0;
90 virtual int GetPolyAtt1(cBgS_PolyInfo const&) = 0;
91 virtual int GetGroundCode(cBgS_PolyInfo const&) = 0;
92 virtual u32 GetIronBallThrough(int) = 0;
93 virtual u32 GetAttackThrough(int) = 0;
94 virtual s32 GetCamMoveBG(cBgS_PolyInfo const&) = 0;
95 virtual s32 GetRoomCamId(cBgS_PolyInfo const&) = 0;
96 virtual s32 GetRoomPathId(cBgS_PolyInfo const&) = 0;
97 virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&) = 0;
99 virtual int GetGrpSoundId(cBgS_PolyInfo const&) = 0;
100 virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
101 virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
102 virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0;
103 /* 8007E6D8 */ virtual void CallRideCallBack(fopAc_ac_c*, fopAc_ac_c*);
104 /* 8007E6DC */ virtual void CallArrowStickCallBack(fopAc_ac_c*, fopAc_ac_c*, cXyz&);
105
108 int GetRoomId() { return m_roomId; }
109 bool chkStickWall() { return field_0xb & 1; }
110 bool chkStickRoof() { return field_0xb & 2; }
111 bool ChkPushPullOk() const { return m_pushPull_Ok; }
113 void SetRoomId(int id) { m_roomId = id; }
114 bool ChkPriority(int prio) { return m_priority == prio; }
115 void SetPriority(PRIORITY priority) { m_priority = priority; }
116 void onStickWall() { field_0xb |= 1; }
117 void onStickRoof() { field_0xb |= 2; }
118 void OnPushPullOk() { m_pushPull_Ok = true; }
119 void OffPushPullOk() { m_pushPull_Ok = false; }
120
121private:
122 /* 0x08 */ u8 m_priority;
123 /* 0x09 */ u8 m_roomId;
124 /* 0x0A */ u8 field_0xa;
125 /* 0x0B */ u8 field_0xb;
129 /* 0x14 */ bool m_pushPull_Ok;
130}; // Size: 0x18
131
132#endif /* D_BG_D_BG_W_BASE_H */
T cLib_calcTimer(T *value)
Definition c_lib.h:74
Definition c_bg_s_shdw_draw.h:12
Definition c_bg_w.h:6
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
virtual bool ChkMemoryError()
Definition d_bg_w_base.cpp:29
u8 field_0xa
Definition d_bg_w_base.h:124
virtual s32 GetWallCode(cBgS_PolyInfo const &)=0
void ClrDBgWBase()
Definition d_bg_w_base.cpp:17
int GetRoomId()
Definition d_bg_w_base.h:108
virtual int GetGroundCode(cBgS_PolyInfo const &)=0
bool chkStickRoof()
Definition d_bg_w_base.h:110
virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const &) const =0
void SetPushPullCallback(PushPull_CallBack i_callBack)
Definition d_bg_w_base.h:112
virtual void CallRideCallBack(fopAc_ac_c *, fopAc_ac_c *)
Definition d_bg_w_base.cpp:35
void onStickWall()
Definition d_bg_w_base.h:116
virtual bool ChkNotReady() const =0
virtual void GetTopUnder(f32 *, f32 *) const =0
PushPull_CallBack GetPushPullCallback() const
Definition d_bg_w_base.h:106
s16 m_diff_ShapeAngleY
Definition d_bg_w_base.h:127
virtual u32 GetPolyHSStick(int)=0
virtual cM3dGPla GetTriPla(cBgS_PolyInfo const &) const =0
virtual u32 GetPolyCamThrough(int)=0
virtual s32 GetExitId(cBgS_PolyInfo const &)=0
void CalcDiffShapeAngleY(s16)
Definition d_bg_w_base.cpp:43
virtual bool GetShdwThrough(int)=0
virtual u32 GetUnderwaterRoofCode(int)=0
virtual int GetSpecialCode(int)=0
virtual bool LineCheck(cBgS_LinChk *)=0
virtual u32 GetPolyLinkThrough(int)=0
virtual int GetLinkNo(cBgS_PolyInfo const &)=0
virtual bool ChkMoveBg() const =0
void SetPriority(PRIORITY priority)
Definition d_bg_w_base.h:115
s16 GetDiffShapeAngleY()
Definition d_bg_w_base.h:107
virtual u32 ChkMoveFlag() const =0
virtual int GetMonkeyBarsCode(cBgS_PolyInfo const &)=0
virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const &)=0
virtual int GetPolyAtt1(cBgS_PolyInfo const &)=0
virtual bool RoofChk(dBgS_RoofChk *)=0
virtual bool WallCorrect(dBgS_Acch *)=0
virtual bool WallCorrectSort(dBgS_Acch *)=0
void onStickRoof()
Definition d_bg_w_base.h:117
virtual void CrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)=0
void SetRoomId(int id)
Definition d_bg_w_base.h:113
virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const &)=0
virtual int GetMagnetCode(cBgS_PolyInfo const &)=0
virtual void CallArrowStickCallBack(fopAc_ac_c *, fopAc_ac_c *, cXyz &)
Definition d_bg_w_base.cpp:39
virtual u32 GetPolyObjThrough(int)=0
virtual u32 GetIronBallThrough(int)=0
virtual int GetSpecialCode(cBgS_PolyInfo const &)=0
virtual int GetGrpSoundId(cBgS_PolyInfo const &)=0
virtual bool SplGrpChk(dBgS_SplGrpChk *)=0
virtual u32 GetPolyArrowThrough(int)=0
virtual void ShdwDraw(cBgS_ShdwDraw *)=0
fopAc_ac_c *(* PushPull_CallBack)(fopAc_ac_c *, fopAc_ac_c *, s16, dBgW_Base::PushPullLabel)
Definition d_bg_w_base.h:40
virtual bool GroundCross(cBgS_GndChk *)=0
virtual bool GetTriPnt(cBgS_PolyInfo const &, cXyz *, cXyz *, cXyz *) const =0
dBgW_Base()
Definition d_bg_w_base.cpp:9
u8 m_roomId
Definition d_bg_w_base.h:123
virtual u32 GetGrpInf(cBgS_PolyInfo const &) const =0
bool ChkPriority(int prio)
Definition d_bg_w_base.h:114
virtual u32 GetPolyRopeThrough(int)=0
virtual void CaptPoly(dBgS_CaptPoly &)=0
virtual cM3dGAab * GetBnd() const =0
u8 m_priority
Definition d_bg_w_base.h:122
virtual s32 GetCamMoveBG(cBgS_PolyInfo const &)=0
virtual void SetOldShapeAngleY(s16)
Definition d_bg_s.cpp:348
virtual void OffMoveFlag()=0
u8 field_0xb
Definition d_bg_w_base.h:125
virtual u32 GetPolyBoomerangThrough(int)=0
PushPullLabel
Definition d_bg_w_base.h:28
@ PPLABEL_PULL
Definition d_bg_w_base.h:31
@ PPLABEL_NONE
Definition d_bg_w_base.h:29
@ PPLABEL_4
Definition d_bg_w_base.h:32
@ PPLABEL_PUSH
Definition d_bg_w_base.h:30
@ PPLABEL_HEAVY
Definition d_bg_w_base.h:33
s16 m_old_ShapeAngleY
Definition d_bg_w_base.h:126
PRIORITY
Definition d_bg_w_base.h:36
@ PRIORITY_0
Definition d_bg_w_base.h:37
virtual u32 GetPolyBombThrough(int)=0
bool m_pushPull_Ok
Definition d_bg_w_base.h:129
virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const &)=0
virtual bool ChkLock() const =0
virtual u32 GetAttackThrough(int)=0
virtual ~dBgW_Base()
Definition d_bg_w_base.cpp:14
bool chkStickWall()
Definition d_bg_w_base.h:109
virtual s32 GetRoomPathId(cBgS_PolyInfo const &)=0
virtual void MatrixCrrPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)=0
virtual s32 GetRoomCamId(cBgS_PolyInfo const &)=0
virtual bool SphChk(dBgS_SphChk *, void *)=0
bool ChkPushPullOk() const
Definition d_bg_w_base.h:111
void OnPushPullOk()
Definition d_bg_w_base.h:118
virtual int GetPolyAtt0(cBgS_PolyInfo const &)=0
virtual s32 GetPolyColor(cBgS_PolyInfo const &)=0
void OffPushPullOk()
Definition d_bg_w_base.h:119
PushPull_CallBack m_pushPull_Callback
Definition d_bg_w_base.h:128
virtual void TransPos(cBgS_PolyInfo const &, void *, bool, cXyz *, csXyz *, csXyz *)=0
static SECTION_RODATA u8 const id[8]
Definition d_a_npc_bans.cpp:1309
dBgW_SpecialCode
Definition d_bg_w_base.h:19
@ dBgW_SPCODE_LIGHT_SNOW
Definition d_bg_w_base.h:21
@ dBgW_SPCODE_ICE
Definition d_bg_w_base.h:23
@ dBgW_SPCODE_HEAVY_SNOW
Definition d_bg_w_base.h:22
@ dBgW_SPCODE_NORMAL
Definition d_bg_w_base.h:20
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_a_ep.cpp:19
int BOOL
Definition types.h:27
unsigned long u32
Definition types.h:10
float f32
Definition types.h:22
signed short s16
Definition types.h:5
signed long s32
Definition types.h:6
unsigned char u8
Definition types.h:8