Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
control.h
Go to the documentation of this file.
1#ifndef JSTUDIO_JSTAGE_CONTROL_H
2#define JSTUDIO_JSTAGE_CONTROL_H
3
13
14namespace JStudio_JStage {
19 pJSGSystem_ = pSystem;
20 JUT_ASSERT(42, pJSGSystem_!=NULL);
21 }
22
23 virtual ~TCreateObject();
24 virtual bool create(JStudio::TObject**,
26
27 /* 0x0C */ const JStage::TSystem* pJSGSystem_;
28};
29
32 pJSGSystem_(param_2), pJSGObject_(param_3) {}
33 void adaptor_object_data_(void const*, u32, void const*, u32);
37
40
41 #if VERSION == VERSION_SHIELD_DEBUG
42 /* 0x0 */ const JStudio::TAdaptor* pAdaptor_;
43 #endif
44 /* 0x0 */ JStage::TSystem const* pJSGSystem_;
46};
47
48template<class TAdaptor, class TStageObject>
50
54 typedef void (JStage::TActor::*Setter)(f32);
55 typedef f32 (JStage::TActor::*Getter)() const;
56 typedef f32 (JStage::TActor::*MaxGetter)() const;
57
60 {
62 mValueIndex = -1;
63 field_0x8 = 0;
64 mSetter = NULL;
65 mGetter = NULL;
66 mMaxGetter = NULL;
67 }
68 TVVOutput_ANIMATION_FRAME_(int param_1, u32 param_2, Setter param_3, Getter param_4,
69 MaxGetter param_5) {
70 mValueIndex = param_1;
71 field_0x8 = param_2;
72 mSetter = param_3;
73 mGetter = param_4;
74 mMaxGetter = param_5;
75 }
76
77 virtual void operator()(f32, JStudio::TAdaptor*) const;
78 inline virtual ~TVVOutput_ANIMATION_FRAME_();
79
80 void adaptor_setOutput_(TAdaptor* adaptor) const {
81 adaptor->adaptor_referVariableValue(mValueIndex)->setOutput(this);
82 }
83
84 void setVariableValue_(const JStage::TActor *param_1, JStudio::TAdaptor *param_2) const {
85 f32 val = (param_1->*mGetter)();
87 }
88
89 bool isEnd_() const { return mValueIndex == -1; }
90
91 /* 0x04 */ int mValueIndex;
92 /* 0x08 */ u32 field_0x8;
93 /* 0x0C */ Setter mSetter;
94 /* 0x18 */ Getter mGetter;
96 };
97
99
100 virtual ~TAdaptor_actor();
101 virtual void adaptor_do_prepare();
102 virtual void adaptor_do_begin();
103 virtual void adaptor_do_end();
104 virtual void adaptor_do_update(u32);
105 virtual void adaptor_do_data(void const*, u32, void const*, u32);
106 virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const*, u32);
108 u32);
110 u32);
112 u32);
113 virtual void adaptor_do_RELATION(JStudio::data::TEOperationData, void const*, u32);
115 u32);
117 u32);
118 virtual void adaptor_do_SHAPE(JStudio::data::TEOperationData, void const*, u32);
119 virtual void adaptor_do_ANIMATION(JStudio::data::TEOperationData, void const*, u32);
121 u32);
123 void const*, u32);
125 void const*, u32);
126
127 void setJSG_ID_(void (JStage::TActor::*)(u32),
128 JStudio::data::TEOperationData, void const*, u32);
129 void setJSG_SRT_(JStudio::TControl const*);
130 void getJSG_SRT_(JStudio::TControl const*);
131
133
136
137 /* 0x130 */ u32 field_0x130;
138 /* 0x134 */ u32 field_0x134;
139 /* 0x138 */ u32 field_0x138;
141 /* 0x140 */ u32 field_0x140;
142 /* 0x144 */ u8 field_0x144;
144 /* 0x14C */ u32 field_0x14c;
145};
146
150
151 virtual ~TAdaptor_ambientLight();
152 virtual void adaptor_do_prepare();
153 virtual void adaptor_do_begin();
154 virtual void adaptor_do_end();
155 virtual void adaptor_do_update(u32);
156 virtual void adaptor_do_data(void const*, u32, void const*, u32);
157
159};
160
164
166 virtual ~TAdaptor_camera();
167 virtual void adaptor_do_prepare();
168 virtual void adaptor_do_begin();
169 virtual void adaptor_do_end();
170 virtual void adaptor_do_update(u32);
171 virtual void adaptor_do_data(void const*, u32, void const*, u32);
172 virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const*, u32);
176 u32);
179 u32);
181 u32);
182
187
189
190 static TVVOutput saoVVOutput_[];
191
192 /* 0x108 */ int field_0x108;
194 /* 0x110 */ int field_0x110;
195 /* 0x114 */ u8 field_0x114;
197 /* 0x11C */ int field_0x11c;
198 /* 0x120 */ u8 field_0x120;
199};
200
203
205 virtual ~TAdaptor_fog();
206 virtual void adaptor_do_prepare();
207 virtual void adaptor_do_begin();
208 virtual void adaptor_do_end();
209 virtual void adaptor_do_update(u32);
210 virtual void adaptor_do_data(void const*, u32, void const*, u32);
211
213
215};
216
217template<class TAdaptor, class TStageObject>
219 typedef f32 (TStageObject::*GetFunc)() const;
220 typedef void (TStageObject::*SetFunc)(f32);
222 TVariableValueOutput_object_(typename TAdaptor::TEVariableValue param_1, SetFunc param_2, GetFunc param_3) : field_0x4(param_1), field_0x8(param_2), field_0x14(param_3) {}
223
224 virtual void operator()(f32 param_1, JStudio::TAdaptor* param_2) const {
225 (((TAdaptor*)param_2)->get_pJSG_()->*field_0x8)(param_1);
226 }
228
229 bool isEnd_() const { return field_0x4 == -1; }
230 void adaptor_setOutput_(TAdaptor* adaptor) const {
231 adaptor->adaptor_referVariableValue(field_0x4)->setOutput(this);
232 }
233 void setVariableValue_(const TStageObject* pObj, TAdaptor* pAdaptor) const {
234 f32 val = (pObj->*field_0x14)();
235 pAdaptor->adaptor_setVariableValue_immediate(field_0x4, val);
236 }
237
241};
242
245
257 field_0x4 = param_1;
258 field_0x8 = param_2;
259 }
260
261 virtual void operator()(f32, JStudio::TAdaptor*) const;
263
264 void adaptor_setOutput_(TAdaptor* adaptor) const {
265 adaptor->adaptor_referVariableValue(field_0x4)->setOutput(this);
266 }
267
268 bool isEnd_() const { return field_0x4 == -1; }
269
272 };
273
275 virtual ~TAdaptor_light();
276 virtual void adaptor_do_prepare();
277 virtual void adaptor_do_begin();
278 virtual void adaptor_do_end();
279 virtual void adaptor_do_update(u32);
280 virtual void adaptor_do_data(void const*, u32, void const*, u32);
281 virtual void adaptor_do_ENABLE(JStudio::data::TEOperationData, void const*, u32);
282 virtual void adaptor_do_FACULTY(JStudio::data::TEOperationData, void const*, u32);
283
285
287
289};
290
291bool
294 JStage::TObject const*, u32);
297 JStage::TObject const*, u32);
298
301 JStage::TObject const* param_3, u32 param_4) {
302 Mtx afStack_38;
303
304 if (!transform_toGlobalFromLocal(afStack_38, param_2, param_3, param_4)) {
305 return false;
306 }
307 JStudio::math::getFromTransformation_T(param_1, afStack_38);
308 return true;
309}
310bool
313 JStage::TObject const*, u32);
316 JStage::TObject const*, u32);
317
318namespace {
319
320template <class AdaptorT, class ObjectT>
321JStudio::TObject* createObject_JSG_(const JStudio::stb::data::TParse_TBlock_object& param_1,
322 JStage::TObject* param_2, const JStage::TSystem* param_3) {
323 ObjectT* objt = (ObjectT*)param_2;
324 AdaptorT* pAdaptor = new AdaptorT(param_3, objt);
325 if (pAdaptor == NULL) {
326 return NULL;
327 }
328 JGadget::TPointer_delete<AdaptorT> adaptorGuard(pAdaptor);
330 if (pObj == NULL) {
331 return NULL;
332 }
333 adaptorGuard.set(NULL);
334 return pObj;
335}
336
337} // namespace
338
339}; // namespace JStudio_JStage
340
341#endif /* JSTUDIO_JSTAGE_CONTROL_H */
Definition pointer.h:16
Definition jstudio-control.h:43
Definition jstudio-object.h:110
Definition stb-data-parse.h:82
f32 Mtx[3][4]
Definition mtx.h:25
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
TEOperationData
Definition jstudio-object.h:13
void getFromTransformation_T(Vec *param_1, CMtxP param_2)
Definition jstudio-math.h:55
Definition object-actor.cpp:343
bool transform_toGlobalFromLocal(f32(*)[4], JStudio::TControl::TTransform_translation_rotation_scaling const &, JStage::TObject const *, u32)
Definition object.cpp:9
bool transform_toLocalFromGlobal(f32(*)[4], JStudio::TControl::TTransform_translation_rotation_scaling const &, JStage::TObject const *, u32)
Definition object.cpp:42
Definition JSGActor.h:12
Definition JSGAmbientLight.h:13
Definition JSGCamera.h:24
Definition JSGFog.h:13
Definition JSGLight.h:19
Definition JSGObject.h:11
void JSGFDisableFlag(u32 flag)
Definition JSGObject.h:30
void JSGFEnableFlag(u32 flag)
Definition JSGObject.h:26
Definition JSGSystem.h:21
Definition jstudio-object.h:227
TAdaptor_actor()
Definition jstudio-object.h:233
Definition jstudio-object.h:266
TAdaptor_ambientLight()
Definition jstudio-object.h:267
Definition jstudio-object.h:283
TAdaptor_camera()
Definition jstudio-object.h:291
Definition jstudio-object.h:316
TAdaptor_fog()
Definition jstudio-object.h:322
Definition jstudio-object.h:339
TAdaptor_light()
Definition jstudio-object.h:349
TEVariableValue
Definition jstudio-object.h:340
@ TE_VALUE_NONE
Definition jstudio-object.h:341
Definition jstudio-object.h:150
TAdaptor(TVariableValue *param_1, u32 param_2)
Definition jstudio-object.h:159
void adaptor_setVariableValue_immediate(JStudio::TAdaptor::TSetVariableValue_immediate const *)
Definition jstudio-object.cpp:187
Definition jstudio-control.h:50
Definition jstudio-control.h:12
static AdaptorT::ObjectType * createFromAdaptor(JStudio::stb::data::TParse_TBlock_object const &param_1, AdaptorT *param_2)
Definition jstudio-control.h:18
Definition jstudio-object.h:259
Definition jstudio-object.h:276
Definition jstudio-object.h:309
Definition jstudio-object.h:332
Definition jstudio-object.h:363
Definition jstudio-object.h:27
virtual ~TVVOutput_ANIMATION_FRAME_()
Definition object-actor.cpp:340
void adaptor_setOutput_(TAdaptor *adaptor) const
Definition control.h:80
void setVariableValue_(const JStage::TActor *param_1, JStudio::TAdaptor *param_2) const
Definition control.h:84
TVVOutput_ANIMATION_FRAME_(int param_1, u32 param_2, Setter param_3, Getter param_4, MaxGetter param_5)
Definition control.h:68
virtual void operator()(f32, JStudio::TAdaptor *) const
Definition object-actor.cpp:316
Definition control.h:51
JStage::TActor * get_pJSG_()
Definition control.h:132
virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:133
static const TVVOutput_ANIMATION_FRAME_ saoVVOutput_ANIMATION_FRAME_[]
Definition control.h:135
f32(JStage::TActor::*) MaxGetter() const
Definition control.h:56
virtual void adaptor_do_ANIMATION(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:89
void setJSG_ID_(void(JStage::TActor::*)(u32), JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:225
virtual void adaptor_do_TEXTURE_ANIMATION(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:106
virtual void adaptor_do_RELATION_ENABLE(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:214
JStage::TObject * field_0x13c
Definition control.h:140
virtual void adaptor_do_RELATION_NODE(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:198
virtual void adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:176
void setJSG_SRT_(JStudio::TControl const *)
Definition object-actor.cpp:235
virtual void adaptor_do_ANIMATION_MODE(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:95
virtual void adaptor_do_end()
Definition object-actor.cpp:65
u32 field_0x138
Definition control.h:139
virtual void adaptor_do_SHAPE(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:83
virtual void adaptor_do_RELATION(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:187
virtual void adaptor_do_begin()
Definition object-actor.cpp:36
JStage::TObject * field_0x148
Definition control.h:143
u32 field_0x140
Definition control.h:141
f32(JStage::TActor::*) Getter() const
Definition control.h:55
void(JStage::TActor::*) Setter(f32)
Definition control.h:54
u32 field_0x130
Definition control.h:137
u32 field_0x14c
Definition control.h:144
TVariableValueOutput_object_< TAdaptor_actor, JStage::TActor > TVVOutputObject
Definition control.h:53
virtual ~TAdaptor_actor()
Definition object-actor.cpp:18
void getJSG_SRT_(JStudio::TControl const *)
Definition object-actor.cpp:275
virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:122
u32 field_0x134
Definition control.h:138
virtual void adaptor_do_update(u32)
Definition object-actor.cpp:69
virtual void adaptor_do_data(void const *, u32, void const *, u32)
Definition object-actor.cpp:78
virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:149
u8 field_0x144
Definition control.h:142
JStudio::TObject_actor ObjectType
Definition control.h:52
static const TVVOutputObject saoVVOutput_[]
Definition control.h:134
virtual void adaptor_do_prepare()
Definition object-actor.cpp:22
virtual void adaptor_do_TEXTURE_ANIMATION_MODE(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:111
virtual void adaptor_do_prepare()
Definition object-ambientlight.cpp:17
JStage::TAmbientLight * get_pJSG_()
Definition control.h:158
JStudio::TObject_ambientLight ObjectType
Definition control.h:148
virtual void adaptor_do_update(u32)
Definition object-ambientlight.cpp:31
virtual void adaptor_do_data(void const *, u32, void const *, u32)
Definition object-ambientlight.cpp:39
virtual void adaptor_do_begin()
Definition object-ambientlight.cpp:20
virtual ~TAdaptor_ambientLight()
Definition object-ambientlight.cpp:13
virtual void adaptor_do_end()
Definition object-ambientlight.cpp:27
Definition control.h:161
virtual void adaptor_do_TARGET_PARENT_ENABLE(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:172
virtual void adaptor_do_TARGET_PARENT(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:145
virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:91
virtual void adaptor_do_update(u32)
Definition object-camera.cpp:65
void getJSG_targetPosition_(JStudio::TControl const *)
Definition object-camera.cpp:264
virtual void adaptor_do_TARGET_PARENT_NODE(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:156
void setJSG_targetPosition_(JStudio::TControl const *)
Definition object-camera.cpp:246
TVariableValueOutput_object_< TAdaptor_camera, JStage::TCamera > TVVOutput
Definition control.h:163
virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:108
virtual void adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:134
virtual ~TAdaptor_camera()
Definition object-camera.cpp:21
virtual void adaptor_do_end()
Definition object-camera.cpp:61
JStage::TCamera * get_pJSG_()
Definition control.h:188
virtual void adaptor_do_prepare()
Definition object-camera.cpp:37
virtual void adaptor_do_data(void const *, u32, void const *, u32)
Definition object-camera.cpp:75
int field_0x110
Definition control.h:194
u8 field_0x114
Definition control.h:195
JStudio::TObject_camera ObjectType
Definition control.h:162
void getJSG_position_(JStudio::TControl const *)
Definition object-camera.cpp:209
void setJSG_position_(JStudio::TControl const *)
Definition object-camera.cpp:183
JStage::TObject * field_0x10c
Definition control.h:193
virtual void adaptor_do_begin()
Definition object-camera.cpp:45
int field_0x108
Definition control.h:192
JStage::TObject * field_0x118
Definition control.h:196
int field_0x11c
Definition control.h:197
static TVVOutput saoVVOutput_[]
Definition control.h:25
u8 field_0x120
Definition control.h:198
virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:80
Definition control.h:201
virtual ~TAdaptor_fog()
Definition object-fog.cpp:12
JStage::TFog * get_pJSG_()
Definition control.h:212
virtual void adaptor_do_end()
Definition object-fog.cpp:43
static TVariableValueOutput_object_< TAdaptor_fog, JStage::TFog > saoVVOutput_[]
Definition control.h:16
virtual void adaptor_do_update(u32)
Definition object-fog.cpp:47
virtual void adaptor_do_prepare()
Definition object-fog.cpp:22
JStudio::TObject_fog ObjectType
Definition control.h:202
virtual void adaptor_do_begin()
Definition object-fog.cpp:31
virtual void adaptor_do_data(void const *, u32, void const *, u32)
Definition object-fog.cpp:55
TEDirection_ field_0x8
Definition control.h:271
virtual void operator()(f32, JStudio::TAdaptor *) const
Definition object-light.cpp:153
TEVariableValue field_0x4
Definition control.h:270
void adaptor_setOutput_(TAdaptor *adaptor) const
Definition control.h:264
TVVOutput_direction_(TEVariableValue param_1, TEDirection_ param_2)
Definition control.h:256
virtual ~TVVOutput_direction_()
Definition control.h:262
bool isEnd_() const
Definition control.h:268
Definition control.h:243
TEDirection_
Definition control.h:246
@ DIRECTION_1
Definition control.h:248
@ DIRECTION_0
Definition control.h:247
@ DIRECTION_2
Definition control.h:249
JStudio::TObject_light ObjectType
Definition control.h:244
virtual void adaptor_do_data(void const *, u32, void const *, u32)
Definition object-light.cpp:116
virtual void adaptor_do_ENABLE(JStudio::data::TEOperationData, void const *, u32)
Definition object-light.cpp:148
virtual void adaptor_do_FACULTY(JStudio::data::TEOperationData, void const *, u32)
Definition object-light.cpp:121
virtual ~TAdaptor_light()
Definition object-light.cpp:11
virtual void adaptor_do_end()
Definition object-light.cpp:75
virtual void adaptor_do_begin()
Definition object-light.cpp:43
int field_0x11c
Definition control.h:286
JStage::TLight * get_pJSG_()
Definition control.h:284
virtual void adaptor_do_prepare()
Definition object-light.cpp:35
virtual void adaptor_do_update(u32)
Definition object-light.cpp:79
static TVVOutput_direction_ saoVVOutput_direction_[6]
Definition control.h:16
Definition control.h:30
void adaptor_object_data_(void const *, u32, void const *, u32)
Definition object.cpp:79
void adaptor_object_end_()
Definition control.h:39
TAdaptor_object_(const JStudio::TAdaptor *, JStage::TSystem const *param_2, JStage::TObject *param_3)
Definition control.h:31
const JStudio::TAdaptor * pAdaptor_
Definition control.h:42
JStage::TObject * adaptor_object_findJSGObject_(char const *)
Definition object.cpp:91
void adaptor_object_begin_()
Definition control.h:38
JStage::TObject * pJSGObject_
Definition control.h:45
void adaptor_object_ENABLE_(JStudio::data::TEOperationData, void const *, u32)
Definition object.cpp:110
s32 adaptor_object_findJSGObjectNode_(JStage::TObject const *, char const *)
Definition object.cpp:101
JStage::TSystem const * pJSGSystem_
Definition control.h:44
Definition control.h:17
virtual bool create(JStudio::TObject **, JStudio::stb::data::TParse_TBlock_object const &)
Definition control.cpp:12
TCreateObject(const JStage::TSystem *pSystem)
Definition control.h:18
const JStage::TSystem * pJSGSystem_
Definition control.h:27
virtual ~TCreateObject()
Definition control.cpp:10
f32(TStageObject::*) GetFunc() const
Definition control.h:219
TVariableValueOutput_object_()
Definition control.h:221
virtual ~TVariableValueOutput_object_()
Definition control.h:227
int field_0x4
Definition control.h:238
GetFunc field_0x14
Definition control.h:240
bool isEnd_() const
Definition control.h:229
void setVariableValue_(const TStageObject *pObj, TAdaptor *pAdaptor) const
Definition control.h:233
void(TStageObject::*) SetFunc(f32)
Definition control.h:220
TVariableValueOutput_object_(typename TAdaptor::TEVariableValue param_1, SetFunc param_2, GetFunc param_3)
Definition control.h:222
SetFunc field_0x8
Definition control.h:239
void adaptor_setOutput_(TAdaptor *adaptor) const
Definition control.h:230
virtual void operator()(f32 param_1, JStudio::TAdaptor *param_2) const
Definition control.h:224