diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2025-04-07 18:36:51 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-07 15:36:51 -0700 |
| commit | 6c51708b8cfb4d7f929a32fc7d3bb866f9a42d2d (patch) | |
| tree | 35f7767c794e276eb51c97fdd48cda149a192c3c /include | |
| parent | c3fccc287723f2fdc2e8401d074da74d8f670081 (diff) | |
JStudio object-actor OK (#2381)
* Fix debug build
* object-actor OK
Diffstat (limited to 'include')
| -rw-r--r-- | include/JSystem/JStudio/JStudio/jstudio-object.h | 55 | ||||
| -rw-r--r-- | include/JSystem/JStudio/JStudio/stb.h | 2 | ||||
| -rw-r--r-- | include/JSystem/JStudio/JStudio_JAudio2/control.h | 9 | ||||
| -rw-r--r-- | include/JSystem/JStudio/JStudio_JStage/control.h | 77 | ||||
| -rw-r--r-- | include/JSystem/JStudio/JStudio_JStage/object-actor.h | 2 | ||||
| -rw-r--r-- | include/JSystem/JStudio/JStudio_JStage/tvariable_value_output_object.h | 43 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_lv6TogeRoll.h | 2 |
7 files changed, 86 insertions, 104 deletions
diff --git a/include/JSystem/JStudio/JStudio/jstudio-object.h b/include/JSystem/JStudio/JStudio/jstudio-object.h index a9b411a1f1..1c87b6ba03 100644 --- a/include/JSystem/JStudio/JStudio/jstudio-object.h +++ b/include/JSystem/JStudio/JStudio/jstudio-object.h @@ -24,7 +24,7 @@ struct TAdaptor; struct TVariableValue { struct TOutput { virtual void operator()(f32, JStudio::TAdaptor*) const = 0; - /* 80285E0C */ ~TOutput(); + /* 80285E0C */ virtual ~TOutput() = 0; }; struct TOutput_none_ { @@ -36,8 +36,7 @@ struct TVariableValue { /* 80285EB8 */ static void update_immediate_(JStudio::TVariableValue*, f64); /* 80285ECC */ static void update_time_(JStudio::TVariableValue*, f64); /* 80285F08 */ static void update_functionValue_(JStudio::TVariableValue*, f64); - /* 8028B568 */ TVariableValue(); - //TVariableValue() : field_0x4(0), field_0x8(NULL), pOutput_((TOutput*)soOutput_none_) {} + /* 8028B568 */ TVariableValue() : field_0x4(0), field_0x8(NULL), pOutput_((TOutput*)soOutput_none_) {} void setValue_immediate(f32 value) { field_0x8 = &update_immediate_; @@ -83,7 +82,7 @@ struct TVariableValue { } } - void setOutput(TOutput* param_1) { + void setOutput(const TOutput* param_1) { pOutput_ = (param_1 != NULL) ? param_1 : (TOutput*)soOutput_none_; } @@ -96,7 +95,7 @@ struct TVariableValue { TFunctionValue* fv; f32 val; } field_0xc; - /* 0x10 */ TOutput* pOutput_; + /* 0x10 */ const TOutput* pOutput_; }; // Size: 0x14 typedef void (TObject::*paragraphFunc)(u32, void const*, u32); @@ -113,8 +112,9 @@ public: /* 8028680C */ virtual void do_wait(u32); /* 8028682C */ virtual void do_data(void const*, u32, void const*, u32); - TAdaptor* getAdaptor() { return mpAdaptor; } - TControl* getControl() const { return (TControl*)stb::TObject::getControl(); } + TAdaptor* getAdaptor() const { return mpAdaptor; } + TControl* getControl() { return (TControl*)stb::TObject::getControl(); } + const TControl* getControl() const { return (const TControl*)stb::TObject::getControl(); } inline void prepareAdaptor(); @@ -211,7 +211,16 @@ inline void TObject::prepareAdaptor() { } struct TAdaptor_actor : public TAdaptor { - TAdaptor_actor() : TAdaptor(mValue, 14) {} + enum TEVariableValue { + TE_VALUE_NONE = -1, + TEACTOR_1 = 1, + }; + + TAdaptor_actor() + : TAdaptor(mValue, ARRAY_SIZE(mValue)) + , mValue() + { + } /* 802868B0 */ virtual ~TAdaptor_actor() = 0; virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, const void*, u32) = 0; virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, const void*, u32) = 0; @@ -260,6 +269,13 @@ struct TObject_ambientLight : public TObject { }; struct TAdaptor_camera : public TAdaptor { + enum TEVariableValue { + TECAMERA_6 = 6, + TECAMERA_7 = 7, + TECAMERA_8 = 8, + TECAMERA_9 = 9, + }; + TAdaptor_camera() : TAdaptor(mValue, 12) {} /* 80286E1C */ virtual ~TAdaptor_camera() = 0; @@ -287,6 +303,11 @@ struct TObject_camera : public TObject { }; struct TAdaptor_fog : public TAdaptor { + enum TEVariableValue { + TEFOG_4 = 4, + TEFOG_5 = 5, + }; + TAdaptor_fog() : TAdaptor(mValue, 6) {} /* 8028717C */ virtual ~TAdaptor_fog() = 0; @@ -306,6 +327,15 @@ struct TObject_fog : public TObject { }; struct TAdaptor_light : public TAdaptor { + enum TEVariableValue { + TE_VALUE_NONE = -1, + TE_VALUE_7 = 7, + TE_VALUE_8 = 8, + TE_VALUE_9 = 9, + TE_VALUE_10 = 10, + TE_VALUE_11 = 11, + }; + TAdaptor_light() : TAdaptor(mValue, 13) {} /* 80287308 */ virtual ~TAdaptor_light() = 0; @@ -363,6 +393,15 @@ struct TObject_particle : public TObject { }; struct TAdaptor_sound : public TAdaptor { + enum TEVariableValue { + UNK_7 = 7, + UNK_8 = 8, + UNK_9 = 9, + UNK_10 = 10, + UNK_11 = 11, + UNK_NONE = -1, + }; + TAdaptor_sound() : TAdaptor(mValue, 13) {} /* 80287B3C */ virtual ~TAdaptor_sound() = 0; diff --git a/include/JSystem/JStudio/JStudio/stb.h b/include/JSystem/JStudio/JStudio/stb.h index 256ae9f1db..d1846bdb49 100644 --- a/include/JSystem/JStudio/JStudio/stb.h +++ b/include/JSystem/JStudio/JStudio/stb.h @@ -94,7 +94,7 @@ public: /* 0x10 */ JGadget::TLinkListNode ocObject_; -private: +public: // private: // public for the fakematch in JStudio_JStage::TAdaptor_actor::adaptor_do_begin /* 0x14 */ TControl* pControl; /* 0x18 */ u32 signature; /* 0x1C */ u16 mFlag; diff --git a/include/JSystem/JStudio/JStudio_JAudio2/control.h b/include/JSystem/JStudio/JStudio_JAudio2/control.h index 731c132c26..b67f8193ae 100644 --- a/include/JSystem/JStudio/JStudio_JAudio2/control.h +++ b/include/JSystem/JStudio/JStudio_JAudio2/control.h @@ -37,15 +37,6 @@ struct TAdaptor_sound : public JStudio::TAdaptor_sound { typedef void (*TVVOSoundSetFunc)(JAISound*, f32); typedef JStudio::TObject_sound ObjectType; - enum TEVariableValue { - UNK_7 = 7, - UNK_8 = 8, - UNK_9 = 9, - UNK_10 = 10, - UNK_11 = 11, - UNK_NONE = -1, - }; - struct TVVOSetValue_ : public JStudio::TVariableValue::TOutput { TVVOSetValue_(TEVariableValue param_1, TVVOSoundSetFunc param_2) : field_0x04(param_1), field_0x08(param_2) {} diff --git a/include/JSystem/JStudio/JStudio_JStage/control.h b/include/JSystem/JStudio/JStudio_JStage/control.h index 7ee1f52aa0..04da734dbb 100644 --- a/include/JSystem/JStudio/JStudio_JStage/control.h +++ b/include/JSystem/JStudio/JStudio_JStage/control.h @@ -10,15 +10,6 @@ #include "JSystem/JStudio/JStudio/jstudio-object.h" #include "JSystem/JStudio/JStudio/jstudio-math.h" -#ifdef DEBUG -namespace JStudio_JStage { -template<class TAdaptor, class TStageObject> -struct TVariableValueOutput_object_; -}; // namespace JStudio_JStage -#else -#include "JSystem/JStudio/JStudio_JStage/tvariable_value_output_object.h" -#endif - namespace JStudio_JStage { typedef JStudio::TObject* (*ObjCreateFuncT)(const JStudio::stb::data::TParse_TBlock_object&, JStage::TObject*, const JStage::TSystem*); @@ -50,6 +41,9 @@ struct TAdaptor_object_ { /* 0x4 */ JStage::TObject* pJSGObject_; }; +template<class TAdaptor, class TStageObject> +struct TVariableValueOutput_object_; + struct TAdaptor_actor : public JStudio::TAdaptor_actor, public JStudio_JStage::TAdaptor_object_ { typedef JStudio::TObject_actor ObjectType; typedef TVariableValueOutput_object_<TAdaptor_actor, JStage::TActor> TVVOutputObject; @@ -57,10 +51,6 @@ struct TAdaptor_actor : public JStudio::TAdaptor_actor, public JStudio_JStage::T typedef f32 (JStage::TActor::*Getter)() const; typedef f32 (JStage::TActor::*MaxGetter)() const; - enum TEVariableValue { - TEACTOR_1 = 1, - }; - struct TVVOutput_ANIMATION_FRAME_ : public JStudio::TVariableValue::TOutput { @@ -81,9 +71,9 @@ struct TAdaptor_actor : public JStudio::TAdaptor_actor, public JStudio_JStage::T } /* 8028B064 */ virtual void operator()(f32, JStudio::TAdaptor*) const; - /* 8028B138 */ virtual ~TVVOutput_ANIMATION_FRAME_(); + /* 8028B138 */ inline virtual ~TVVOutput_ANIMATION_FRAME_(); - void adaptor_setOutput_(TAdaptor* adaptor) { + void adaptor_setOutput_(TAdaptor* adaptor) const { adaptor->adaptor_referVariableValue(mValueIndex)->setOutput(this); } @@ -137,8 +127,8 @@ struct TAdaptor_actor : public JStudio::TAdaptor_actor, public JStudio_JStage::T JStage::TActor* get_pJSG_() { return (JStage::TActor*) pJSGObject_; } - static TVVOutputObject saoVVOutput_[2]; - static TVVOutput_ANIMATION_FRAME_ saoVVOutput_ANIMATION_FRAME_[3]; + static const TVVOutputObject saoVVOutput_[]; + static const TVVOutput_ANIMATION_FRAME_ saoVVOutput_ANIMATION_FRAME_[]; /* 0x130 */ u32 field_0x130; /* 0x134 */ u32 field_0x134; @@ -168,13 +158,6 @@ struct TAdaptor_camera : public JStudio::TAdaptor_camera, public TAdaptor_object typedef JStudio::TObject_camera ObjectType; typedef TVariableValueOutput_object_<TAdaptor_camera, JStage::TCamera> TVVOutput; - enum TEVariableValue { - TECAMERA_6 = 6, - TECAMERA_7 = 7, - TECAMERA_8 = 8, - TECAMERA_9 = 9, - }; - /* 8028B8A0 */ TAdaptor_camera(JStage::TSystem const*, JStage::TCamera*); /* 8028B960 */ virtual ~TAdaptor_camera(); /* 8028B9D4 */ virtual void adaptor_do_prepare(); @@ -200,7 +183,7 @@ struct TAdaptor_camera : public JStudio::TAdaptor_camera, public TAdaptor_object JStage::TCamera* get_pJSG_() { return (JStage::TCamera*)pJSGObject_; } - static TVVOutput saoVVOutput_[5]; + static TVVOutput saoVVOutput_[]; /* 0x108 */ int field_0x108; /* 0x10C */ JStage::TObject* field_0x10c; @@ -213,10 +196,6 @@ struct TAdaptor_camera : public JStudio::TAdaptor_camera, public TAdaptor_object struct TAdaptor_fog : public JStudio::TAdaptor_fog, public TAdaptor_object_ { typedef JStudio::TObject_fog ObjectType; - enum TEVariableValue { - TEFOG_4 = 4, - TEFOG_5 = 5, - }; /* 8028C574 */ TAdaptor_fog(JStage::TSystem const*, JStage::TFog*); /* 8028C610 */ virtual ~TAdaptor_fog(); @@ -228,20 +207,38 @@ struct TAdaptor_fog : public JStudio::TAdaptor_fog, public TAdaptor_object_ { JStage::TFog* get_pJSG_() { return (JStage::TFog*)pJSGObject_; } - static TVariableValueOutput_object_<TAdaptor_fog, JStage::TFog> saoVVOutput_[3]; + static TVariableValueOutput_object_<TAdaptor_fog, JStage::TFog> saoVVOutput_[]; +}; + +template<class TAdaptor, class TStageObject> +struct TVariableValueOutput_object_ : public JStudio::TVariableValue::TOutput { + typedef f32 (TStageObject::*GetFunc)() const; + typedef void (TStageObject::*SetFunc)(f32); + TVariableValueOutput_object_() : field_0x4(-1), field_0x8(NULL), field_0x14(NULL) {} + 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) {} + + virtual void operator()(f32 param_1, JStudio::TAdaptor* param_2) const { + (((TAdaptor*)param_2)->get_pJSG_()->*field_0x8)(param_1); + } + virtual ~TVariableValueOutput_object_() {} + + bool isEnd_() const { return field_0x4 == -1; } + void adaptor_setOutput_(TAdaptor* adaptor) const { + adaptor->adaptor_referVariableValue(field_0x4)->setOutput(this); + } + void setVariableValue_(const TStageObject* pObj, TAdaptor* pAdaptor) const { + f32 val = (pObj->*field_0x14)(); + pAdaptor->adaptor_setVariableValue_immediate(field_0x4, val); + } + + int field_0x4; + SetFunc field_0x8; + GetFunc field_0x14; }; struct TAdaptor_light : public JStudio::TAdaptor_light, public TAdaptor_object_ { typedef JStudio::TObject_light ObjectType; - enum TEVariableValue { - TE_VALUE_NONE = -1, - TE_VALUE_7 = 7, - TE_VALUE_8 = 8, - TE_VALUE_9 = 9, - TE_VALUE_10 = 10, - TE_VALUE_11 = 11, - }; enum TEDirection_ { DIRECTION_0, DIRECTION_1, @@ -315,8 +312,4 @@ inline bool transform_toGlobalFromLocal(JStudio::TControl::TTransform_position* JStage::TObject const*, u32); }; // namespace JStudio_JStage -#ifdef DEBUG -#include "JSystem/JStudio/JStudio_JStage/tvariable_value_output_object.h" -#endif - #endif /* JSTUDIO_JSTAGE_CONTROL_H */ diff --git a/include/JSystem/JStudio/JStudio_JStage/object-actor.h b/include/JSystem/JStudio/JStudio_JStage/object-actor.h index 09332fbfef..c137b5ca25 100644 --- a/include/JSystem/JStudio/JStudio_JStage/object-actor.h +++ b/include/JSystem/JStudio/JStudio_JStage/object-actor.h @@ -1,6 +1,6 @@ #ifndef OBJECT_ACTOR_H #define OBJECT_ACTOR_H -#include "JSystem/JStudio/JStudio_JStage/control.h" +#include "JSystem/JStudio/JStudio_JStage/control.h" // IWYU pragma: export #endif /* OBJECT_ACTOR_H */ diff --git a/include/JSystem/JStudio/JStudio_JStage/tvariable_value_output_object.h b/include/JSystem/JStudio/JStudio_JStage/tvariable_value_output_object.h deleted file mode 100644 index 38eabc9da5..0000000000 --- a/include/JSystem/JStudio/JStudio_JStage/tvariable_value_output_object.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef TVARIABLE_VALUE_OUTPUT_OBJECT_H -#define TVARIABLE_VALUE_OUTPUT_OBJECT_H - -#include "JSystem/JStudio/JStudio/jstudio-object.h" - -// Fake header for JStudio_JStage/control.h. Due to compiler version differences, retail needs the -// class definition of TVariableValueOutput_object_ to come before it's used, while debug needs it -// to come after it's used. The include of this header is ifdefed to support both. - -namespace JStudio_JStage { - -template<class TAdaptor, class TStageObject> -struct TVariableValueOutput_object_ : public JStudio::TVariableValue::TOutput { - typedef f32 (TStageObject::*GetFunc)() const; - typedef void (TStageObject::*SetFunc)(f32); - TVariableValueOutput_object_() : field_0x4(-1), field_0x8(NULL), field_0x14(NULL) {} - 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) { - - } - - virtual void operator()(f32 param_1, JStudio::TAdaptor* param_2) const { - (((TAdaptor*)param_2)->get_pJSG_()->*field_0x8)(param_1); - } - virtual ~TVariableValueOutput_object_() {} - - bool isEnd_() const { return field_0x4 == -1; } - void adaptor_setOutput_(TAdaptor* adaptor) { - adaptor->adaptor_referVariableValue(field_0x4)->setOutput(this); - } - void setVariableValue_(const TStageObject* pObj, TAdaptor* pAdaptor) const { - f32 val = (pObj->*field_0x14)(); - pAdaptor->adaptor_setVariableValue_immediate(field_0x4, val); - } - - int field_0x4; - SetFunc field_0x8; - GetFunc field_0x14; -}; - -}; // namespace JStudio_JStage - -#endif /* TVARIABLE_VALUE_OUTPUT_OBJECT_H */ diff --git a/include/d/actor/d_a_obj_lv6TogeRoll.h b/include/d/actor/d_a_obj_lv6TogeRoll.h index 178ca9c58e..7467157dac 100644 --- a/include/d/actor/d_a_obj_lv6TogeRoll.h +++ b/include/d/actor/d_a_obj_lv6TogeRoll.h @@ -99,6 +99,8 @@ public: /* 80C77C2C */ daTogeRoll_HIO_c(); /* 80C798D0 */ ~daTogeRoll_HIO_c() {} + void genMessage(JORMContext*); + /* 0x00 */ /* vtable */ /* 0x04 */ s8 field_0x04; |
