tabs -> spaces

This commit is contained in:
LagoLunatic
2024-03-05 16:48:54 -05:00
parent 321c4840b8
commit 61398dbbec
21 changed files with 602 additions and 603 deletions
+2 -2
View File
@@ -49,12 +49,12 @@ namespace JASystem {
};
struct TWaveArchive {
/* 0x00 */ char mFileName[0x74];
/* 0x74 */ u32 mWaveOffsets[1];
/* 0x74 */ u32 mWaveOffsets[1];
};
struct TWaveArchiveBank {
/* 0x00 */ u32 mMagic;
/* 0x04 */ u8 field_0x4[0x08 - 0x04];
/* 0x08 */ u32 mArchiveOffsets[1];
/* 0x08 */ u32 mArchiveOffsets[1];
};
u32 getGroupCount(void*);
+6 -6
View File
@@ -6,14 +6,14 @@
namespace JGadget {
template <typename T>
struct TAllocator {
static TAllocator get() { }
static TAllocator get() { }
inline TAllocator();
inline TAllocator();
u8 _00; // _00
u32 _04; // _04
u32 _08; // _08
u32 _0C; // _0C
u8 _00; // _00
u32 _04; // _04
u32 _08; // _08
u32 _0C; // _0C
};
typedef TAllocator<void*> TVoidAllocator;
+10 -10
View File
@@ -41,16 +41,16 @@ struct TControl {
/* 0x04 */ void* _04;
/* 0x08 */ void* _08;
/* 0x0C */ TSequenceProcessor* mBaseProcSeq;
/* 0x10 */ TRenderingProcessor* mBaseProcRender;
/* 0x14 */ u16 mMessageCode;
/* 0x16 */ u16 mMessageIndex;
/* 0x18 */ const TResource* mResourceCache;
/* 0x1C */ const char* mMessageBegin;
/* 0x20 */ const char* _20;
/* 0x24 */ const char* mCurrentText;
/* 0x28 */ void* mEntry;
/* 0x2C */ TProcessor::TStack_ mRenderStack;
/* 0x0C */ TSequenceProcessor* mBaseProcSeq;
/* 0x10 */ TRenderingProcessor* mBaseProcRender;
/* 0x14 */ u16 mMessageCode;
/* 0x16 */ u16 mMessageIndex;
/* 0x18 */ const TResource* mResourceCache;
/* 0x1C */ const char* mMessageBegin;
/* 0x20 */ const char* _20;
/* 0x24 */ const char* mCurrentText;
/* 0x28 */ void* mEntry;
/* 0x2C */ TProcessor::TStack_ mRenderStack;
};
}; // namespace JMessage
+142 -142
View File
@@ -11,151 +11,151 @@ struct TControl;
struct TResource;
struct TProcessor {
typedef bool (*OnCharacterEndCallBack)(TProcessor*);
typedef const char* (*OnSelectBeginCallBack)(TProcessor*);
typedef const char* (*ProcessOnSelectCallBack)(TProcessor*);
typedef bool (*OnCharacterEndCallBack)(TProcessor*);
typedef const char* (*OnSelectBeginCallBack)(TProcessor*);
typedef const char* (*ProcessOnSelectCallBack)(TProcessor*);
struct TStack_ {
TStack_() { clear(); }
struct TStack_ {
TStack_() { clear(); }
TStack_(const TStack_& other)
{
mSize = other.mSize;
for (int i = 0; i < mSize; i++) {
mStack[i] = mStack[i];
}
}
TStack_(const TStack_& other)
{
mSize = other.mSize;
for (int i = 0; i < mSize; i++) {
mStack[i] = mStack[i];
}
}
inline bool empty() const { return mSize == 0; }
inline bool isPushable() const { return mSize < 4; }
inline void clear() { mSize = 0; }
inline bool empty() const { return mSize == 0; }
inline bool isPushable() const { return mSize < 4; }
inline void clear() { mSize = 0; }
inline u32 getMaxSize() const { return 4; }
inline u32 getSize() const { return mSize; }
inline const char* getTop() const { return mStack[mSize - 1]; }
inline u32 getMaxSize() const { return 4; }
inline u32 getSize() const { return mSize; }
inline const char* getTop() const { return mStack[mSize - 1]; }
inline void push(const char* str)
{
mStack[mSize] = str;
mSize++;
}
inline void push(const char* str)
{
mStack[mSize] = str;
mSize++;
}
inline void pop() { mSize--; }
inline void pop() { mSize--; }
u32 mSize; // _00
const char* mStack[3]; // _04
};
u32 mSize; // _00
const char* mStack[3]; // _04
};
struct TProcess {
struct TProcessData {
ProcessOnSelectCallBack mSelectCallback; // _00
const char* mBase; // _04
const void* mOffset; // _08
u32 mRest; // _0C
};
struct TProcess {
struct TProcessData {
ProcessOnSelectCallBack mSelectCallback; // _00
const char* mBase; // _04
const void* mOffset; // _08
u32 mRest; // _0C
};
TProcess() { reset_normal(); }
TProcess() { reset_normal(); }
void reset_normal() { mEndCallback = process_onCharacterEnd_normal_; }
void reset_select() { mEndCallback = process_onCharacterEnd_select_; }
void reset_normal() { mEndCallback = process_onCharacterEnd_normal_; }
void reset_select() { mEndCallback = process_onCharacterEnd_select_; }
OnCharacterEndCallBack mEndCallback; // _00
TProcessData mData; // _04
};
OnCharacterEndCallBack mEndCallback; // _00
TProcessData mData; // _04
};
~TProcessor();
virtual void do_character(int);
virtual bool do_tag(u32, const void*, u32);
virtual bool do_systemTagCode(u16, const void*, u32);
virtual void do_select_begin(u32);
virtual void do_select_end();
virtual void do_select_separate();
virtual void do_begin_(const void*, const char*) = 0;
virtual void do_end_() = 0;
virtual bool do_tag_(u32, const void*, u32) = 0;
virtual void do_systemTagCode_(u16, const void*, u32) = 0;
virtual void do_character(int);
virtual bool do_tag(u32, const void*, u32);
virtual bool do_systemTagCode(u16, const void*, u32);
virtual void do_select_begin(u32);
virtual void do_select_end();
virtual void do_select_separate();
virtual void do_begin_(const void*, const char*) = 0;
virtual void do_end_() = 0;
virtual bool do_tag_(u32, const void*, u32) = 0;
virtual void do_systemTagCode_(u16, const void*, u32) = 0;
void setBegin_messageCode(u16, u16);
void setBegin_messageID(u32, u32, bool*);
void setBegin_messageCode(u32); // weak
TResource* getResource_groupID(u16) const;
u32 toMessageCode_messageID(u32, u32, bool*) const;
char* on_message_limited(u16) const; // weak
char* on_message(u32) const; // weak
char* getMessageText_messageCode(u32) const; // weak
static bool process_onCharacterEnd_normal_(TProcessor*);
static bool process_onCharacterEnd_select_(TProcessor*);
static const char* process_onSelect_limited_(TProcessor*);
static const char* process_onSelect_(TProcessor*);
void reset_(const char*);
void setBegin_messageCode(u16, u16);
void setBegin_messageID(u32, u32, bool*);
void setBegin_messageCode(u32); // weak
TResource* getResource_groupID(u16) const;
u32 toMessageCode_messageID(u32, u32, bool*) const;
char* on_message_limited(u16) const; // weak
char* on_message(u32) const; // weak
char* getMessageText_messageCode(u32) const; // weak
static bool process_onCharacterEnd_normal_(TProcessor*);
static bool process_onCharacterEnd_select_(TProcessor*);
static const char* process_onSelect_limited_(TProcessor*);
static const char* process_onSelect_(TProcessor*);
void reset_(const char*);
void process_select_limited_(TProcessor*);
void process_select_(TProcessor*);
int setBegin_messageEntryText(const TResource* resource, const void* entry, const char* param_2)
{
// mResourceCache = resource;
reset_(param_2);
do_begin_(entry, param_2);
return TRUE;
}
int setBegin_messageEntryText(const TResource* resource, const void* entry, const char* param_2)
{
// mResourceCache = resource;
reset_(param_2);
do_begin_(entry, param_2);
return TRUE;
}
const TResource* getResourceCache() const { return mResourceCache; }
const char* getCurrent() const { return mCurrent; }
const TReference* getReference() const { return mReference; }
const TResource* getResourceCache() const { return mResourceCache; }
const char* getCurrent() const { return mCurrent; }
const TReference* getReference() const { return mReference; }
// Unused/inlined:
void pushCurrent(const char*);
const char* popCurrent();
void on_select_begin(OnSelectBeginCallBack, const void*, const char*, u32);
void on_select_end();
void on_select_separate();
void on_tag_();
void process_character_();
// Unused/inlined:
void pushCurrent(const char*);
const char* popCurrent();
void on_select_begin(OnSelectBeginCallBack, const void*, const char*, u32);
void on_select_end();
void on_select_separate();
void on_tag_();
void process_character_();
// _00 = VTBL
const TReference* mReference; // _04
const TResource* mResourceCache; // _08
const char* mCurrent; // _0C
TStack_ mStack; // _10
TProcess mProcess; // _24
// _00 = VTBL
const TReference* mReference; // _04
const TResource* mResourceCache; // _08
const char* mCurrent; // _0C
TStack_ mStack; // _10
TProcess mProcess; // _24
};
struct TSequenceProcessor : public TProcessor {
typedef bool OnJumpRegisterCallBack(TSequenceProcessor*);
typedef bool OnBranchRegisterCallBack(TSequenceProcessor*, u32);
typedef void* ProcessOnJumpCallBack(const TSequenceProcessor*);
typedef bool OnJumpRegisterCallBack(TSequenceProcessor*);
typedef bool OnBranchRegisterCallBack(TSequenceProcessor*, u32);
typedef void* ProcessOnJumpCallBack(const TSequenceProcessor*);
TSequenceProcessor(const TReference*, TControl*);
TSequenceProcessor(const TReference*, TControl*);
TSequenceProcessor(TControl*);
virtual ~TSequenceProcessor(); // _08
virtual void do_reset_(const char*); // _28
virtual bool do_setBegin_isReady_() const; // _2C
virtual void do_begin_(const void*, const char*); // _30
virtual void do_end_(); // _34
virtual bool do_tag_(u32, const void*, u32); // _38
virtual void do_systemTagCode_(u16, const void*, u32); // _3C
virtual void do_begin(const void*, const char*); // _40
virtual void do_end(); // _44
virtual bool do_isReady(); // _48
virtual bool do_jump_isReady(); // _4C
virtual void do_jump(const void*, const char*); // _50
virtual void do_branch_query(u16); // _54
virtual int do_branch_queryResult(); // _58
virtual void do_branch(const void*, const char*); // _5C
virtual ~TSequenceProcessor(); // _08
virtual void do_reset_(const char*); // _28
virtual bool do_setBegin_isReady_() const; // _2C
virtual void do_begin_(const void*, const char*); // _30
virtual void do_end_(); // _34
virtual bool do_tag_(u32, const void*, u32); // _38
virtual void do_systemTagCode_(u16, const void*, u32); // _3C
virtual void do_begin(const void*, const char*); // _40
virtual void do_end(); // _44
virtual bool do_isReady(); // _48
virtual bool do_jump_isReady(); // _4C
virtual void do_jump(const void*, const char*); // _50
virtual void do_branch_query(u16); // _54
virtual int do_branch_queryResult(); // _58
virtual void do_branch(const void*, const char*); // _5C
char* process(const char*);
bool on_isReady();
void on_jump_isReady();
void on_jump(const void*, const char*);
void on_branch_queryResult();
void on_branch(const void*, const char*);
void process_onJump_limited_(const TSequenceProcessor*);
static void* process_onJump_(const TSequenceProcessor*);
void process_onBranch_limited_(const TSequenceProcessor*, u32);
void process_onBranch_(const TSequenceProcessor*, u32);
char* process(const char*);
bool on_isReady();
void on_jump_isReady();
void on_jump(const void*, const char*);
void on_branch_queryResult();
void on_branch(const void*, const char*);
void process_onJump_limited_(const TSequenceProcessor*);
static void* process_onJump_(const TSequenceProcessor*);
void process_onBranch_limited_(const TSequenceProcessor*, u32);
void process_onBranch_(const TSequenceProcessor*, u32);
void reset_(const char*);
void process_jump_limited_(TSequenceProcessor*);
@@ -163,14 +163,14 @@ struct TSequenceProcessor : public TProcessor {
void process_branch_limited_(TSequenceProcessor*, u32);
void process_branch_(TSequenceProcessor*, u32);
// Unused/inlined:
const char* toString_status(int);
int toValue_status(const char*);
void on_jump_register(OnJumpRegisterCallBack*, u32);
void on_branch_register(OnBranchRegisterCallBack*, const void*, u32);
void on_branch_query(u16);
void process_setMessageIndex_reserved_(u16);
void process_setMessageCode_(const TSequenceProcessor*, u16, u16);
// Unused/inlined:
const char* toString_status(int);
int toValue_status(const char*);
void on_jump_register(OnJumpRegisterCallBack*, u32);
void on_branch_register(OnBranchRegisterCallBack*, const void*, u32);
void on_branch_query(u16);
void process_setMessageIndex_reserved_(u16);
void process_setMessageCode_(const TSequenceProcessor*, u16, u16);
void reset() {}
void setBegin(const void* param_1, const char* param_2) {
@@ -178,31 +178,31 @@ struct TSequenceProcessor : public TProcessor {
do_begin_(param_1, param_2);
}
// _00 = VTBL
// _00-_38 = TProcessor
TControl* _38; // _38
int _3C; // _3C
ProcessOnJumpCallBack* _40; // _40 - processorCallBack(void*, ulong) pointer?
u32 _44; // _44
u32 _48; // _48
// _00 = VTBL
// _00-_38 = TProcessor
TControl* _38; // _38
int _3C; // _3C
ProcessOnJumpCallBack* _40; // _40 - processorCallBack(void*, ulong) pointer?
u32 _44; // _44
u32 _48; // _48
};
struct TRenderingProcessor : public TProcessor {
TRenderingProcessor(const TReference*);
TRenderingProcessor(const TReference*);
TRenderingProcessor(TControl*);
virtual void do_begin_(const void*, const char*);
virtual void do_end_();
virtual bool do_tag_(u32, const void*, u32);
virtual void do_systemTagCode_(u16, const void*, u32);
virtual ~TRenderingProcessor();
virtual void do_begin(const void*, const char*);
virtual void do_end();
virtual void do_begin_(const void*, const char*);
virtual void do_end_();
virtual bool do_tag_(u32, const void*, u32);
virtual void do_systemTagCode_(u16, const void*, u32);
virtual ~TRenderingProcessor();
virtual void do_begin(const void*, const char*);
virtual void do_end();
void process(const char*);
void process(const char*);
// _00 = VTBL
// _00-_38 = TProcessor
// _00 = VTBL
// _00-_38 = TProcessor
};
} // namespace JMessage
@@ -81,9 +81,9 @@ struct TVariableValue {
}
}
inline void setOutput(const TOutput* output) {
pOutput_ = (output != NULL ? (TOutput*)output : (TOutput*)&soOutput_none_);
}
inline void setOutput(const TOutput* output) {
pOutput_ = (output != NULL ? (TOutput*)output : (TOutput*)&soOutput_none_);
}
static u8 soOutput_none_[4 + 4 /* padding */];
@@ -139,22 +139,22 @@ public:
};
struct TAdaptor {
inline TAdaptor(TVariableValue* values, int count)
: pValue_(values)
, u(count)
{
}
inline TAdaptor(TVariableValue* values, int count)
: pValue_(values)
, u(count)
{
}
struct TSetVariableValue_immediate {
inline TSetVariableValue_immediate(u32 p1, f32 p2)
: field_0x0(p1)
, field_0x4(p2)
{
}
struct TSetVariableValue_immediate {
inline TSetVariableValue_immediate(u32 p1, f32 p2)
: field_0x0(p1)
, field_0x4(p2)
{
}
u32 field_0x0;
f32 field_0x4;
};
u32 field_0x0;
f32 field_0x4;
};
typedef void (*setVarFunc)(JStudio::TAdaptor*, JStudio::TObject*, u32, void const*, u32);
virtual ~TAdaptor() = 0;
virtual void adaptor_do_prepare(const JStudio::TObject*);
@@ -204,11 +204,11 @@ struct TAdaptor {
};
struct TAdaptor_actor : public TAdaptor {
TAdaptor_actor()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
TAdaptor_actor()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
virtual ~TAdaptor_actor() = 0;
/* 0x10 */ TVariableValue mValue[14];
@@ -227,11 +227,11 @@ struct TObject_actor : public TObject {
};
struct TAdaptor_ambientLight : public TAdaptor {
TAdaptor_ambientLight()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
TAdaptor_ambientLight()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
virtual ~TAdaptor_ambientLight() = 0;
/* 0x10 */ TVariableValue mValue[4];
@@ -249,11 +249,11 @@ struct TObject_ambientLight : public TObject {
};
struct TAdaptor_camera : public TAdaptor {
TAdaptor_camera()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
TAdaptor_camera()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
virtual ~TAdaptor_camera() = 0;
/* 0x10 */ TVariableValue mValue[12];
@@ -272,11 +272,11 @@ struct TObject_camera : public TObject {
};
struct TAdaptor_fog : public TAdaptor {
TAdaptor_fog()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
TAdaptor_fog()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
virtual ~TAdaptor_fog() = 0;
/* 0x10 */ TVariableValue mValue[6];
@@ -295,11 +295,11 @@ struct TObject_fog : public TObject {
};
struct TAdaptor_light : public TAdaptor {
TAdaptor_light()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
TAdaptor_light()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
virtual ~TAdaptor_light() = 0;
/* 0x10 */ TVariableValue mValue[13];
@@ -320,10 +320,10 @@ struct TObject_light : public TObject {
};
struct TAdaptor_message : public TAdaptor {
TAdaptor_message()
: TAdaptor(NULL, 0)
{
}
TAdaptor_message()
: TAdaptor(NULL, 0)
{
}
virtual ~TAdaptor_message() = 0;
};
@@ -337,11 +337,11 @@ struct TObject_message : public TObject {
};
struct TAdaptor_particle : public TAdaptor {
TAdaptor_particle()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
TAdaptor_particle()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
virtual ~TAdaptor_particle() = 0;
/* 0x10 */ TVariableValue mValue[20];
@@ -364,11 +364,11 @@ struct TObject_particle : public TObject {
};
struct TAdaptor_sound : public TAdaptor {
TAdaptor_sound()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
TAdaptor_sound()
: TAdaptor(mValue, ARRAY_SIZE(mValue))
, mValue()
{
}
virtual ~TAdaptor_sound() = 0;
/* 0x10 */ TVariableValue mValue[11];
+1 -1
View File
@@ -13,7 +13,7 @@ public:
bool isEqual(JStudio::object::TIDData const&, JStudio::object::TIDData const&);
inline const void* getID() const { return mID; }
inline u32 getIDSize() const { return mID_size; }
inline u32 getIDSize() const { return mID_size; }
private:
/* 0x00 */ const void* mID;
@@ -19,68 +19,68 @@ struct TAdaptor_sound : public JStudio::TAdaptor_sound {
void operator()(float, JStudio::TAdaptor*) const;
};
struct TVVOSetValue_ : public JStudio::TVariableValue::TOutput {
virtual void operator()(f32, JStudio::TAdaptor*) const; // _08
virtual ~TVVOSetValue_(); // _0C (weak)
struct TVVOSetValue_ : public JStudio::TVariableValue::TOutput {
virtual void operator()(f32, JStudio::TAdaptor*) const; // _08
virtual ~TVVOSetValue_(); // _0C (weak)
// _00 = VTBL
int _04; // _04
u32 _08; // _08, unknown
int _0C; // _0C
int _10; // _10
};
// _00 = VTBL
int _04; // _04
u32 _08; // _08, unknown
int _0C; // _0C
int _10; // _10
};
static TVVOOn_BEGIN_FADE_IN_ soVVOOn_BEGIN_FADE_IN_;
static TVVOOn_END_FADE_OUT_ soVVOOn_END_FADE_OUT_;
static TVVOSetValue_ saoVVOSetValue_[];
TAdaptor_sound(JAIBasic*);
TAdaptor_sound(JAIBasic*);
virtual ~TAdaptor_sound(); // _08
virtual void adaptor_do_prepare(const JStudio::TObject*); // _0C
virtual void adaptor_do_end(const JStudio::TObject*); // _14
virtual void adaptor_do_update(const JStudio::TObject*, u32); // _18
virtual void adaptor_do_SOUND(JStudio::data::TEOperationData, const void*, u32); // _20
virtual void adaptor_do_BEGIN(JStudio::data::TEOperationData, const void*, u32); // _24
virtual void adaptor_do_BEGIN_FADE_IN(JStudio::data::TEOperationData, const void*, u32); // _28
virtual void adaptor_do_END(JStudio::data::TEOperationData, const void*, u32); // _2C
virtual void adaptor_do_END_FADE_OUT(JStudio::data::TEOperationData, const void*, u32); // _30
virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, const void*, u32); // _34
virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, const void*, u32); // _38
virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, const void*, u32); // _3C
virtual void adaptor_do_LOCATED(JStudio::data::TEOperationData, const void*, u32); // _40
virtual ~TAdaptor_sound(); // _08
virtual void adaptor_do_prepare(const JStudio::TObject*); // _0C
virtual void adaptor_do_end(const JStudio::TObject*); // _14
virtual void adaptor_do_update(const JStudio::TObject*, u32); // _18
virtual void adaptor_do_SOUND(JStudio::data::TEOperationData, const void*, u32); // _20
virtual void adaptor_do_BEGIN(JStudio::data::TEOperationData, const void*, u32); // _24
virtual void adaptor_do_BEGIN_FADE_IN(JStudio::data::TEOperationData, const void*, u32); // _28
virtual void adaptor_do_END(JStudio::data::TEOperationData, const void*, u32); // _2C
virtual void adaptor_do_END_FADE_OUT(JStudio::data::TEOperationData, const void*, u32); // _30
virtual void adaptor_do_PARENT(JStudio::data::TEOperationData, const void*, u32); // _34
virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, const void*, u32); // _38
virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, const void*, u32); // _3C
virtual void adaptor_do_LOCATED(JStudio::data::TEOperationData, const void*, u32); // _40
void beginSound_fadeIn_(u32);
void endSound_fadeOut_(u32);
void beginSound_fadeIn_(u32);
void endSound_fadeOut_(u32);
/* 0x0E8 */ JAIBasic* mpBasic;
/* 0x0EC */ JAISound* mpSound;
/* 0x0F0 */ u32 _F0;
/* 0x0F4 */ int _F4;
/* 0x0E8 */ JAIBasic* mpBasic;
/* 0x0EC */ JAISound* mpSound;
/* 0x0F0 */ u32 _F0;
/* 0x0F4 */ int _F4;
/* 0x0F8 */ u8 _F8[0x104 - 0x0F8];
// u32 _E4;
// Vec* _E8; // Vector3f* in ghidra, should be Vec* or JGeometry::TVec3* surely
// Vec _EC; // same as above
// JStage::TSystem* mSystem;
// JStage::TObject* _FC;
// u32 _100;
// u8 _104;
// u32 _E4;
// Vec* _E8; // Vector3f* in ghidra, should be Vec* or JGeometry::TVec3* surely
// Vec _EC; // same as above
// JStage::TSystem* mSystem;
// JStage::TObject* _FC;
// u32 _100;
// u8 _104;
}; // Size: 0x104
struct TCreateObject : public JStudio::TCreateObject {
TCreateObject(JAIBasic* jai, const JStage::TSystem* system)
{
mSound = jai;
mSystem = system;
}
virtual ~TCreateObject(); // _08
virtual bool create(JStudio::TObject** newObject, const JStudio::stb::data::TParse_TBlock_object& data); // _0C
TCreateObject(JAIBasic* jai, const JStage::TSystem* system)
{
mSound = jai;
mSystem = system;
}
virtual ~TCreateObject(); // _08
virtual bool create(JStudio::TObject** newObject, const JStudio::stb::data::TParse_TBlock_object& data); // _0C
// _00 = VTBL
// _00-_0C = JStudio::TCreateObject
JAIBasic* mSound; // _04
const JStage::TSystem* mSystem; // _08
// _00 = VTBL
// _00-_0C = JStudio::TCreateObject
JAIBasic* mSound; // _04
const JStage::TSystem* mSystem; // _08
};
} // namespace JStudio_JAudio
@@ -6,28 +6,28 @@
namespace JStudio_JMessage {
struct TCreateObject_base : JStudio::TCreateObject {
virtual ~TCreateObject_base() = 0; // _08
virtual bool create(JStudio::TObject** newObject, const JStudio::stb::data::TParse_TBlock_object& data); // _0C
virtual JMessage::TControl* find(const JStudio::stb::data::TParse_TBlock_object&) = 0; // _10
virtual ~TCreateObject_base() = 0; // _08
virtual bool create(JStudio::TObject** newObject, const JStudio::stb::data::TParse_TBlock_object& data); // _0C
virtual JMessage::TControl* find(const JStudio::stb::data::TParse_TBlock_object&) = 0; // _10
};
} // namespace JStudio_JMessage
namespace JStudio_JMessage {
struct TCreateObject : public TCreateObject_base {
TCreateObject(JMessage::TControl* control) { mControl = control; }
TCreateObject(JMessage::TControl* control) { mControl = control; }
virtual ~TCreateObject(); // _08
virtual JMessage::TControl* find(const JStudio::stb::data::TParse_TBlock_object&); // _10
virtual ~TCreateObject(); // _08
virtual JMessage::TControl* find(const JStudio::stb::data::TParse_TBlock_object&); // _10
JMessage::TControl* mControl; // _0C
JMessage::TControl* mControl; // _0C
};
struct TAdaptor_message : public JStudio::TAdaptor_message {
virtual ~TAdaptor_message(); // _08
virtual void adaptor_do_MESSAGE(JStudio::data::TEOperationData, const void*, u32); // _20
virtual ~TAdaptor_message(); // _08
virtual void adaptor_do_MESSAGE(JStudio::data::TEOperationData, const void*, u32); // _20
TAdaptor_message(JMessage::TControl*);
JMessage::TControl* mControl; // _10
TAdaptor_message(JMessage::TControl*);
JMessage::TControl* mControl; // _10
};
} // namespace JStudio_JMessage
@@ -22,19 +22,19 @@ struct TCreateObject : public JStudio::TCreateObject {
};
struct TAdaptor_particle : public JStudio::TAdaptor_particle {
struct TJPACallback_ : JPACallBackBase<JPABaseEmitter*> {
inline TJPACallback_(TAdaptor_particle* adaptor)
: mAdaptor(adaptor)
, mObject(NULL)
{
}
struct TJPACallback_ : JPACallBackBase<JPABaseEmitter*> {
inline TJPACallback_(TAdaptor_particle* adaptor)
: mAdaptor(adaptor)
, mObject(NULL)
{
}
virtual ~TJPACallback_() { } // _08 (weak)
virtual void execute(JPABaseEmitter*); // _0C
virtual ~TJPACallback_() { } // _08 (weak)
virtual void execute(JPABaseEmitter*); // _0C
TAdaptor_particle* mAdaptor; // _04
const JStudio::TObject* mObject; // _08
};
TAdaptor_particle* mAdaptor; // _04
const JStudio::TObject* mObject; // _08
};
struct TVVOOn_BEGIN_FADE_IN_ : public JStudio::TVariableValue::TOutput {
void operator()(float, JStudio::TAdaptor*) const;
@@ -60,17 +60,17 @@ struct TAdaptor_particle : public JStudio::TAdaptor_particle {
virtual void adaptor_do_PARENT_NODE(JStudio::data::TEOperationData, void const*, u32);
virtual void adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData, void const*, u32);
/* 0x19C */ JPAEmitterManager* mEmitterManager;
/* 0x1A0 */ JPABaseEmitter* mEmitter;
/* 0x1A4 */ TJPACallback_ mCallback;
/* 0x1B0 */ int _188;
/* 0x1B4 */ u32 _18C;
/* 0x1B8 */ u32 _190;
/* 0x1BC */ u32 _194;
/* 0x1C0 */ const JStage::TSystem* mSystem;
/* 0x1C4 */ JStage::TObject* _19C;
/* 0x1C8 */ u32 _1A0;
/* 0x1CC */ bool _1A4;
/* 0x19C */ JPAEmitterManager* mEmitterManager;
/* 0x1A0 */ JPABaseEmitter* mEmitter;
/* 0x1A4 */ TJPACallback_ mCallback;
/* 0x1B0 */ int _188;
/* 0x1B4 */ u32 _18C;
/* 0x1B8 */ u32 _190;
/* 0x1BC */ u32 _194;
/* 0x1C0 */ const JStage::TSystem* mSystem;
/* 0x1C4 */ JStage::TObject* _19C;
/* 0x1C8 */ u32 _1A0;
/* 0x1CC */ bool _1A4;
}; // Size: 0x1D0
}; // namespace JStudio_JParticle
+41 -41
View File
@@ -11,24 +11,24 @@ namespace binary {
/* 802BFA48-802BFAAC .text parseVariableUInt_16_32_following__Q27JGadget6binaryFPCvPUlPUlPQ37JGadget6binary5TEBit */
const void* parseVariableUInt_16_32_following(const void* buffer, u32* param_1, u32* param_2, TEBit* bit) {
JGadget::binary::TEBit temp;
if (bit == NULL) {
bit = &temp;
}
u32 uVar1 = *(u16*)buffer;
if ((uVar1 & 0x8000) == 0) {
bit->value = 0x10;
*param_1 = uVar1;
*param_2 = *(u16*)((u8*)buffer + 2);
return (u8*)buffer + 4;
}
bit->value = 0x20;
uVar1 <<= 16;
uVar1 &= 0x7fff0000;
uVar1 |= *(u16*)((u8*)buffer + 2);
*param_1 = uVar1;
*param_2 = *(u32*)((u8*)buffer + 4);
return (u8*)buffer + 8;
JGadget::binary::TEBit temp;
if (bit == NULL) {
bit = &temp;
}
u32 uVar1 = *(u16*)buffer;
if ((uVar1 & 0x8000) == 0) {
bit->value = 0x10;
*param_1 = uVar1;
*param_2 = *(u16*)((u8*)buffer + 2);
return (u8*)buffer + 4;
}
bit->value = 0x20;
uVar1 <<= 16;
uVar1 &= 0x7fff0000;
uVar1 |= *(u16*)((u8*)buffer + 2);
*param_1 = uVar1;
*param_2 = *(u32*)((u8*)buffer + 4);
return (u8*)buffer + 8;
}
/* 802BFAAC-802BFAF4 .text __dt__Q37JGadget6binary19TParse_header_blockFv */
@@ -36,33 +36,33 @@ TParse_header_block::~TParse_header_block() {}
/* 802BFAF4-802BFC00 .text parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl */
bool TParse_header_block::parse_next(const void** ptrLocation, u32 idx) {
u32 headerEnd, blockEnd;
u32 headerEnd, blockEnd;
if ((ptrLocation == NULL) || (*ptrLocation == NULL)) {
return false;
}
bool check, checkLastBlock;
checkLastBlock = check = false;
if ((ptrLocation == NULL) || (*ptrLocation == NULL)) {
return false;
}
bool check, checkLastBlock;
checkLastBlock = check = false;
check = checkNext(ptrLocation, &headerEnd, idx);
check = checkNext(ptrLocation, &headerEnd, idx);
checkLastBlock = check;
if (!(idx & 1) && (check == false)) {
return check;
}
checkLastBlock = check;
if (!(idx & 1) && (check == false)) {
return check;
}
while (headerEnd > 0) {
check = false;
if (parseBlock_next(ptrLocation, &blockEnd, idx) && checkLastBlock) {
check = true;
}
checkLastBlock = check;
if (((idx & 2) == 0) && (check == false)) {
return check;
}
headerEnd--;
}
return checkLastBlock;
while (headerEnd > 0) {
check = false;
if (parseBlock_next(ptrLocation, &blockEnd, idx) && checkLastBlock) {
check = true;
}
checkLastBlock = check;
if (((idx & 2) == 0) && (check == false)) {
return check;
}
headerEnd--;
}
return checkLastBlock;
}
} // namespace binary
+5 -5
View File
@@ -15,11 +15,11 @@ u32 vector::extend_default(u32, u32 param_2, u32) {
/* 802BFF1C-802BFF48 .text __ct__Q27JGadget20TVector_pointer_voidFRCQ27JGadget14TAllocator<Pv> */
TVector_pointer_void::TVector_pointer_void(const TAllocator<void*>& allocator) {
_00 = allocator._00;
mBegin = NULL;
mEnd = mBegin;
_0C = NULL;
mExtend = vector::extend_default;
_00 = allocator._00;
mBegin = NULL;
mEnd = mBegin;
_0C = NULL;
mExtend = vector::extend_default;
}
/* 802BFF48-802BFFF0 .text __dt__Q27JGadget20TVector_pointer_voidFv */
+21 -21
View File
@@ -39,47 +39,47 @@ void JMessage::TControl::getMessageData(u16, u16) const {
void JMessage::TControl::reset() {
reset_();
if (mBaseProcSeq) {
mBaseProcSeq->reset_(NULL);
}
if (mBaseProcSeq) {
mBaseProcSeq->reset_(NULL);
}
if (mBaseProcRender) {
mBaseProcRender->reset_(NULL);
}
if (mBaseProcRender) {
mBaseProcRender->reset_(NULL);
}
}
/* 8029EB1C-8029EC00 .text update__Q28JMessage8TControlFv */
bool JMessage::TControl::update() {
/* Nonmatching */
if (!isReady_update_()) {
return false;
}
if (!isReady_update_()) {
return false;
}
if (mCurrentText == NULL) {
mCurrentText = mMessageBegin;
mBaseProcSeq->setBegin(mResourceCache, mMessageBegin);
}
mCurrentText = mBaseProcSeq->process(NULL);
mCurrentText = mBaseProcSeq->process(NULL);
if (!mCurrentText) {
mMessageBegin = NULL;
return false;
}
return true;
if (!mCurrentText) {
mMessageBegin = NULL;
return false;
}
return true;
}
/* 8029EC00-8029ECCC .text render__Q28JMessage8TControlFv */
void JMessage::TControl::render() {
/* Nonmatching */
if (!isReady_render_()) {
return;
}
if (!isReady_render_()) {
return;
}
mBaseProcRender->setBegin_messageEntryText(mResourceCache, mEntry, _20);
mBaseProcRender->setBegin_messageEntryText(mResourceCache, mEntry, _20);
mBaseProcRender->mCurrent = _20;
mBaseProcRender->mStack = mRenderStack;
mBaseProcRender->process(mCurrentText);
mBaseProcRender->mStack = mRenderStack;
mBaseProcRender->process(mCurrentText);
}
/* 8029ECCC-8029ECD4 .text do_word__Q28JMessage8TControlFUl */
+17 -17
View File
@@ -238,23 +238,23 @@ bool TSequenceProcessor::do_tag_(u32, const void*, u32) {
/* 8029F9D4-8029FA2C .text do_systemTagCode___Q28JMessage18TSequenceProcessorFUsPCvUl */
void TSequenceProcessor::do_systemTagCode_(u16 p1, const void* p2, u32 p3) {
/* Nonmatching */
switch (p1) {
case 6:
_3C = 3;
_40 = &process_onJump_;
_44 = *(u32*)p2;
break;
case 0:
case 1:
case 2:
case 3:
break;
case 4:
case 5:
default:
TProcessor::do_systemTagCode_(p1, p2, p3);
break;
}
switch (p1) {
case 6:
_3C = 3;
_40 = &process_onJump_;
_44 = *(u32*)p2;
break;
case 0:
case 1:
case 2:
case 3:
break;
case 4:
case 5:
default:
TProcessor::do_systemTagCode_(p1, p2, p3);
break;
}
}
/* 8029FA2C-8029FA5C .text process_jump_limited___Q28JMessage18TSequenceProcessorFPQ28JMessage18TSequenceProcessor */
+9 -10
View File
@@ -8,14 +8,13 @@
/* 80274A90-80274AF8 .text getData__Q47JStudio3fvb4data17TParse_TParagraphCFPQ57JStudio3fvb4data17TParse_TParagraph5TData */
void JStudio::fvb::data::TParse_TParagraph::getData(JStudio::fvb::data::TParse_TParagraph::TData* data) const {
u16* parse = (u16*)JGadget::binary::parseVariableUInt_16_32_following(getRaw(), (u32*)data, (u32*)&data->u32Type, NULL);
u32 t = (u32)data->u32Size;
if (!t) {
data->pContent = NULL;
data->next = parse;
} else {
data->pContent = parse;
data->next = parse + ((t + 3) >> 1 & ~1);
}
u16* parse = (u16*)JGadget::binary::parseVariableUInt_16_32_following(getRaw(), (u32*)data, (u32*)&data->u32Type, NULL);
u32 t = (u32)data->u32Size;
if (!t) {
data->pContent = NULL;
data->next = parse;
} else {
data->pContent = parse;
data->next = parse + ((t + 3) >> 1 & ~1);
}
}
+23 -23
View File
@@ -49,32 +49,32 @@ void TParse_TParagraph::getData(TParse_TParagraph::TData* pData) const {
void TParse_TParagraph_data::getData(TParse_TParagraph_data::TData* pData) const {
u8* set2;
int dSize = pData->dataSize = 0;
pData->_8 = 0;
pData->fileCount = NULL;
pData->_10 = NULL;
u8* filedata = (u8*)getRaw();
if (filedata == NULL)
return;
u8 set = *filedata;
pData->status = set & ~0x8;
if (!set)
return;
int dSize = pData->dataSize = 0;
pData->_8 = 0;
pData->fileCount = NULL;
pData->_10 = NULL;
u8* filedata = (u8*)getRaw();
if (filedata == NULL)
return;
u8 set = *filedata;
pData->status = set & ~0x8;
if (!set)
return;
int is8;
int set3 = 1;
is8 = set & 8;
int set3 = 1;
is8 = set & 8;
// Probably fake match
if (set2 = (filedata + 1), is8) {
set3 = *set2++;
}
pData->_8 = set3;
pData->fileCount = set2;
if (set2 = (filedata + 1), is8) {
set3 = *set2++;
}
pData->_8 = set3;
pData->fileCount = set2;
if (!(set & 7))
return;
dSize = (gauDataSize_TEParagraph_data)[set &= 7];
pData->dataSize = dSize;
pData->_10 = (u8*)set2 + (dSize * set3);
if (!(set & 7))
return;
dSize = (gauDataSize_TEParagraph_data)[set &= 7];
pData->dataSize = dSize;
pData->_10 = (u8*)set2 + (dSize * set3);
}
} // namespace data
+24 -24
View File
@@ -14,25 +14,25 @@ namespace {
// TODO: supposed to use JStudio::TObject::createFromAdaptor instead of this somehow
inline JStudio::TObject_sound* sound_creator(const JStudio::stb::data::TParse_TBlock_object& data, JStudio_JAudio::TAdaptor_sound* adaptor)
{
JStudio::TObject_sound* object = new JStudio::TObject_sound(data, adaptor);
JStudio::TObject_sound* object = new JStudio::TObject_sound(data, adaptor);
if (!object) {
return NULL;
}
if (object->mpAdaptor) {
object->mpAdaptor->adaptor_do_prepare(object);
}
return object;
if (!object) {
return NULL;
}
if (object->mpAdaptor) {
object->mpAdaptor->adaptor_do_prepare(object);
}
return object;
}
/* 80278B98-80278C4C .text createObject_SOUND_JAI___Q214JStudio_JAudio21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectP8JAIBasic */
JStudio::TObject* createObject_SOUND_JAI_(const JStudio::stb::data::TParse_TBlock_object& parseBlock, JAIBasic* sound) {
TAdaptor_sound* adaptor = new TAdaptor_sound(sound);
if (!adaptor) {
return NULL;
}
TAdaptor_sound* adaptor = new TAdaptor_sound(sound);
if (!adaptor) {
return NULL;
}
return sound_creator(parseBlock, adaptor);
return sound_creator(parseBlock, adaptor);
}
} // namespace
@@ -42,17 +42,17 @@ TCreateObject::~TCreateObject() {}
/* 80278CAC-80278D20 .text create__Q214JStudio_JAudio13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object */
bool TCreateObject::create(JStudio::TObject** object, const JStudio::stb::data::TParse_TBlock_object& data) {
JStudioAudioCreateFunc createFunc;
switch (data.get()->type) {
case 'JSND':
createFunc = createObject_SOUND_JAI_;
break;
default:
return false;
}
JStudioAudioCreateFunc createFunc;
switch (data.get()->type) {
case 'JSND':
createFunc = createObject_SOUND_JAI_;
break;
default:
return false;
}
*object = createFunc(data, mSound);
return true;
*object = createFunc(data, mSound);
return true;
}
} // namespace JStudio_JAudio
} // namespace JStudio_JAudio
@@ -27,13 +27,13 @@ TAdaptor_sound::~TAdaptor_sound() {
/* 80278E38-80278F40 .text adaptor_do_prepare__Q214JStudio_JAudio14TAdaptor_soundFPCQ27JStudio7TObject */
void TAdaptor_sound::adaptor_do_prepare(const JStudio::TObject* param_1) {
static TSetVariableValue_immediate aoData[] = {
TSetVariableValue_immediate(0, 0.0f),
static TSetVariableValue_immediate aoData[] = {
TSetVariableValue_immediate(0, 0.0f),
TSetVariableValue_immediate(1, 0.0f),
TSetVariableValue_immediate(2, 0.0f),
TSetVariableValue_immediate(0xFFFFFFFF, NAN),
};
adaptor_setVariableValue_immediate(aoData);
TSetVariableValue_immediate(0xFFFFFFFF, NAN),
};
adaptor_setVariableValue_immediate(aoData);
pValue_[3].setOutput(&TAdaptor_sound::soVVOOn_BEGIN_FADE_IN_);
pValue_[4].setOutput(&TAdaptor_sound::soVVOOn_END_FADE_OUT_);
@@ -15,26 +15,26 @@ namespace {
inline JStudio::TObject_message* message_creator(const JStudio::stb::data::TParse_TBlock_object& data,
TAdaptor_message* adaptor)
{
JStudio::TObject_message* object = new JStudio::TObject_message(data, adaptor);
JStudio::TObject_message* object = new JStudio::TObject_message(data, adaptor);
if (!object) {
return NULL;
}
if (object->mpAdaptor) {
object->mpAdaptor->adaptor_do_prepare(object);
}
return object;
if (!object) {
return NULL;
}
if (object->mpAdaptor) {
object->mpAdaptor->adaptor_do_prepare(object);
}
return object;
}
/* 8027A3F4-8027A4A8 .text createObject_MESSAGE_JMS___Q216JStudio_JMessage21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectPQ28JMessage8TControl */
JStudio::TObject_message* createObject_MESSAGE_JMS_(const JStudio::stb::data::TParse_TBlock_object& data, JMessage::TControl* system)
{
TAdaptor_message* adaptor = new TAdaptor_message(system);
if (!adaptor) {
return NULL;
}
TAdaptor_message* adaptor = new TAdaptor_message(system);
if (!adaptor) {
return NULL;
}
return message_creator(data, adaptor);
return message_creator(data, adaptor);
}
} // namespace
@@ -44,23 +44,23 @@ TCreateObject_base::~TCreateObject_base() {}
/* 8027A508-8027A5AC .text create__Q216JStudio_JMessage18TCreateObject_baseFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object */
bool TCreateObject_base::create(JStudio::TObject** newObject, const JStudio::stb::data::TParse_TBlock_object& data) {
JStudio::TObject_message* (*func)(const JStudio::stb::data::TParse_TBlock_object&, JMessage::TControl*);
switch (data.get()->type) {
case 'JMSG':
func = &createObject_MESSAGE_JMS_;
break;
default:
return false;
}
JStudio::TObject_message* (*func)(const JStudio::stb::data::TParse_TBlock_object&, JMessage::TControl*);
switch (data.get()->type) {
case 'JMSG':
func = &createObject_MESSAGE_JMS_;
break;
default:
return false;
}
JMessage::TControl* system = find(data);
JMessage::TControl* system = find(data);
if (!system) {
return false;
}
if (!system) {
return false;
}
*newObject = func(data, system);
return true;
*newObject = func(data, system);
return true;
}
/* 8027A5AC-8027A60C .text __dt__Q216JStudio_JMessage13TCreateObjectFv */
@@ -19,9 +19,9 @@ JStudio_JMessage::TAdaptor_message::~TAdaptor_message() {}
/* 8027A6AC-8027A6EC .text adaptor_do_MESSAGE__Q216JStudio_JMessage16TAdaptor_messageFQ37JStudio4data15TEOperationDataPCvUl */
void JStudio_JMessage::TAdaptor_message::adaptor_do_MESSAGE(JStudio::data::TEOperationData operation, const void* param_2, u32 param_3) {
/* Nonmatching */
switch (operation) {
case JStudio::data::UNK_0x19:
mControl->setMessageCode(*(u32*)param_2);
break;
}
switch (operation) {
case JStudio::data::UNK_0x19:
mControl->setMessageCode(*(u32*)param_2);
break;
}
}
@@ -13,28 +13,28 @@ namespace {
// TODO: supposed to use JStudio::TObject::createFromAdaptor instead of this somehow
static inline JStudio::TObject_particle* create(const JStudio::stb::data::TParse_TBlock_object& data, TAdaptor_particle* adaptor)
{
JStudio::TObject_particle* object = new JStudio::TObject_particle(data, adaptor);
if (object == NULL) {
// TODO: This should probably delete the adaptor in NONMATCHING builds, if the object couldn't get created.
return NULL;
} else {
if (object->mpAdaptor != NULL) {
object->mpAdaptor->adaptor_do_prepare(object);
}
}
return object;
JStudio::TObject_particle* object = new JStudio::TObject_particle(data, adaptor);
if (object == NULL) {
// TODO: This should probably delete the adaptor in NONMATCHING builds, if the object couldn't get created.
return NULL;
} else {
if (object->mpAdaptor != NULL) {
object->mpAdaptor->adaptor_do_prepare(object);
}
}
return object;
}
/* 802796E4-802797A0 .text createObject_PARTICLE_JPA___Q217JStudio_JParticle21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectP17JPAEmitterManagerPCQ26JStage7TSystem */
JStudio::TObject_particle* createObject_PARTICLE_JPA_(const JStudio::stb::data::TParse_TBlock_object& data, JPAEmitterManager* manager,
const JStage::TSystem* system)
{
TAdaptor_particle* adaptor = new TAdaptor_particle(manager, system);
if (adaptor == NULL) {
return NULL;
}
JStudio::TObject_particle* object = create(data, adaptor);
return object;
TAdaptor_particle* adaptor = new TAdaptor_particle(manager, system);
if (adaptor == NULL) {
return NULL;
}
JStudio::TObject_particle* object = create(data, adaptor);
return object;
}
} // namespace
@@ -43,17 +43,17 @@ TCreateObject::~TCreateObject() {}
/* 80279800-80279878 .text create__Q217JStudio_JParticle13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object */
bool TCreateObject::create(JStudio::TObject** newObject, const JStudio::stb::data::TParse_TBlock_object& data) {
JStudio::TObject_particle* (*func)(const JStudio::stb::data::TParse_TBlock_object&, JPAEmitterManager*, const JStage::TSystem*);
switch (data.get()->type) {
case 'JPTC': {
func = &createObject_PARTICLE_JPA_;
break;
}
default:
return false;
}
*newObject = func(data, pJPAEmitterManager_, pJSGSystem_);
return true;
JStudio::TObject_particle* (*func)(const JStudio::stb::data::TParse_TBlock_object&, JPAEmitterManager*, const JStage::TSystem*);
switch (data.get()->type) {
case 'JPTC': {
func = &createObject_PARTICLE_JPA_;
break;
}
default:
return false;
}
*newObject = func(data, pJPAEmitterManager_, pJSGSystem_);
return true;
}
} // namespace JStudio_JParticle
@@ -28,25 +28,25 @@ TAdaptor_particle::TAdaptor_particle(JPAEmitterManager* emitterManager, const JS
/* 802799B0-80279A50 .text __dt__Q217JStudio_JParticle17TAdaptor_particleFv */
TAdaptor_particle::~TAdaptor_particle() {
if (mEmitter != NULL) {
mEmitterManager->forceDeleteEmitter(mEmitter);
}
if (mEmitter != NULL) {
mEmitterManager->forceDeleteEmitter(mEmitter);
}
}
/* 80279A50-80279BD4 .text adaptor_do_prepare__Q217JStudio_JParticle17TAdaptor_particleFPCQ27JStudio7TObject */
void TAdaptor_particle::adaptor_do_prepare(const JStudio::TObject* param_1) {
static TSetVariableValue_immediate aoData[18] = {
TSetVariableValue_immediate(0, 0.0f), TSetVariableValue_immediate(1, 0.0f), TSetVariableValue_immediate(2, 0.0f),
TSetVariableValue_immediate(3, 0.0f), TSetVariableValue_immediate(4, 0.0f), TSetVariableValue_immediate(5, 0.0f),
TSetVariableValue_immediate(6, 1.0f), TSetVariableValue_immediate(7, 1.0f), TSetVariableValue_immediate(8, 1.0f),
TSetVariableValue_immediate(9, 255.0f), TSetVariableValue_immediate(10, 255.0f), TSetVariableValue_immediate(11, 255.0f),
TSetVariableValue_immediate(12, 255.0f), TSetVariableValue_immediate(13, 255.0f), TSetVariableValue_immediate(14, 255.0f),
TSetVariableValue_immediate(15, 255.0f), TSetVariableValue_immediate(16, 255.0f), TSetVariableValue_immediate(0xFFFFFFFF, NAN)
};
adaptor_setVariableValue_immediate(aoData);
static TSetVariableValue_immediate aoData[18] = {
TSetVariableValue_immediate(0, 0.0f), TSetVariableValue_immediate(1, 0.0f), TSetVariableValue_immediate(2, 0.0f),
TSetVariableValue_immediate(3, 0.0f), TSetVariableValue_immediate(4, 0.0f), TSetVariableValue_immediate(5, 0.0f),
TSetVariableValue_immediate(6, 1.0f), TSetVariableValue_immediate(7, 1.0f), TSetVariableValue_immediate(8, 1.0f),
TSetVariableValue_immediate(9, 255.0f), TSetVariableValue_immediate(10, 255.0f), TSetVariableValue_immediate(11, 255.0f),
TSetVariableValue_immediate(12, 255.0f), TSetVariableValue_immediate(13, 255.0f), TSetVariableValue_immediate(14, 255.0f),
TSetVariableValue_immediate(15, 255.0f), TSetVariableValue_immediate(16, 255.0f), TSetVariableValue_immediate(0xFFFFFFFF, NAN)
};
adaptor_setVariableValue_immediate(aoData);
pValue_[18].setOutput(&TAdaptor_particle::soVVOOn_BEGIN_FADE_IN_);
pValue_[19].setOutput(&TAdaptor_particle::soVVOOn_END_FADE_OUT_);
mCallback.mObject = param_1;
mCallback.mObject = param_1;
}
TAdaptor_particle::TVVOOn_BEGIN_FADE_IN_ TAdaptor_particle::soVVOOn_BEGIN_FADE_IN_;
@@ -57,40 +57,40 @@ void TAdaptor_particle::adaptor_do_end(const JStudio::TObject*) {}
/* 80279BD8-80279C2C .text adaptor_do_update__Q217JStudio_JParticle17TAdaptor_particleFPCQ27JStudio7TObjectUl */
void TAdaptor_particle::adaptor_do_update(const JStudio::TObject* param_1, u32 param_2) {
if (_190 == 0) {
return;
}
if (_194 >= _190) {
return;
}
_194 += param_2;
if (_194 < _190) {
return;
}
switch (_18C) {
case 2:
if (_190 == 0) {
return;
}
if (_194 >= _190) {
return;
}
_194 += param_2;
if (_194 < _190) {
return;
}
switch (_18C) {
case 2:
break;
default:
_18C = 0;
_18C = 0;
break;
}
_190 = 0;
_194 = 0;
}
_190 = 0;
_194 = 0;
}
/* 80279C2C-80279C40 .text adaptor_do_PARTICLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */
void TAdaptor_particle::adaptor_do_PARTICLE(JStudio::data::TEOperationData operation, const void* r5, u32) {
switch (operation) {
case JStudio::data::UNK_0x19:
switch (operation) {
case JStudio::data::UNK_0x19:
_188 = *(int*)r5;
break;
}
break;
}
}
/* 80279C40-80279CA4 .text adaptor_do_PARENT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */
void TAdaptor_particle::adaptor_do_PARENT(JStudio::data::TEOperationData operation, const void* param_2, u32) {
switch (operation) {
case JStudio::data::UNK_0x18:
switch (operation) {
case JStudio::data::UNK_0x18:
if (mSystem != NULL) {
_19C = (JStage::TObject*)mSystem->JSGFindObject((const char*)param_2, JStage::TOBJ_ACTOR_UNK);
if (_19C == 0) {
@@ -98,34 +98,34 @@ void TAdaptor_particle::adaptor_do_PARENT(JStudio::data::TEOperationData operati
*(f32*)NULL = *(f32*)NULL;
}
}
break;
}
break;
}
}
/* 80279CA4-80279D24 .text adaptor_do_PARENT_NODE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */
void TAdaptor_particle::adaptor_do_PARENT_NODE(JStudio::data::TEOperationData operation, const void* param_2, u32) {
switch (operation) {
case JStudio::data::UNK_0x18:
if (_19C != NULL) {
_1A0 = _19C->JSGFindNodeID((const char*)param_2);
if (_1A0 == 0xFFFFFFFF) {
return;
}
}
break;
case JStudio::data::UNK_0x19:
_1A0 = *(u32*)param_2;
break;
}
switch (operation) {
case JStudio::data::UNK_0x18:
if (_19C != NULL) {
_1A0 = _19C->JSGFindNodeID((const char*)param_2);
if (_1A0 == 0xFFFFFFFF) {
return;
}
}
break;
case JStudio::data::UNK_0x19:
_1A0 = *(u32*)param_2;
break;
}
}
/* 80279D24-80279D40 .text adaptor_do_PARENT_ENABLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */
void TAdaptor_particle::adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData operation, const void* param_2, u32 param_3) {
switch (operation) {
case JStudio::data::UNK_0x2:
_1A4 = *(u32*)param_2;
break;
}
switch (operation) {
case JStudio::data::UNK_0x2:
_1A4 = *(u32*)param_2;
break;
}
}
/* 80279D40-80279E2C .text __cl__Q317JStudio_JParticle17TAdaptor_particle21TVVOOn_BEGIN_FADE_IN_CFfPQ27JStudio8TAdaptor */
@@ -140,24 +140,24 @@ void TAdaptor_particle::TVVOOn_END_FADE_OUT_::operator()(float, JStudio::TAdapto
/* 80279F08-8027A2B8 .text execute__Q317JStudio_JParticle17TAdaptor_particle13TJPACallback_FP14JPABaseEmitter */
void TAdaptor_particle::TJPACallback_::execute(JPABaseEmitter* emitter) {
if (emitter->isEnableDeleteEmitter()) {
mAdaptor->_18C = 0;
mAdaptor->_190 = 0;
mAdaptor->_194 = 0;
mAdaptor->mEmitterManager->forceDeleteEmitter(emitter);
mAdaptor->mEmitter = NULL;
return;
}
if (emitter->isEnableDeleteEmitter()) {
mAdaptor->_18C = 0;
mAdaptor->_190 = 0;
mAdaptor->_194 = 0;
mAdaptor->mEmitterManager->forceDeleteEmitter(emitter);
mAdaptor->mEmitter = NULL;
return;
}
f64 alpha = 1.0;
f64 alpha = 1.0;
f64 val1 = mAdaptor->_190; // u32 stored as f64
switch (mAdaptor->_18C) {
case 1:
switch (mAdaptor->_18C) {
case 1:
if (mAdaptor->_190 != 0) {
f64 val2 = mAdaptor->_194; // u32 stored as f64
alpha = val2 / val1;
}
break;
break;
case 2:
if (mAdaptor->_190 == 0) {
alpha = 0.0;
@@ -170,44 +170,44 @@ void TAdaptor_particle::TJPACallback_::execute(JPABaseEmitter* emitter) {
}
}
break;
}
}
const JStudio::TControl* ctrl = static_cast<const JStudio::TControl*>(mObject->getControl()); // r28
const JStudio::TControl* ctrl = static_cast<const JStudio::TControl*>(mObject->getControl()); // r28
emitter->stopDrawParticle();
Vec srts[2]; // 0x64
Vec srts[2]; // 0x64
Vec sp0C;
mAdaptor->adaptor_getVariableValue_Vec(&srts[0], sauVariableValue_3_TRANSLATION_XYZ);
mAdaptor->adaptor_getVariableValue_Vec(&srts[1], sauVariableValue_3_ROTATION_XYZ);
mAdaptor->adaptor_getVariableValue_Vec(&sp0C, sauVariableValue_3_SCALING_XYZ);
mAdaptor->adaptor_getVariableValue_Vec(&srts[0], sauVariableValue_3_TRANSLATION_XYZ);
mAdaptor->adaptor_getVariableValue_Vec(&srts[1], sauVariableValue_3_ROTATION_XYZ);
mAdaptor->adaptor_getVariableValue_Vec(&sp0C, sauVariableValue_3_SCALING_XYZ);
Vec* pos; // r29
Vec* pos; // r29
if (!mAdaptor->_1A4) {
if (!ctrl->transformOnSet_isEnabled()) {
pos = srts;
} else {
Vec outVec[2];
MTXMultVec(ctrl->transformOnSet_getMatrix(), &srts[0], &outVec[0]);
outVec[1].x = srts[1].x;
outVec[1].y = ctrl->transformOnSet_getRotationY() + srts[1].y;
outVec[1].z = srts[1].z;
pos = outVec;
}
emitter->setGlobalTranslation(pos[0]);
if (!mAdaptor->_1A4) {
if (!ctrl->transformOnSet_isEnabled()) {
pos = srts;
} else {
Vec outVec[2];
MTXMultVec(ctrl->transformOnSet_getMatrix(), &srts[0], &outVec[0]);
outVec[1].x = srts[1].x;
outVec[1].y = ctrl->transformOnSet_getRotationY() + srts[1].y;
outVec[1].z = srts[1].z;
pos = outVec;
}
emitter->setGlobalTranslation(pos[0]);
int angleX = 65536.0 * (pos[1].x / 360.0);
int angleY = 65536.0 * (pos[1].y / 360.0);
int angleZ = 65536.0 * (pos[1].z / 360.0);
emitter->setGlobalRotation(JGeometry::TVec3<s16>(angleX, angleY, angleZ));
emitter->setGlobalScale(sp0C);
} else {
emitter->setGlobalScale(sp0C);
} else {
if (mAdaptor->_19C == NULL) {
return;
}
Mtx spA8;
Mtx sp78;
Mtx sp78;
Mtx sp48;
if (mAdaptor->_19C->JSGGetNodeTransformation(mAdaptor->_1A0, spA8) == 0) {
return;
@@ -215,22 +215,22 @@ void TAdaptor_particle::TJPACallback_::execute(JPABaseEmitter* emitter) {
JStudio::math::getTransformation_SRxyzT(sp78, sp0C, srts[1], srts[0]);
MTXConcat(spA8, sp78, sp48);
emitter->setGlobalSRTMatrix(sp48);
}
}
GXColor color;
mAdaptor->adaptor_getVariableValue_GXColor(&color, sauVariableValue_4_COLOR_RGBA);
emitter->setGlobalPrmColor(color.r, color.g, color.b);
GXColor color;
mAdaptor->adaptor_getVariableValue_GXColor(&color, sauVariableValue_4_COLOR_RGBA);
emitter->setGlobalPrmColor(color.r, color.g, color.b);
alpha *= (f64)color.a;
u8 emitAlpha = 255;
if (alpha < 255.0) {
emitAlpha = (u8)alpha;
}
alpha *= (f64)color.a;
u8 emitAlpha = 255;
if (alpha < 255.0) {
emitAlpha = (u8)alpha;
}
emitter->setGlobalAlpha(emitAlpha);
emitter->setGlobalAlpha(emitAlpha);
mAdaptor->adaptor_getVariableValue_GXColor(&color, sauVariableValue_4_COLOR1_RGBA);
emitter->setGlobalEnvColor(color.r, color.g, color.b);
mAdaptor->adaptor_getVariableValue_GXColor(&color, sauVariableValue_4_COLOR1_RGBA);
emitter->setGlobalEnvColor(color.r, color.g, color.b);
emitter->playDrawParticle();
}