mirror of
https://github.com/zeldaret/tp
synced 2026-07-07 22:22:05 -04:00
jstudio particle and sound OK (#2194)
* Work on object-sound * object-particle OK * object-sound OK * JStudio_JAudio2 control OK * JStudio_JParticle control OK * JStage object OK * JStage ambient light OK
This commit is contained in:
@@ -128,10 +128,10 @@ struct JAISoundFader {
|
||||
}
|
||||
}
|
||||
void fadeIn(u32 param_1) {
|
||||
if (param_1 == 0) {
|
||||
forceIn();
|
||||
} else {
|
||||
if (param_1 != 0) {
|
||||
mTransition.set(1.0f, mIntensity, param_1);
|
||||
} else {
|
||||
forceIn();
|
||||
}
|
||||
}
|
||||
void fadeInFromOut(u32 param_1) {
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
#ifndef POINTER_H
|
||||
#define POINTER_H
|
||||
|
||||
namespace JGadget {
|
||||
|
||||
template<class T>
|
||||
class TPointer {
|
||||
public:
|
||||
TPointer(T* ptr) : mPtr(ptr) {}
|
||||
void set(T* ptr) { mPtr = ptr; }
|
||||
T* mPtr;
|
||||
};
|
||||
|
||||
template<class T>
|
||||
class TPointer_delete : public TPointer<T> {
|
||||
public:
|
||||
TPointer_delete(T* ptr) : TPointer(ptr) {}
|
||||
~TPointer_delete() {
|
||||
delete mPtr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -67,12 +67,13 @@ struct JPAEmitterWorkData {
|
||||
*/
|
||||
class JPAEmitterCallBack {
|
||||
public:
|
||||
virtual ~JPAEmitterCallBack() = 0;
|
||||
/* 80050368 */ virtual void execute(JPABaseEmitter*);
|
||||
/* 80050374 */ virtual void executeAfter(JPABaseEmitter*);
|
||||
/* 8005036C */ virtual void draw(JPABaseEmitter*);
|
||||
/* 80050370 */ virtual void drawAfter(JPABaseEmitter*);
|
||||
|
||||
/* 8027E6A4 */ ~JPAEmitterCallBack();
|
||||
/* 8027E6A4 */ //~JPAEmitterCallBack();
|
||||
};
|
||||
|
||||
enum {
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace JStage {
|
||||
virtual s32 JSGFGetType() const = 0;
|
||||
/* 80280E1C */ virtual bool JSGGetName() const;
|
||||
/* 80280E24 */ virtual void JSGUpdate();
|
||||
/* 80280E28 */ virtual bool JSGGetFlag() const;
|
||||
/* 80280E28 */ virtual u32 JSGGetFlag() const;
|
||||
/* 80280E30 */ virtual void JSGSetFlag(u32);
|
||||
/* 80280E34 */ virtual bool JSGGetData(u32, void*, u32) const;
|
||||
/* 80280E3C */ virtual void JSGSetData(u32, void const*, u32);
|
||||
@@ -22,7 +22,15 @@ namespace JStage {
|
||||
/* 80280E44 */ virtual void JSGSetParent(JStage::TObject*, u32);
|
||||
/* 80280E48 */ virtual void JSGSetRelation(bool, JStage::TObject*, u32);
|
||||
/* 80280E4C */ virtual s32 JSGFindNodeID(char const*) const;
|
||||
/* 80280E54 */ virtual int JSGGetNodeTransformation(u32, f32 (*)[4]) const;
|
||||
/* 80280E54 */ virtual bool JSGGetNodeTransformation(u32, f32 (*)[4]) const;
|
||||
|
||||
void JSGFEnableFlag(u32 flag) {
|
||||
JSGSetFlag(JSGGetFlag() | flag);
|
||||
}
|
||||
|
||||
void JSGFDisableFlag(u32 flag) {
|
||||
JSGSetFlag(JSGGetFlag() & ~flag);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace JStage {
|
||||
struct TSystem : public TObject {
|
||||
/* 80280E90 */ virtual ~TSystem() = 0;
|
||||
/* 80280EF0 */ virtual s32 JSGFGetType() const;
|
||||
/* 80280EF8 */ virtual bool JSGFindObject(JStage::TObject**, char const*, JStage::TEObject) const;
|
||||
/* 80280EF8 */ virtual int JSGFindObject(JStage::TObject**, char const*, JStage::TEObject) const;
|
||||
/* 80280F00 */ virtual bool JSGCreateObject(char const*, JStage::TEObject, u32);
|
||||
/* 80280F08 */ virtual void JSGDestroyObject(JStage::TObject*);
|
||||
/* 80280F0C */ virtual bool JSGGetSystemData(u32);
|
||||
|
||||
@@ -13,6 +13,16 @@ struct TCreateObject {
|
||||
/* 80285488 */ virtual ~TCreateObject() = 0;
|
||||
virtual bool create(TObject**, JStudio::stb::data::TParse_TBlock_object const&) = 0;
|
||||
|
||||
template<class AdaptorT>
|
||||
static typename AdaptorT::ObjectType* createFromAdaptor(JStudio::stb::data::TParse_TBlock_object const& param_1, AdaptorT* param_2) {
|
||||
typename AdaptorT::ObjectType* rv = new typename AdaptorT::ObjectType(param_1, param_2);
|
||||
if (rv == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
rv->prepareAdaptor();
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* 0x4 */ JGadget::TLinkListNode mNode;
|
||||
}; // Size: 0xC
|
||||
|
||||
@@ -31,8 +41,12 @@ struct TFactory : public stb::TFactory {
|
||||
|
||||
class TControl : public stb::TControl {
|
||||
public:
|
||||
struct TTransform_translation_rotation_scaling {};
|
||||
struct TTransform_position {};
|
||||
struct TTransform_translation_rotation_scaling {
|
||||
Vec translation;
|
||||
Vec rotation;
|
||||
Vec scaling;
|
||||
};
|
||||
struct TTransform_position : public Vec {};
|
||||
|
||||
/* 80285114 */ TControl();
|
||||
/* 802851AC */ virtual ~TControl();
|
||||
@@ -100,6 +114,59 @@ public:
|
||||
return obj->referFunctionValue();
|
||||
}
|
||||
|
||||
bool transformOnSet_isEnabled() const { return mTransformOnSet; }
|
||||
CMtxP transformOnSet_getMatrix() const { return mTransformOnSet_Matrix; }
|
||||
|
||||
void transformOnSet_transformTranslation(const Vec& rSrc, Vec* pDst) const {
|
||||
JUT_ASSERT(226, pDst!=0);
|
||||
JUT_ASSERT(227, &rSrc!=pDst);
|
||||
MTXMultVec(transformOnSet_getMatrix(), &rSrc, pDst);
|
||||
}
|
||||
|
||||
void transformOnSet_transformRotation(const Vec& rSrc, Vec* pDst) const {
|
||||
JUT_ASSERT(232, pDst!=0);
|
||||
JUT_ASSERT(233, &rSrc!=pDst);
|
||||
pDst->x = rSrc.x;
|
||||
pDst->y = rSrc.y + mTransformOnSet_RotationY;
|
||||
pDst->z = rSrc.z;
|
||||
}
|
||||
|
||||
void transformOnSet_transformScaling(const Vec& rSrc, Vec* pDst) const {
|
||||
JUT_ASSERT(240, pDst!=0);
|
||||
JUT_ASSERT(241, &rSrc!=pDst);
|
||||
*pDst = rSrc;
|
||||
}
|
||||
|
||||
void transformOnSet_transform(TTransform_position* param_1, TTransform_position* param_2) const {
|
||||
transformOnSet_transformTranslation(*param_1, param_2);
|
||||
}
|
||||
|
||||
void transformOnSet_transform(TTransform_translation_rotation_scaling* param_1,
|
||||
TTransform_translation_rotation_scaling* param_2) const {
|
||||
transformOnSet_transformTranslation(param_1->translation, ¶m_2->translation);
|
||||
transformOnSet_transformRotation(param_1->rotation, ¶m_2->rotation);
|
||||
transformOnSet_transformScaling(param_1->scaling, ¶m_2->scaling);
|
||||
}
|
||||
|
||||
TTransform_position* transformOnSet_transform_ifEnabled(TTransform_position* param_1,
|
||||
TTransform_position* param_2) const {
|
||||
if (!transformOnSet_isEnabled()) {
|
||||
return param_1;
|
||||
}
|
||||
transformOnSet_transform(param_1, param_2);
|
||||
return param_2;
|
||||
}
|
||||
|
||||
TTransform_translation_rotation_scaling*
|
||||
transformOnSet_transform_ifEnabled(TTransform_translation_rotation_scaling* param_1,
|
||||
TTransform_translation_rotation_scaling* param_2) const {
|
||||
if (!transformOnSet_isEnabled()) {
|
||||
return param_1;
|
||||
}
|
||||
transformOnSet_transform(param_1, param_2);
|
||||
return param_2;
|
||||
}
|
||||
|
||||
/* 0x58 */ f64 mSecondPerFrame;
|
||||
/* 0x60 */ fvb::TControl fvb_Control;
|
||||
/* 0x74 */ ctb::TControl ctb_Control;
|
||||
|
||||
@@ -55,6 +55,10 @@ namespace math {
|
||||
param_2->y = param_1[1][3];
|
||||
param_2->z = param_1[2][3];
|
||||
}
|
||||
|
||||
inline void getTransformation_T(Mtx mtx, const Vec* param_2) {
|
||||
MTXTrans(mtx, param_2->x, param_2->y, param_2->z);
|
||||
}
|
||||
};
|
||||
}; // namespace JStudio
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "JSystem/JStudio/JStudio/jstudio-control.h"
|
||||
#include "limits.h"
|
||||
#include "math.h"
|
||||
|
||||
typedef struct _GXColor GXColor;
|
||||
|
||||
@@ -14,6 +15,7 @@ namespace data {
|
||||
UNK_0x3 = 0x3,
|
||||
UNK_0x10 = 0x10,
|
||||
UNK_0x12 = 0x12,
|
||||
UNK_0x18 = 0x18,
|
||||
UNK_0x19 = 0x19,
|
||||
};
|
||||
};
|
||||
@@ -80,6 +82,10 @@ struct TVariableValue {
|
||||
}
|
||||
}
|
||||
|
||||
void setOutput(TOutput* param_1) {
|
||||
pOutput_ = (param_1 != NULL) ? param_1 : (TOutput*)soOutput_none_;
|
||||
}
|
||||
|
||||
static u8 soOutput_none_[4 + 4 /* padding */];
|
||||
|
||||
/* 0x00 */ f32 mValue;
|
||||
@@ -107,14 +113,9 @@ public:
|
||||
/* 8028682C */ virtual void do_data(void const*, u32, void const*, u32);
|
||||
|
||||
TAdaptor* getAdaptor() { return mpAdaptor; }
|
||||
TControl* getControl() { return (TControl*)stb::TObject::getControl(); }
|
||||
TControl* getControl() const { return (TControl*)stb::TObject::getControl(); }
|
||||
|
||||
void prepareAdaptor() {
|
||||
if (mpAdaptor != NULL) {
|
||||
// mpAdaptor->adaptor_setObject_(this);
|
||||
// mpAdaptor->adaptor_do_begin();
|
||||
}
|
||||
}
|
||||
inline void prepareAdaptor();
|
||||
|
||||
template<class T>
|
||||
T* createFromAdaptor(const stb::data::TParse_TBlock_object& param_0, T* param_1) {
|
||||
@@ -134,10 +135,18 @@ public:
|
||||
|
||||
struct TAdaptor {
|
||||
struct TSetVariableValue_immediate {
|
||||
TSetVariableValue_immediate() : field_0x0(-1), field_0x4(NAN) {}
|
||||
TSetVariableValue_immediate(u32 param_1, f32 param_2) :
|
||||
field_0x0(param_1), field_0x4(param_2) {}
|
||||
u32 field_0x0;
|
||||
f32 field_0x4;
|
||||
};
|
||||
typedef void (*setVarFunc)(JStudio::TAdaptor*, JStudio::TControl*, u32, void const*, u32);
|
||||
TAdaptor(TVariableValue *param_1, u32 param_2) {
|
||||
pObject_ = NULL;
|
||||
pValue_ = param_1;
|
||||
u = param_2;
|
||||
}
|
||||
/* 80285FD0 */ virtual ~TAdaptor() = 0;
|
||||
/* 80286018 */ virtual void adaptor_do_prepare();
|
||||
/* 8028601C */ virtual void adaptor_do_begin();
|
||||
@@ -184,19 +193,29 @@ struct TAdaptor {
|
||||
return &pValue_[param_0];
|
||||
}
|
||||
|
||||
const TObject* adaptor_getObject() { return pObject_; }
|
||||
|
||||
/* 0x4 */ const TObject* pObject_;
|
||||
/* 0x8 */ TVariableValue* pValue_;
|
||||
/* 0xC */ u32 u;
|
||||
};
|
||||
|
||||
inline void TObject::prepareAdaptor() {
|
||||
if (mpAdaptor != NULL) {
|
||||
mpAdaptor->adaptor_setObject_(this);
|
||||
mpAdaptor->adaptor_do_prepare();
|
||||
}
|
||||
}
|
||||
|
||||
struct TAdaptor_actor : public TAdaptor {
|
||||
TAdaptor_actor() : TAdaptor(mValue, 14) {}
|
||||
/* 802868B0 */ virtual ~TAdaptor_actor() = 0;
|
||||
|
||||
/* 0x10 */ TVariableValue mValue[14];
|
||||
|
||||
static u8 const sauVariableValue_3_TRANSLATION_XYZ[12];
|
||||
static u8 const sauVariableValue_3_ROTATION_XYZ[12];
|
||||
static u8 const sauVariableValue_3_SCALING_XYZ[12];
|
||||
static u32 const sauVariableValue_3_TRANSLATION_XYZ[3];
|
||||
static u32 const sauVariableValue_3_ROTATION_XYZ[3];
|
||||
static u32 const sauVariableValue_3_SCALING_XYZ[3];
|
||||
}; // Size: 0x128
|
||||
|
||||
struct TObject_actor : public TObject {
|
||||
@@ -208,12 +227,13 @@ struct TObject_actor : public TObject {
|
||||
};
|
||||
|
||||
struct TAdaptor_ambientLight : public TAdaptor {
|
||||
TAdaptor_ambientLight() : TAdaptor(mValue, 4) {}
|
||||
/* 80286C9C */ virtual ~TAdaptor_ambientLight() = 0;
|
||||
|
||||
/* 0x10 */ TVariableValue mValue[4];
|
||||
|
||||
static u8 const sauVariableValue_3_COLOR_RGB[12];
|
||||
static u8 const sauVariableValue_4_COLOR_RGBA[16];
|
||||
static u32 const sauVariableValue_3_COLOR_RGB[3];
|
||||
static u32 const sauVariableValue_4_COLOR_RGBA[4];
|
||||
};
|
||||
|
||||
struct TObject_ambientLight : public TObject {
|
||||
@@ -225,13 +245,14 @@ struct TObject_ambientLight : public TObject {
|
||||
};
|
||||
|
||||
struct TAdaptor_camera : public TAdaptor {
|
||||
TAdaptor_camera() : TAdaptor(mValue, 12) {}
|
||||
/* 80286E1C */ virtual ~TAdaptor_camera() = 0;
|
||||
|
||||
/* 0x10 */ TVariableValue mValue[12];
|
||||
|
||||
static u8 const sauVariableValue_3_POSITION_XYZ[12];
|
||||
static u8 const sauVariableValue_3_TARGET_POSITION_XYZ[12];
|
||||
static u8 sauVariableValue_2_DISTANCE_NEAR_FAR[8];
|
||||
static u32 const sauVariableValue_3_POSITION_XYZ[3];
|
||||
static u32 const sauVariableValue_3_TARGET_POSITION_XYZ[3];
|
||||
static u32 sauVariableValue_2_DISTANCE_NEAR_FAR[2];
|
||||
};
|
||||
|
||||
struct TObject_camera : public TObject {
|
||||
@@ -243,13 +264,14 @@ struct TObject_camera : public TObject {
|
||||
};
|
||||
|
||||
struct TAdaptor_fog : public TAdaptor {
|
||||
TAdaptor_fog() : TAdaptor(mValue, 6) {}
|
||||
/* 8028717C */ virtual ~TAdaptor_fog() = 0;
|
||||
|
||||
/* 0x10 */ TVariableValue mValue[6];
|
||||
|
||||
static u8 const sauVariableValue_3_COLOR_RGB[12];
|
||||
static u8 const sauVariableValue_4_COLOR_RGBA[16];
|
||||
static u8 sauVariableValue_2_RANGE_BEGIN_END[8];
|
||||
static u32 const sauVariableValue_3_COLOR_RGB[3];
|
||||
static u32 const sauVariableValue_4_COLOR_RGBA[4];
|
||||
static u32 sauVariableValue_2_RANGE_BEGIN_END[2];
|
||||
};
|
||||
|
||||
struct TObject_fog : public TObject {
|
||||
@@ -261,15 +283,16 @@ struct TObject_fog : public TObject {
|
||||
};
|
||||
|
||||
struct TAdaptor_light : public TAdaptor {
|
||||
TAdaptor_light() : TAdaptor(mValue, 13) {}
|
||||
/* 80287308 */ virtual ~TAdaptor_light() = 0;
|
||||
|
||||
/* 0x10 */ TVariableValue mValue[13];
|
||||
|
||||
static u8 const sauVariableValue_3_COLOR_RGB[12];
|
||||
static u8 const sauVariableValue_4_COLOR_RGBA[16];
|
||||
static u8 const sauVariableValue_3_POSITION_XYZ[12];
|
||||
static u8 const sauVariableValue_3_TARGET_POSITION_XYZ[12];
|
||||
static u8 sauVariableValue_2_DIRECTION_THETA_PHI[8];
|
||||
static u32 const sauVariableValue_3_COLOR_RGB[3];
|
||||
static u32 const sauVariableValue_4_COLOR_RGBA[4];
|
||||
static u32 const sauVariableValue_3_POSITION_XYZ[3];
|
||||
static u32 const sauVariableValue_3_TARGET_POSITION_XYZ[3];
|
||||
static u32 sauVariableValue_2_DIRECTION_THETA_PHI[2];
|
||||
};
|
||||
|
||||
struct TObject_light : public TObject {
|
||||
@@ -281,6 +304,7 @@ struct TObject_light : public TObject {
|
||||
};
|
||||
|
||||
struct TAdaptor_message : public TAdaptor {
|
||||
TAdaptor_message() : TAdaptor(NULL, 0) {}
|
||||
/* 802875E0 */ virtual ~TAdaptor_message() = 0;
|
||||
};
|
||||
|
||||
@@ -293,17 +317,18 @@ struct TObject_message : public TObject {
|
||||
};
|
||||
|
||||
struct TAdaptor_particle : public TAdaptor {
|
||||
TAdaptor_particle() : TAdaptor(mValue, 20) {}
|
||||
/* 8028770C */ virtual ~TAdaptor_particle() = 0;
|
||||
|
||||
/* 0x10 */ TVariableValue mValue[20];
|
||||
|
||||
static u8 const sauVariableValue_3_TRANSLATION_XYZ[12];
|
||||
static u8 const sauVariableValue_3_ROTATION_XYZ[12];
|
||||
static u8 const sauVariableValue_3_SCALING_XYZ[12];
|
||||
static u8 const sauVariableValue_3_COLOR_RGB[12];
|
||||
static u8 const sauVariableValue_4_COLOR_RGBA[16];
|
||||
static u8 const sauVariableValue_3_COLOR1_RGB[12];
|
||||
static u8 const sauVariableValue_4_COLOR1_RGBA[16];
|
||||
static u32 const sauVariableValue_3_TRANSLATION_XYZ[3];
|
||||
static u32 const sauVariableValue_3_ROTATION_XYZ[3];
|
||||
static u32 const sauVariableValue_3_SCALING_XYZ[3];
|
||||
static u32 const sauVariableValue_3_COLOR_RGB[3];
|
||||
static u32 const sauVariableValue_4_COLOR_RGBA[4];
|
||||
static u32 const sauVariableValue_3_COLOR1_RGB[3];
|
||||
static u32 const sauVariableValue_4_COLOR1_RGBA[4];
|
||||
};
|
||||
|
||||
struct TObject_particle : public TObject {
|
||||
@@ -315,11 +340,12 @@ struct TObject_particle : public TObject {
|
||||
};
|
||||
|
||||
struct TAdaptor_sound : public TAdaptor {
|
||||
TAdaptor_sound() : TAdaptor(mValue, 13) {}
|
||||
/* 80287B3C */ virtual ~TAdaptor_sound() = 0;
|
||||
|
||||
/* 0x10 */ TVariableValue mValue[13];
|
||||
|
||||
static u8 const sauVariableValue_3_POSITION_XYZ[12];
|
||||
static u32 const sauVariableValue_3_POSITION_XYZ[3];
|
||||
}; // Size: 0x114
|
||||
|
||||
struct TObject_sound : public TObject {
|
||||
|
||||
@@ -11,7 +11,7 @@ struct TIDData {
|
||||
public:
|
||||
TIDData(const void* id, u32 id_size) : mID(id), mID_size(id_size) {}
|
||||
|
||||
/* 80288988 */ bool isEqual(JStudio::object::TIDData const&, JStudio::object::TIDData const&);
|
||||
/* 80288988 */ static bool isEqual(JStudio::object::TIDData const&, JStudio::object::TIDData const&);
|
||||
inline const void* getID() const { return mID; }
|
||||
inline u32 getIDSize() const { return mID_size; }
|
||||
|
||||
|
||||
@@ -90,6 +90,7 @@ public:
|
||||
|
||||
u16 get_flag() const { return get()->flag; }
|
||||
u16 get_IDSize() const { return get()->id_size; }
|
||||
u32 get_type() const { return get()->type; }
|
||||
const void* get_ID() const { return get()->id; }
|
||||
};
|
||||
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
|
||||
namespace JStudio_JAudio2 {
|
||||
struct TCreateObject : public JStudio::TCreateObject {
|
||||
typedef JStudio::TObject* (*CreateFunc)(JStudio::stb::data::TParse_TBlock_object const&,
|
||||
JStudio_JAudio2::TCreateObject*);
|
||||
|
||||
TCreateObject(JAISoundStarter* p_soundStarter, const JStage::TSystem* p_system) {
|
||||
pJAISoundStarter_ = p_soundStarter;
|
||||
pJSGSystem_ = p_system;
|
||||
@@ -17,8 +20,12 @@ struct TCreateObject : public JStudio::TCreateObject {
|
||||
/* 8028D550 */ virtual ~TCreateObject();
|
||||
/* 8028D5B0 */ virtual bool create(JStudio::TObject**,
|
||||
JStudio::stb::data::TParse_TBlock_object const&);
|
||||
/* 8028D624 */ void createObject_JAI_SOUND_(JStudio::stb::data::TParse_TBlock_object const&,
|
||||
JStudio_JAudio2::TCreateObject*);
|
||||
/* 8028D624 */ static JStudio::TObject*
|
||||
createObject_JAI_SOUND_(JStudio::stb::data::TParse_TBlock_object const&,
|
||||
JStudio_JAudio2::TCreateObject*);
|
||||
JAISoundStarter* get_pJAISoundStarter_() { return pJAISoundStarter_; }
|
||||
const JStage::TSystem* get_pJSGSystem_() { return pJSGSystem_; }
|
||||
bool isPermit_onExit_notEnd() { return mPermit_onExit_notEnd; }
|
||||
|
||||
/* 0x0C */ JAISoundStarter* pJAISoundStarter_;
|
||||
/* 0x10 */ const JStage::TSystem* pJSGSystem_;
|
||||
@@ -26,9 +33,26 @@ struct TCreateObject : public JStudio::TCreateObject {
|
||||
};
|
||||
|
||||
struct TAdaptor_sound : public JStudio::TAdaptor_sound {
|
||||
struct TVVOSetValue_ {
|
||||
/* 8028DECC */ void operator()(f32, JStudio::TAdaptor*) const;
|
||||
/* 8028E094 */ ~TVVOSetValue_();
|
||||
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) {}
|
||||
/* 8028DECC */ virtual void operator()(f32, JStudio::TAdaptor*) const;
|
||||
/* 8028E094 */ virtual ~TVVOSetValue_() {}
|
||||
|
||||
/* 0x04 */ TEVariableValue field_0x04;
|
||||
/* 0x08 */ TVVOSoundSetFunc field_0x08;
|
||||
};
|
||||
|
||||
/* 8028D828 */ TAdaptor_sound(JStudio_JAudio2::TCreateObject*);
|
||||
@@ -58,20 +82,43 @@ struct TAdaptor_sound : public JStudio::TAdaptor_sound {
|
||||
/* 8028DEB0 */ virtual void adaptor_do_ON_EXIT_NOT_END(JStudio::data::TEOperationData, void const*,
|
||||
u32);
|
||||
|
||||
void beginSound_fadeIn_(u32 param_1) {
|
||||
field_0x128 = param_1;
|
||||
beginSound_fadeIn_();
|
||||
}
|
||||
|
||||
void beginSound_() {
|
||||
beginSound_fadeIn_(0);
|
||||
}
|
||||
|
||||
void endSound_() {
|
||||
endSound_fadeOut_(0);
|
||||
}
|
||||
|
||||
void opJAISoundHandle_stop_() {
|
||||
opJAISoundHandle_->stop();
|
||||
}
|
||||
|
||||
void set_bPermit_onExit_notEnd_(bool param_1) { field_0x11c = param_1; }
|
||||
|
||||
#ifndef NONMATCHING
|
||||
static TVVOSetValue_ saoVVOSetValue_[6];
|
||||
#else
|
||||
static u8 saoVVOSetValue_[72];
|
||||
#endif
|
||||
|
||||
/* 0x114 */ TCreateObject* pCreateObject_;
|
||||
/* 0x118 */ JAISoundHandle opJAISoundHandle_;
|
||||
/* 0x11C */ u8 field_0x11c;
|
||||
/* 0x11C */ bool field_0x11c;
|
||||
/* 0x11D */ u8 field_0x11d;
|
||||
/* 0x11E */ u8 field_0x11e;
|
||||
/* 0x11F */ u8 field_0x11f;
|
||||
/* 0x120 */ u8 field_0x120;
|
||||
/* 0x124 */ u32 field_0x124;
|
||||
/* 0x128 */ u32 field_0x128;
|
||||
/* 0x12C */ u32 field_0x12c;
|
||||
/* 0x12C */ JGeometry::TVec3<f32>* field_0x12c;
|
||||
/* 0x130 */ JGeometry::TVec3<f32> field_0x130;
|
||||
/* 0x13C */ u32 field_0x13c;
|
||||
/* 0x13C */ JStage::TObject* field_0x13c;
|
||||
/* 0x140 */ u32 field_0x140;
|
||||
/* 0x144 */ u8 field_0x144;
|
||||
};
|
||||
|
||||
@@ -2,11 +2,14 @@
|
||||
#define JSTUDIO_JPARTICLE_CONTROL_H
|
||||
|
||||
#include "JSystem/JParticle/JPAParticle.h"
|
||||
#include "JSystem/JParticle/JPAEmitter.h"
|
||||
#include "JSystem/JStage/JSGSystem.h"
|
||||
#include "JSystem/JStudio/JStudio/jstudio-object.h"
|
||||
|
||||
namespace JStudio_JParticle {
|
||||
struct TCreateObject : public JStudio::TCreateObject {
|
||||
typedef JStudio::TObject* (*CreateFunc)(JStudio::stb::data::TParse_TBlock_object const&,
|
||||
JStudio_JParticle::TCreateObject*);
|
||||
TCreateObject(JPAEmitterManager* p_emitMgr, const JStage::TSystem* p_system) {
|
||||
pJPAEmitterManager_ = p_emitMgr;
|
||||
pJSGSystem_ = p_system;
|
||||
@@ -16,24 +19,52 @@ struct TCreateObject : public JStudio::TCreateObject {
|
||||
/* 8028E3A0 */ virtual ~TCreateObject();
|
||||
/* 8028E400 */ virtual bool create(JStudio::TObject**,
|
||||
JStudio::stb::data::TParse_TBlock_object const&);
|
||||
/* 8028E474 */ virtual void emitter_create(u32);
|
||||
/* 8028E474 */ virtual JPABaseEmitter* emitter_create(u32);
|
||||
/* 8028E4E4 */ virtual void emitter_destroy(JPABaseEmitter*);
|
||||
|
||||
/* 8028E508 */ void createObject_JPA_PARTICLE_(JStudio::stb::data::TParse_TBlock_object const&,
|
||||
JStudio_JParticle::TCreateObject*);
|
||||
/* 8028E508 */ static JStudio::TObject*
|
||||
createObject_JPA_PARTICLE_(JStudio::stb::data::TParse_TBlock_object const&,
|
||||
JStudio_JParticle::TCreateObject*);
|
||||
|
||||
const JStage::TSystem* get_pJSGSystem_() { return pJSGSystem_; }
|
||||
bool isPermit_onExit_notEnd() { return mPermit_onExit_notEnd; }
|
||||
|
||||
/* 0x0C */ JPAEmitterManager* pJPAEmitterManager_;
|
||||
/* 0x10 */ const JStage::TSystem* pJSGSystem_;
|
||||
/* 0x14 */ bool mPermit_onExit_notEnd;
|
||||
};
|
||||
|
||||
struct TAdaptor_particle : public JStudio::TAdaptor_particle {
|
||||
struct TJPACallback_emitter_ {
|
||||
/* 8028E700 */ ~TJPACallback_emitter_();
|
||||
/* 8028ECC0 */ void execute(JPABaseEmitter*);
|
||||
/* 8028F060 */ void executeAfter(JPABaseEmitter*);
|
||||
/* 8028F098 */ void draw(JPABaseEmitter*);
|
||||
/* 8028F0D0 */ void drawAfter(JPABaseEmitter*);
|
||||
typedef JStudio::TObject_particle ObjectType;
|
||||
|
||||
struct TJPACallback_emitter_ : public JPAEmitterCallBack {
|
||||
TJPACallback_emitter_(TAdaptor_particle* param_1) {
|
||||
pThis_ = param_1;
|
||||
pOld = NULL;
|
||||
JUT_ASSERT(113, pThis_!=0);
|
||||
}
|
||||
/* 8028E700 */ virtual ~TJPACallback_emitter_() {}
|
||||
/* 8028ECC0 */ virtual void execute(JPABaseEmitter*);
|
||||
/* 8028F060 */ virtual void executeAfter(JPABaseEmitter*);
|
||||
/* 8028F098 */ virtual void draw(JPABaseEmitter*);
|
||||
/* 8028F0D0 */ virtual void drawAfter(JPABaseEmitter*);
|
||||
|
||||
JPAEmitterCallBack* getOld() { return pOld; }
|
||||
void setOld(JPAEmitterCallBack* cb) { pOld = cb; }
|
||||
|
||||
/* 0x4 */ TAdaptor_particle* pThis_;
|
||||
/* 0x8 */ JPAEmitterCallBack* pOld;
|
||||
};
|
||||
|
||||
struct TJPAEmitter_stopDrawParticle_ {
|
||||
TJPAEmitter_stopDrawParticle_(JPABaseEmitter* emitter) : pJPAEmitter_(emitter) {}
|
||||
~TJPAEmitter_stopDrawParticle_() {
|
||||
if (pJPAEmitter_ != NULL) {
|
||||
pJPAEmitter_->stopDrawParticle();
|
||||
}
|
||||
}
|
||||
void set(JPABaseEmitter* emitter) { pJPAEmitter_ = emitter; }
|
||||
/* 0x0 */ JPABaseEmitter* pJPAEmitter_;
|
||||
};
|
||||
|
||||
/* 8028E60C */ TAdaptor_particle(JStudio_JParticle::TCreateObject*);
|
||||
@@ -61,6 +92,48 @@ struct TAdaptor_particle : public JStudio::TAdaptor_particle {
|
||||
/* 8028EC88 */ virtual void adaptor_do_REPEAT(JStudio::data::TEOperationData, void const*, u32);
|
||||
/* 8028ECA4 */ virtual void adaptor_do_ON_EXIT_NOT_END(JStudio::data::TEOperationData, void const*,
|
||||
u32);
|
||||
|
||||
static bool state_isFade_(u8 param_1) {
|
||||
return param_1 == 1 || param_1 == 3;
|
||||
}
|
||||
|
||||
bool state_isFade_() {
|
||||
return state_isFade_(field_0x1b8);
|
||||
}
|
||||
|
||||
void beginParticle_fadeIn_(u32 param_1) {
|
||||
field_0x1c8 = param_1;
|
||||
beginParticle_fadeIn_();
|
||||
}
|
||||
|
||||
void beginParticle_() {
|
||||
beginParticle_fadeIn_(0);
|
||||
}
|
||||
|
||||
void endParticle_() {
|
||||
if (pJPAEmitter_ != NULL) {
|
||||
pJPAEmitter_->becomeInvalidEmitter();
|
||||
}
|
||||
}
|
||||
|
||||
void set_bPermit_onExit_notEnd_(bool param_1) { field_0x1b4 = param_1; }
|
||||
|
||||
/* 0x1A0 */ TCreateObject* pCreateObject_;
|
||||
/* 0x1A4 */ JPABaseEmitter* pJPAEmitter_;
|
||||
/* 0x1A8 */ TJPACallback_emitter_ field_0x1a8;
|
||||
/* 0x1B4 */ u8 field_0x1b4;
|
||||
/* 0x1B5 */ u8 field_0x1b5;
|
||||
/* 0x1B6 */ u8 field_0x1b6;
|
||||
/* 0x1B7 */ u8 field_0x1b7;
|
||||
/* 0x1B8 */ u8 field_0x1b8;
|
||||
/* 0x1BC */ u32 field_0x1bc;
|
||||
/* 0x1C0 */ u32 u32FadeTime_end;
|
||||
/* 0x1C4 */ u32 field_0x1c4;
|
||||
/* 0x1C8 */ u32 field_0x1c8;
|
||||
/* 0x1CC */ u32 field_0x1cc;
|
||||
/* 0x1D0 */ JStage::TObject* field_0x1d0;
|
||||
/* 0x1D4 */ u32 field_0x1d4;
|
||||
/* 0x1D8 */ u8 field_0x1d8;
|
||||
};
|
||||
|
||||
}; // namespace JStudio_JParticle
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "JSystem/JStage/JSGLight.h"
|
||||
#include "JSystem/JStage/JSGSystem.h"
|
||||
#include "JSystem/JStudio/JStudio/jstudio-object.h"
|
||||
#include "JSystem/JStudio/JStudio/jstudio-math.h"
|
||||
|
||||
namespace JStudio_JStage {
|
||||
struct TCreateObject : public JStudio::TCreateObject {
|
||||
@@ -23,14 +24,18 @@ struct TCreateObject : public JStudio::TCreateObject {
|
||||
};
|
||||
|
||||
struct TAdaptor_object_ {
|
||||
TAdaptor_object_(JStage::TSystem const*param_2, JStage::TObject *param_3) :
|
||||
pJSGSystem_(param_2), pJSGObject_(param_3) {}
|
||||
/* 8028A470 */ void adaptor_object_data_(void const*, u32, void const*, u32);
|
||||
/* 8028A4BC */ void adaptor_object_findJSGObject_(char const*);
|
||||
/* 8028A50C */ void adaptor_object_findJSGObjectNode_(JStage::TObject const*, char const*);
|
||||
/* 8028A4BC */ JStage::TObject* adaptor_object_findJSGObject_(char const*);
|
||||
/* 8028A50C */ s32 adaptor_object_findJSGObjectNode_(JStage::TObject const*, char const*);
|
||||
/* 8028A550 */ void adaptor_object_ENABLE_(JStudio::data::TEOperationData, void const*, u32);
|
||||
|
||||
/* 0x0 */ JStudio::TAdaptor* field_0x0;
|
||||
/* 0x4 */ JStage::TSystem* pJSGSystem_;
|
||||
/* 0x8 */ JStage::TObject* pJSGObject_;
|
||||
void adaptor_object_begin_() { pJSGObject_->JSGFEnableFlag(1); }
|
||||
void adaptor_object_end_() { pJSGObject_->JSGFDisableFlag(1); }
|
||||
|
||||
/* 0x0 */ JStage::TSystem const* pJSGSystem_;
|
||||
/* 0x4 */ JStage::TObject* pJSGObject_;
|
||||
};
|
||||
|
||||
struct TAdaptor_actor : public JStudio::TAdaptor_actor, public JStudio_JStage::TAdaptor_object_ {
|
||||
@@ -86,7 +91,7 @@ struct TAdaptor_actor : public JStudio::TAdaptor_actor, public JStudio_JStage::T
|
||||
/* 0x150 */ u32 field_0x150;
|
||||
};
|
||||
|
||||
struct TAdaptor_ambientLight : public JStudio::TAdaptor_ambientLight {
|
||||
struct TAdaptor_ambientLight : public JStudio::TAdaptor_ambientLight, public TAdaptor_object_ {
|
||||
/* 8028B610 */ TAdaptor_ambientLight(JStage::TSystem const*, JStage::TAmbientLight*);
|
||||
|
||||
/* 8028B6AC */ virtual ~TAdaptor_ambientLight();
|
||||
@@ -95,6 +100,8 @@ struct TAdaptor_ambientLight : public JStudio::TAdaptor_ambientLight {
|
||||
/* 8028B7B0 */ virtual void adaptor_do_end();
|
||||
/* 8028B804 */ virtual void adaptor_do_update(u32);
|
||||
/* 8028B87C */ virtual void adaptor_do_data(void const*, u32, void const*, u32);
|
||||
|
||||
JStage::TObject* get_pJSG_() { return pJSGObject_; }
|
||||
};
|
||||
|
||||
struct TAdaptor_camera : public JStudio::TAdaptor_camera {
|
||||
@@ -155,18 +162,30 @@ struct TAdaptor_light : public JStudio::TAdaptor_light {
|
||||
static u8 saoVVOutput_direction_[72];
|
||||
};
|
||||
|
||||
/* 8028A1F8 */ void
|
||||
/* 8028A1F8 */ bool
|
||||
transform_toGlobalFromLocal(f32 (*)[4],
|
||||
JStudio::TControl::TTransform_translation_rotation_scaling const&,
|
||||
JStage::TObject const*, u32);
|
||||
/* 8028A290 */ void transform_toGlobalFromLocal(f32 (*)[4],
|
||||
/* 8028A290 */ bool transform_toGlobalFromLocal(f32 (*)[4],
|
||||
JStudio::TControl::TTransform_position const&,
|
||||
JStage::TObject const*, u32);
|
||||
/* 8028A328 */ void
|
||||
|
||||
inline bool transform_toGlobalFromLocal(JStudio::TControl::TTransform_position* param_1,
|
||||
JStudio::TControl::TTransform_position const& param_2,
|
||||
JStage::TObject const* param_3, u32 param_4) {
|
||||
Mtx afStack_38;
|
||||
|
||||
if (!transform_toGlobalFromLocal(afStack_38, param_2, param_3, param_4)) {
|
||||
return false;
|
||||
}
|
||||
JStudio::math::getFromTransformation_T(afStack_38, param_1);
|
||||
return true;
|
||||
}
|
||||
/* 8028A328 */ bool
|
||||
transform_toLocalFromGlobal(f32 (*)[4],
|
||||
JStudio::TControl::TTransform_translation_rotation_scaling const&,
|
||||
JStage::TObject const*, u32);
|
||||
/* 8028A3CC */ void transform_toLocalFromGlobal(f32 (*)[4],
|
||||
/* 8028A3CC */ bool transform_toLocalFromGlobal(f32 (*)[4],
|
||||
JStudio::TControl::TTransform_position const&,
|
||||
JStage::TObject const*, u32);
|
||||
}; // namespace JStudio_JStage
|
||||
|
||||
+1
-1
@@ -58,7 +58,7 @@ public:
|
||||
/* 80038098 */ virtual ~dDemo_actor_c();
|
||||
/* 800387EC */ virtual void JSGSetData(u32, void const*, u32);
|
||||
/* 8003A05C */ virtual s32 JSGFindNodeID(char const*) const;
|
||||
/* 8003A088 */ virtual int JSGGetNodeTransformation(u32, f32 (*)[4]) const;
|
||||
/* 8003A088 */ virtual bool JSGGetNodeTransformation(u32, f32 (*)[4]) const;
|
||||
/* 8003A0D8 */ virtual void JSGGetTranslation(Vec*) const;
|
||||
/* 80038920 */ virtual void JSGSetTranslation(Vec const&);
|
||||
/* 8003A0F4 */ virtual void JSGGetScaling(Vec*) const;
|
||||
|
||||
Reference in New Issue
Block a user