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
44
45template<class TAdaptor, class TStageObject>
47
51 typedef void (JStage::TActor::*Setter)(f32);
52 typedef f32 (JStage::TActor::*Getter)() const;
53 typedef f32 (JStage::TActor::*MaxGetter)() const;
54
57 {
59 mValueIndex = -1;
60 field_0x8 = 0;
61 mSetter = NULL;
62 mGetter = NULL;
63 mMaxGetter = NULL;
64 }
65 TVVOutput_ANIMATION_FRAME_(int param_1, u32 param_2, Setter param_3, Getter param_4,
66 MaxGetter param_5) {
67 mValueIndex = param_1;
68 field_0x8 = param_2;
69 mSetter = param_3;
70 mGetter = param_4;
71 mMaxGetter = param_5;
72 }
73
74 virtual void operator()(f32, JStudio::TAdaptor*) const;
75 inline virtual ~TVVOutput_ANIMATION_FRAME_();
76
77 void adaptor_setOutput_(TAdaptor* adaptor) const {
78 adaptor->adaptor_referVariableValue(mValueIndex)->setOutput(this);
79 }
80
81 void setVariableValue_(const JStage::TActor *param_1, JStudio::TAdaptor *param_2) const {
82 f32 val = (param_1->*mGetter)();
84 }
85
86 bool isEnd_() const { return mValueIndex == -1; }
87
88 /* 0x04 */ int mValueIndex;
89 /* 0x08 */ u32 field_0x8;
90 /* 0x0C */ Setter mSetter;
91 /* 0x18 */ Getter mGetter;
93 };
94
96
97 virtual ~TAdaptor_actor();
98 virtual void adaptor_do_prepare();
99 virtual void adaptor_do_begin();
100 virtual void adaptor_do_end();
101 virtual void adaptor_do_update(u32);
102 virtual void adaptor_do_data(void const*, u32, void const*, u32);
103 virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const*, u32);
105 u32);
107 u32);
109 u32);
110 virtual void adaptor_do_RELATION(JStudio::data::TEOperationData, void const*, u32);
112 u32);
114 u32);
115 virtual void adaptor_do_SHAPE(JStudio::data::TEOperationData, void const*, u32);
116 virtual void adaptor_do_ANIMATION(JStudio::data::TEOperationData, void const*, u32);
118 u32);
120 void const*, u32);
122 void const*, u32);
123
124 void setJSG_ID_(void (JStage::TActor::*)(u32),
125 JStudio::data::TEOperationData, void const*, u32);
126 void setJSG_SRT_(JStudio::TControl const*);
127 void getJSG_SRT_(JStudio::TControl const*);
128
130
133
134 /* 0x130 */ u32 field_0x130;
135 /* 0x134 */ u32 field_0x134;
136 /* 0x138 */ u32 field_0x138;
138 /* 0x140 */ u32 field_0x140;
139 /* 0x144 */ u8 field_0x144;
141 /* 0x14C */ u32 field_0x14c;
142};
143
147
148 virtual ~TAdaptor_ambientLight();
149 virtual void adaptor_do_prepare();
150 virtual void adaptor_do_begin();
151 virtual void adaptor_do_end();
152 virtual void adaptor_do_update(u32);
153 virtual void adaptor_do_data(void const*, u32, void const*, u32);
154
156};
157
161
163 virtual ~TAdaptor_camera();
164 virtual void adaptor_do_prepare();
165 virtual void adaptor_do_begin();
166 virtual void adaptor_do_end();
167 virtual void adaptor_do_update(u32);
168 virtual void adaptor_do_data(void const*, u32, void const*, u32);
169 virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const*, u32);
173 u32);
176 u32);
178 u32);
179
184
186
187 static TVVOutput saoVVOutput_[];
188
189 /* 0x108 */ int field_0x108;
191 /* 0x110 */ int field_0x110;
192 /* 0x114 */ u8 field_0x114;
194 /* 0x11C */ int field_0x11c;
195 /* 0x120 */ u8 field_0x120;
196};
197
200
202 virtual ~TAdaptor_fog();
203 virtual void adaptor_do_prepare();
204 virtual void adaptor_do_begin();
205 virtual void adaptor_do_end();
206 virtual void adaptor_do_update(u32);
207 virtual void adaptor_do_data(void const*, u32, void const*, u32);
208
210
212};
213
214template<class TAdaptor, class TStageObject>
216 typedef f32 (TStageObject::*GetFunc)() const;
217 typedef void (TStageObject::*SetFunc)(f32);
219 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) {}
220
221 virtual void operator()(f32 param_1, JStudio::TAdaptor* param_2) const {
222 (((TAdaptor*)param_2)->get_pJSG_()->*field_0x8)(param_1);
223 }
225
226 bool isEnd_() const { return field_0x4 == -1; }
227 void adaptor_setOutput_(TAdaptor* adaptor) const {
228 adaptor->adaptor_referVariableValue(field_0x4)->setOutput(this);
229 }
230 void setVariableValue_(const TStageObject* pObj, TAdaptor* pAdaptor) const {
231 f32 val = (pObj->*field_0x14)();
232 pAdaptor->adaptor_setVariableValue_immediate(field_0x4, val);
233 }
234
238};
239
242
254 field_0x4 = param_1;
255 field_0x8 = param_2;
256 }
257
258 virtual void operator()(f32, JStudio::TAdaptor*) const;
260
261 void adaptor_setOutput_(TAdaptor* adaptor) const {
262 adaptor->adaptor_referVariableValue(field_0x4)->setOutput(this);
263 }
264
265 bool isEnd_() const { return field_0x4 == -1; }
266
269 };
270
272 virtual ~TAdaptor_light();
273 virtual void adaptor_do_prepare();
274 virtual void adaptor_do_begin();
275 virtual void adaptor_do_end();
276 virtual void adaptor_do_update(u32);
277 virtual void adaptor_do_data(void const*, u32, void const*, u32);
278 virtual void adaptor_do_ENABLE(JStudio::data::TEOperationData, void const*, u32);
279 virtual void adaptor_do_FACULTY(JStudio::data::TEOperationData, void const*, u32);
280
282
284
286};
287
288bool
291 JStage::TObject const*, u32);
294 JStage::TObject const*, u32);
295
298 JStage::TObject const* param_3, u32 param_4) {
299 Mtx afStack_38;
300
301 if (!transform_toGlobalFromLocal(afStack_38, param_2, param_3, param_4)) {
302 return false;
303 }
304 JStudio::math::getFromTransformation_T(param_1, afStack_38);
305 return true;
306}
307bool
310 JStage::TObject const*, u32);
313 JStage::TObject const*, u32);
314
315namespace {
316
317template <class AdaptorT, class ObjectT>
318JStudio::TObject* createObject_JSG_(const JStudio::stb::data::TParse_TBlock_object& param_1,
319 JStage::TObject* param_2, const JStage::TSystem* param_3) {
320 ObjectT* objt = (ObjectT*)param_2;
321 AdaptorT* pAdaptor = new AdaptorT(param_3, objt);
322 if (pAdaptor == NULL) {
323 return NULL;
324 }
325 JGadget::TPointer_delete<AdaptorT> adaptorGuard(pAdaptor);
327 if (pObj == NULL) {
328 return NULL;
329 }
330 adaptorGuard.set(NULL);
331 return pObj;
332}
333
334} // namespace
335
336}; // namespace JStudio_JStage
337
338#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:53
Definition object-actor.cpp:370
bool transform_toGlobalFromLocal(f32(*)[4], JStudio::TControl::TTransform_translation_rotation_scaling const &, JStage::TObject const *, u32)
Definition object.cpp:12
bool transform_toLocalFromGlobal(f32(*)[4], JStudio::TControl::TTransform_translation_rotation_scaling const &, JStage::TObject const *, u32)
Definition object.cpp:51
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:221
TAdaptor_actor()
Definition jstudio-object.h:227
Definition jstudio-object.h:260
TAdaptor_ambientLight()
Definition jstudio-object.h:261
Definition jstudio-object.h:277
TAdaptor_camera()
Definition jstudio-object.h:285
Definition jstudio-object.h:310
TAdaptor_fog()
Definition jstudio-object.h:316
Definition jstudio-object.h:333
TAdaptor_light()
Definition jstudio-object.h:343
TEVariableValue
Definition jstudio-object.h:334
@ TE_VALUE_NONE
Definition jstudio-object.h:335
Definition jstudio-object.h:144
TAdaptor(TVariableValue *param_1, u32 param_2)
Definition jstudio-object.h:153
void adaptor_setVariableValue_immediate(JStudio::TAdaptor::TSetVariableValue_immediate const *)
Definition jstudio-object.cpp:196
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:253
Definition jstudio-object.h:270
Definition jstudio-object.h:303
Definition jstudio-object.h:326
Definition jstudio-object.h:357
Definition jstudio-object.h:27
virtual ~TVVOutput_ANIMATION_FRAME_()
Definition object-actor.cpp:367
void adaptor_setOutput_(TAdaptor *adaptor) const
Definition control.h:77
void setVariableValue_(const JStage::TActor *param_1, JStudio::TAdaptor *param_2) const
Definition control.h:81
TVVOutput_ANIMATION_FRAME_(int param_1, u32 param_2, Setter param_3, Getter param_4, MaxGetter param_5)
Definition control.h:65
virtual void operator()(f32, JStudio::TAdaptor *) const
Definition object-actor.cpp:343
Definition control.h:48
JStage::TActor * get_pJSG_()
Definition control.h:129
virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:145
static const TVVOutput_ANIMATION_FRAME_ saoVVOutput_ANIMATION_FRAME_[]
Definition control.h:132
f32(JStage::TActor::*) MaxGetter() const
Definition control.h:53
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:252
virtual void adaptor_do_TEXTURE_ANIMATION(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:112
virtual void adaptor_do_RELATION_ENABLE(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:238
JStage::TObject * field_0x13c
Definition control.h:137
virtual void adaptor_do_RELATION_NODE(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:219
virtual void adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:194
void setJSG_SRT_(JStudio::TControl const *)
Definition object-actor.cpp:262
virtual void adaptor_do_ANIMATION_MODE(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:98
virtual void adaptor_do_end()
Definition object-actor.cpp:65
u32 field_0x138
Definition control.h:136
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:205
virtual void adaptor_do_begin()
Definition object-actor.cpp:36
JStage::TObject * field_0x148
Definition control.h:140
u32 field_0x140
Definition control.h:138
f32(JStage::TActor::*) Getter() const
Definition control.h:52
void(JStage::TActor::*) Setter(f32)
Definition control.h:51
u32 field_0x130
Definition control.h:134
u32 field_0x14c
Definition control.h:141
TVariableValueOutput_object_< TAdaptor_actor, JStage::TActor > TVVOutputObject
Definition control.h:50
virtual ~TAdaptor_actor()
Definition object-actor.cpp:18
void getJSG_SRT_(JStudio::TControl const *)
Definition object-actor.cpp:302
virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const *, u32)
Definition object-actor.cpp:131
u32 field_0x134
Definition control.h:135
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:164
u8 field_0x144
Definition control.h:139
JStudio::TObject_actor ObjectType
Definition control.h:49
static const TVVOutputObject saoVVOutput_[]
Definition control.h:131
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:120
virtual void adaptor_do_prepare()
Definition object-ambientlight.cpp:17
JStage::TAmbientLight * get_pJSG_()
Definition control.h:155
JStudio::TObject_ambientLight ObjectType
Definition control.h:145
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:158
virtual void adaptor_do_TARGET_PARENT_ENABLE(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:190
virtual void adaptor_do_TARGET_PARENT(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:157
virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:94
virtual void adaptor_do_update(u32)
Definition object-camera.cpp:65
void getJSG_targetPosition_(JStudio::TControl const *)
Definition object-camera.cpp:282
virtual void adaptor_do_TARGET_PARENT_NODE(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:171
void setJSG_targetPosition_(JStudio::TControl const *)
Definition object-camera.cpp:264
TVariableValueOutput_object_< TAdaptor_camera, JStage::TCamera > TVVOutput
Definition control.h:160
virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:114
virtual void adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:143
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:185
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:191
u8 field_0x114
Definition control.h:192
JStudio::TObject_camera ObjectType
Definition control.h:159
void getJSG_position_(JStudio::TControl const *)
Definition object-camera.cpp:227
void setJSG_position_(JStudio::TControl const *)
Definition object-camera.cpp:201
JStage::TObject * field_0x10c
Definition control.h:190
virtual void adaptor_do_begin()
Definition object-camera.cpp:45
int field_0x108
Definition control.h:189
JStage::TObject * field_0x118
Definition control.h:193
int field_0x11c
Definition control.h:194
static TVVOutput saoVVOutput_[]
Definition control.h:25
u8 field_0x120
Definition control.h:195
virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, void const *, u32)
Definition object-camera.cpp:80
Definition control.h:198
virtual ~TAdaptor_fog()
Definition object-fog.cpp:12
JStage::TFog * get_pJSG_()
Definition control.h:209
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:199
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:268
virtual void operator()(f32, JStudio::TAdaptor *) const
Definition object-light.cpp:153
TEVariableValue field_0x4
Definition control.h:267
void adaptor_setOutput_(TAdaptor *adaptor) const
Definition control.h:261
TVVOutput_direction_(TEVariableValue param_1, TEDirection_ param_2)
Definition control.h:253
virtual ~TVVOutput_direction_()
Definition control.h:259
bool isEnd_() const
Definition control.h:265
Definition control.h:240
TEDirection_
Definition control.h:243
@ DIRECTION_1
Definition control.h:245
@ DIRECTION_0
Definition control.h:244
@ DIRECTION_2
Definition control.h:246
JStudio::TObject_light ObjectType
Definition control.h:241
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:283
JStage::TLight * get_pJSG_()
Definition control.h:281
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:91
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
JStage::TObject * adaptor_object_findJSGObject_(char const *)
Definition object.cpp:103
void adaptor_object_begin_()
Definition control.h:38
JStage::TObject * pJSGObject_
Definition control.h:42
void adaptor_object_ENABLE_(JStudio::data::TEOperationData, void const *, u32)
Definition object.cpp:125
s32 adaptor_object_findJSGObjectNode_(JStage::TObject const *, char const *)
Definition object.cpp:113
JStage::TSystem const * pJSGSystem_
Definition control.h:41
Definition control.h:17
virtual bool create(JStudio::TObject **, JStudio::stb::data::TParse_TBlock_object const &)
Definition control.cpp:15
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:216
TVariableValueOutput_object_()
Definition control.h:218
virtual ~TVariableValueOutput_object_()
Definition control.h:224
int field_0x4
Definition control.h:235
GetFunc field_0x14
Definition control.h:237
bool isEnd_() const
Definition control.h:226
void setVariableValue_(const TStageObject *pObj, TAdaptor *pAdaptor) const
Definition control.h:230
void(TStageObject::*) SetFunc(f32)
Definition control.h:217
TVariableValueOutput_object_(typename TAdaptor::TEVariableValue param_1, SetFunc param_2, GetFunc param_3)
Definition control.h:219
SetFunc field_0x8
Definition control.h:236
void adaptor_setOutput_(TAdaptor *adaptor) const
Definition control.h:227
virtual void operator()(f32 param_1, JStudio::TAdaptor *param_2) const
Definition control.h:221