Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_obj_swpush.h
Go to the documentation of this file.
1#ifndef D_A_OBJ_SWPUSH_H
2#define D_A_OBJ_SWPUSH_H
3
4#include "d/d_a_obj.h"
5#include "d/d_bg_w_sv.h"
6#include "d/d_com_inf_game.h"
7
17namespace daObjSwpush {
26
27 class Hio_c : public JORReflexible {
28 public:
29 class Attr_c {
30 public:
31 /* § 踏みスイッチ §\n - Foot Switch */
32 /* 0x00 */ AttrFlag_e flags;
33 /* 0x04 */ f32 scale;
34 /* 0x08 */ f32 draw_spring; // draw_spring
35 /* 0x0C */ f32 draw_resist; // draw_resist
36 /* 0x10 */ f32 draw_down_spd0; // draw_down_spd0
37 /* 0x14 */ f32 draw_pypcon_acc; // draw_pypcon_acc
38 /* 0x18 */ s16 bg_time_lag; // bg_time_lag
39 /* 0x1A */ s16 able_push_time_any; // able_push_time_any
40 /* 0x1C */ s16 able_push_time_heavy; // able_push_time_heavy
41 /* 0x1E */ s16 able_ride_time_middle; // able_ride_time_middle
42 /* 0x20 */ f32 step_up_space; // step_up_space
43 /* 0x24 */ f32 step_down_space; // step_down_space
44 /* 0x28 */ s16 demo_run_time; // demo_run_time
45 /* 0x2A */ u8 field_0x2a;
46 /* 0x2B */ u8 field_0x2b;
47 };
48
49 #if DEBUG
50 void ct() {
51 if (mCount++ == 0) {
52 daObj::HioVarious_c::init(this, "踏みスイッチ"); // Foot Switch
53 }
54 }
55
58 void dt();
59 #endif
61 /* 0x4 */ int mCount;
62 /* 0x8 */ Attr_c field_0x8[5];
63 };
64
65 class Act_c : public fopAc_ac_c {
66 public:
67 enum Prm_e {
68 /* 0x00 */ PRM_0_e,
69 /* 0x01 */ PRM_1_e,
70 /* 0x03 */ PRM_3_e = 0x3,
71 /* 0x04 */ PRM_4_e,
72 /* 0x08 */ PRM_8_e = 0x8,
73 /* 0x10 */ PRM_10_e = 0X10,
74 /* 0x18 */ PRM_18_e = 0x18,
75 /* 0x1D */ PRM_1D_e = 0x1D,
76 };
77
78 enum Mode_e {
82 MODE_L_U = 3
83 };
84
92
93 const Hio_c::Attr_c& attr() const { return M_attr[mType]; }
94 u8 prmZ_get_swSave2() const { return mPrmZ & 0xFF; }
95 int prm_get_couple() const { return daObj::PrmAbstract(this, PRM_1_e, PRM_1D_e); }
96 u8 prm_get_evId() const { return daObj::PrmAbstract(this, PRM_8_e, PRM_0_e); }
97 int prm_get_mdl() const { return daObj::PrmAbstract(this, PRM_4_e, PRM_10_e); }
98 int prm_get_swSave() const { return daObj::PrmAbstract(this, PRM_8_e, PRM_8_e); }
99 int prm_get_type() const { return daObj::PrmAbstract(this, PRM_3_e, PRM_18_e); }
100 bool is_switch() { return fopAcM_isSwitch(this, prm_get_swSave()); }
101 void fopAcM_revSwitch(fopAc_ac_c* i_actor, int param) { dComIfGs_revSwitch(param, fopAcM_GetHomeRoomNo(i_actor)); }
105
106 void prmZ_init();
107 bool is_switch2() const;
108 static BOOL solidHeapCB(fopAc_ac_c*);
109 bool create_heap();
112 int Mthd_Delete();
113 void set_mtx();
114 void init_mtx();
115 void set_btp_frame();
116 static void rideCB(dBgW*, fopAc_ac_c*, fopAc_ac_c*);
117 static int jnodeCB(J3DJoint*, int);
118 void calc_top_pos();
120 void set_push_flag();
122 void mode_upper();
123 void mode_u_l_init();
124 void mode_u_l();
125 void mode_lower_init();
126 void mode_lower();
127 void mode_l_u_init();
128 void mode_l_u();
129 void demo_non_init();
130 void demo_non();
131 void demo_reqPause_init();
132 void demo_reqPause();
133 void demo_runPause_init();
134 void demo_runPause();
135 void demo_stop_puase();
136 void demo_reqSw_init();
137 void demo_reqSw();
138 void demo_runSw_init();
139 void demo_runSw();
141 int nr_ride_people(char);
142 int Mthd_Execute();
143 int Mthd_Draw();
144
145 static s16 const M_bmd[3];
146 static s16 const M_dzb[3];
147 static u32 const M_heap_size[3];
148 static Hio_c::Attr_c const M_attr[5];
149 static u8 const M_op_vtx[4];
150 static char* M_arcname[3];
151
153 /* 0x570 */ dBgWSv* mpBgW;
154 /* 0x574 */ Mtx mMtx;
155 /* 0x5A4 */ f32 field_0x5a4;
156 /* 0x5A8 */ J3DModel* mpModel;
157 /* 0x5AC */ int mType;
158 /* 0x5B0 */ int mMode;
159 /* 0x5B4 */ int mDemoMode;
160 /* 0x5B8 */ s16 mPauseTimer;
161 /* 0x5BA */ s16 mEventID;
162 /* 0x5BC */ u16 mPrmZ;
163 /* 0x5BE */ bool mPrmZInit;
164 /* 0x5BF */ u8 mVibTimer;
165 /* 0x5C0 */ u8 mRidingMode;
166 /* 0x5C1 */ bool mPrevRiding;
167 /* 0x5C2 */ s16 mMiniPushTimer;
168 /* 0x5C4 */ bool mMiniPushFlg;
169 /* 0x5C5 */ u8 field_0x5c5;
170 /* 0x5C6 */ bool mHeavyRiding;
171 /* 0x5C7 */ bool mPrevHeavyRiding;
172 /* 0x5C8 */ s16 mPushTimer;
173 /* 0x5CA */ bool mPushFlg;
174 /* 0x5CB */ bool mChangingState;
175 /* 0x5CC */ f32 mTargetHFrac;
176 /* 0x5D0 */ f32 mCurHFrac;
177 /* 0x5D4 */ f32 mSpeed;
178 /* 0x5D8 */ f32 field_0x5d8;
179 /* 0x5DC */ f32 field_0x5dc;
180 /* 0x5E0 */ s16 field_0x5e0;
181 /* 0x5E4 */ f32 field_0x5e4;
182 /* 0x5E8 */ f32 field_0x5e8;
183 /* 0x5EC */ f32 mTopPos;
184 /* 0x5F0 */ s16 mDebounceTimer;
185 /* 0x5F2 */ s8 field_0x5f2;
186 /* 0x5F3 */ u8 field_0x5f3;
187 /* 0x5F4 */ u8 mMdl;
188 /* 0x5F8 */ cXyz field_0x5f8;
189 };
190
191 #if DEBUG
193 for (int i = 0; i < 5; i++) {
195 }
196 }
197
198 void Hio_c::dt() {
199 if (--mCount == 0) {
201 }
202 }
203 #endif
204};
205
207
208#endif /* D_A_OBJ_SWPUSH_H */
cPhs__Step
Definition c_phase.h:8
Definition J3DJoint.h:63
Definition J3DModel.h:43
Definition JORMContext.h:120
Definition JORReflexible.h:43
Definition d_bg_w_sv.h:6
Definition d_bg_w.h:257
Definition d_a_obj_swpush.h:65
u8 field_0x5c5
Definition d_a_obj_swpush.h:169
bool mChangingState
Definition d_a_obj_swpush.h:174
s16 mMiniPushTimer
Definition d_a_obj_swpush.h:167
f32 mTopPos
Definition d_a_obj_swpush.h:183
f32 field_0x5a4
Definition d_a_obj_swpush.h:155
cPhs__Step Mthd_Create()
Definition d_a_obj_swpush.cpp:202
void mode_u_l()
Definition d_a_obj_swpush.cpp:571
bool mPrevRiding
Definition d_a_obj_swpush.h:166
void rev_switch()
Definition d_a_obj_swpush.h:102
u8 mMdl
Definition d_a_obj_swpush.h:187
void set_push_flag()
Definition d_a_obj_swpush.cpp:457
f32 field_0x5d8
Definition d_a_obj_swpush.h:178
DemoMode_e
Definition d_a_obj_swpush.h:85
@ DEMO_MODE_RUN_SW
Definition d_a_obj_swpush.h:90
@ DEMO_MODE_NON
Definition d_a_obj_swpush.h:86
@ DEMO_MODE_RUN_PAUSE
Definition d_a_obj_swpush.h:88
@ DEMO_MODE_REQ_SW
Definition d_a_obj_swpush.h:89
@ DEMO_MODE_REQ_PAUSE
Definition d_a_obj_swpush.h:87
f32 field_0x5e8
Definition d_a_obj_swpush.h:182
void demo_stop_puase()
Definition d_a_obj_swpush.cpp:706
void demo_reqPause()
Definition d_a_obj_swpush.cpp:682
int mType
Definition d_a_obj_swpush.h:157
Prm_e
Definition d_a_obj_swpush.h:67
@ PRM_4_e
Definition d_a_obj_swpush.h:71
@ PRM_10_e
Definition d_a_obj_swpush.h:73
@ PRM_8_e
Definition d_a_obj_swpush.h:72
@ PRM_0_e
Definition d_a_obj_swpush.h:68
@ PRM_1D_e
Definition d_a_obj_swpush.h:75
@ PRM_3_e
Definition d_a_obj_swpush.h:70
@ PRM_18_e
Definition d_a_obj_swpush.h:74
@ PRM_1_e
Definition d_a_obj_swpush.h:69
void set_mtx()
Definition d_a_obj_swpush.cpp:319
static Hio_c::Attr_c const M_attr[5]
Definition d_a_obj_swpush.h:121
static char * M_arcname[3]
Definition d_a_obj_swpush.h:60
f32 mCurHFrac
Definition d_a_obj_swpush.h:176
Mode_e
Definition d_a_obj_swpush.h:78
@ MODE_L_U
Definition d_a_obj_swpush.h:82
@ MODE_U_L
Definition d_a_obj_swpush.h:80
@ MODE_LOWER
Definition d_a_obj_swpush.h:81
@ MODE_UPPER
Definition d_a_obj_swpush.h:79
static u32 const M_heap_size[3]
Definition d_a_obj_swpush.h:119
void demo_runSw_init()
Definition d_a_obj_swpush.cpp:734
static s16 const M_bmd[3]
Definition d_a_obj_swpush.h:56
void top_bg_aim_req(f32, s16)
Definition d_a_obj_swpush.cpp:452
dBgWSv * mpBgW
Definition d_a_obj_swpush.h:153
int prm_get_type() const
Definition d_a_obj_swpush.h:99
int mMode
Definition d_a_obj_swpush.h:158
int prm_get_mdl() const
Definition d_a_obj_swpush.h:97
int prm_get_couple() const
Definition d_a_obj_swpush.h:95
void mode_u_l_init()
Definition d_a_obj_swpush.cpp:564
bool mPushFlg
Definition d_a_obj_swpush.h:173
int prm_get_swSave() const
Definition d_a_obj_swpush.h:98
s16 field_0x5e0
Definition d_a_obj_swpush.h:180
s8 field_0x5f2
Definition d_a_obj_swpush.h:185
void mode_upper_init()
Definition d_a_obj_swpush.cpp:495
void demo_reqSw()
Definition d_a_obj_swpush.cpp:725
void demo_reqSw_init()
Definition d_a_obj_swpush.cpp:716
bool create_heap()
Definition d_a_obj_swpush.cpp:66
void demo_non_init()
Definition d_a_obj_swpush.cpp:666
void prmZ_init()
Definition d_a_obj_swpush.cpp:37
int nr_ride_people(char)
Definition d_a_obj_swpush.cpp:755
void off_switch()
Definition d_a_obj_swpush.h:103
f32 mTargetHFrac
Definition d_a_obj_swpush.h:175
f32 field_0x5dc
Definition d_a_obj_swpush.h:179
f32 field_0x5e4
Definition d_a_obj_swpush.h:181
void on_switch()
Definition d_a_obj_swpush.h:104
static void rideCB(dBgW *, fopAc_ac_c *, fopAc_ac_c *)
Definition d_a_obj_swpush.cpp:334
void demo_runSw()
Definition d_a_obj_swpush.cpp:738
void mode_lower()
Definition d_a_obj_swpush.cpp:601
bool is_switch()
Definition d_a_obj_swpush.h:100
bool is_switch2() const
Definition d_a_obj_swpush.cpp:48
int Mthd_Execute()
Definition d_a_obj_swpush.cpp:766
s16 mPushTimer
Definition d_a_obj_swpush.h:172
u8 mRidingMode
Definition d_a_obj_swpush.h:165
J3DModel * mpModel
Definition d_a_obj_swpush.h:156
void calc_top_pos()
Definition d_a_obj_swpush.cpp:425
static BOOL solidHeapCB(fopAc_ac_c *)
Definition d_a_obj_swpush.cpp:52
int mDemoMode
Definition d_a_obj_swpush.h:159
bool check_ride_couple(s16)
Definition d_a_obj_swpush.cpp:745
bool mPrevHeavyRiding
Definition d_a_obj_swpush.h:171
cPhs__Step create_res_load()
Definition d_a_obj_swpush.cpp:110
void demo_runPause()
Definition d_a_obj_swpush.cpp:696
void mode_lower_init()
Definition d_a_obj_swpush.cpp:595
void demo_runPause_init()
Definition d_a_obj_swpush.cpp:690
cXyz field_0x5f8
Definition d_a_obj_swpush.h:188
u16 mPrmZ
Definition d_a_obj_swpush.h:162
static u8 const M_op_vtx[4]
Definition d_a_obj_swpush.h:200
u8 prm_get_evId() const
Definition d_a_obj_swpush.h:96
int Mthd_Draw()
Definition d_a_obj_swpush.cpp:824
request_of_phase_process_class mPhase
Definition d_a_obj_swpush.h:152
u8 mVibTimer
Definition d_a_obj_swpush.h:164
void demo_non()
Definition d_a_obj_swpush.cpp:670
u8 field_0x5f3
Definition d_a_obj_swpush.h:186
u8 prmZ_get_swSave2() const
Definition d_a_obj_swpush.h:94
bool mMiniPushFlg
Definition d_a_obj_swpush.h:168
void demo_reqPause_init()
Definition d_a_obj_swpush.cpp:674
s16 mEventID
Definition d_a_obj_swpush.h:161
void mode_upper()
Definition d_a_obj_swpush.cpp:502
static s16 const M_dzb[3]
Definition d_a_obj_swpush.h:58
s16 mPauseTimer
Definition d_a_obj_swpush.h:160
static int jnodeCB(J3DJoint *, int)
Definition d_a_obj_swpush.cpp:411
Mtx mMtx
Definition d_a_obj_swpush.h:154
void mode_l_u()
Definition d_a_obj_swpush.cpp:646
void mode_l_u_init()
Definition d_a_obj_swpush.cpp:640
const Hio_c::Attr_c & attr() const
Definition d_a_obj_swpush.h:93
f32 mSpeed
Definition d_a_obj_swpush.h:177
void set_btp_frame()
Definition d_a_obj_swpush.cpp:330
void init_mtx()
Definition d_a_obj_swpush.cpp:325
bool mPrmZInit
Definition d_a_obj_swpush.h:163
bool mHeavyRiding
Definition d_a_obj_swpush.h:170
s16 mDebounceTimer
Definition d_a_obj_swpush.h:184
int Mthd_Delete()
Definition d_a_obj_swpush.cpp:310
void fopAcM_revSwitch(fopAc_ac_c *i_actor, int param)
Definition d_a_obj_swpush.h:101
Definition d_a_obj_swpush.h:29
f32 draw_resist
Definition d_a_obj_swpush.h:35
s16 bg_time_lag
Definition d_a_obj_swpush.h:38
s16 demo_run_time
Definition d_a_obj_swpush.h:44
u8 field_0x2b
Definition d_a_obj_swpush.h:46
f32 draw_down_spd0
Definition d_a_obj_swpush.h:36
AttrFlag_e flags
Definition d_a_obj_swpush.h:32
s16 able_push_time_heavy
Definition d_a_obj_swpush.h:40
s16 able_push_time_any
Definition d_a_obj_swpush.h:39
u8 field_0x2a
Definition d_a_obj_swpush.h:45
s16 able_ride_time_middle
Definition d_a_obj_swpush.h:41
f32 step_up_space
Definition d_a_obj_swpush.h:42
f32 step_down_space
Definition d_a_obj_swpush.h:43
f32 draw_pypcon_acc
Definition d_a_obj_swpush.h:37
f32 draw_spring
Definition d_a_obj_swpush.h:34
f32 scale
Definition d_a_obj_swpush.h:33
Definition d_a_obj_swpush.h:27
Attr_c field_0x8[5]
Definition d_a_obj_swpush.h:62
void genMessage(JORMContext *)
void ct()
Definition d_a_obj_swpush.h:50
void default_set()
Definition d_a_obj_swpush.h:192
int mCount
Definition d_a_obj_swpush.h:61
void dt()
Definition d_a_obj_swpush.h:198
AttrFlag_e
Definition d_a_obj_swpush.h:18
@ FLAG_STAY_PRESSED
Definition d_a_obj_swpush.h:20
@ FLAG_UNK20
Definition d_a_obj_swpush.h:24
@ FLAG_OBEY_SAVE
Definition d_a_obj_swpush.h:19
@ FLAG_IS_TOGGLE
Definition d_a_obj_swpush.h:21
@ FLAG_REQ_HEAVY
Definition d_a_obj_swpush.h:22
@ FLAG_ON_IS_UP
Definition d_a_obj_swpush.h:23
static void clean(JORReflexible *node_ptr)
static void init(JORReflexible *node_ptr, const char *node_name)
Definition f_op_actor.h:230
STATIC_ASSERT(sizeof(daObjSwpush::Act_c)==0x604)
void dComIfGs_revSwitch(int i_no, int i_roomNo)
Definition d_com_inf_game.h:1296
f32 Mtx[3][4]
Definition mtx.h:25
int BOOL
Definition types.h:33
signed char s8
Definition types.h:7
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
int i
Definition e_pow.c:165
BOOL fopAcM_isSwitch(const fopAc_ac_c *i_actor, int sw)
Definition f_op_actor_mng.h:459
void fopAcM_offSwitch(const fopAc_ac_c *i_actor, int sw)
Definition f_op_actor_mng.h:451
s8 fopAcM_GetHomeRoomNo(const fopAc_ac_c *i_actor)
Definition f_op_actor_mng.h:300
void fopAcM_onSwitch(const fopAc_ac_c *i_actor, int sw)
Definition f_op_actor_mng.h:447
Definition d_a_obj_swpush.cpp:833
T PrmAbstract(const fopAc_ac_c *i_actor, T i_nbits, T i_shift)
Definition d_a_obj.h:20
Definition c_xyz.h:7
Definition c_phase.h:17