mirror of
https://github.com/zeldaret/tp
synced 2026-07-09 14:55:32 -04:00
Various JSystem work (#2383)
* JKernel and JStudio cleanup * JMessage cleanup * JAudio cleanup * JASBNKParser work * functionvalue work * fvb work * J2D and J3D cleanup * steal from tww * J2DPictureEx mostly done * fix build
This commit is contained in:
@@ -112,7 +112,7 @@ struct data {
|
||||
struct TObject_TxyzRy : public TObject {
|
||||
/* 80280F60 */ TObject_TxyzRy(JStudio::ctb::data::TParse_TBlock const&);
|
||||
|
||||
/* 80281554 */ virtual ~TObject_TxyzRy();
|
||||
/* 80281554 */ virtual ~TObject_TxyzRy() {}
|
||||
/* 80280FBC */ virtual int getScheme() const;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
#ifndef FUNCTIONVALUE_H
|
||||
#define FUNCTIONVALUE_H
|
||||
|
||||
#include "JSystem/JGadget/search.h"
|
||||
#include "JSystem/JGadget/vector.h"
|
||||
#include "global.h"
|
||||
#include "JSystem/JGadget/std-vector.h"
|
||||
#include "dolphin/os.h"
|
||||
#include <iterator.h>
|
||||
|
||||
extern u8 lit_569;
|
||||
|
||||
namespace JStudio {
|
||||
|
||||
@@ -66,20 +68,19 @@ public:
|
||||
: TFunctionValueAttributeSet_const(refer, range, interp) {}
|
||||
|
||||
TFunctionValueAttribute_refer* refer_get() const {
|
||||
return static_cast<const TFunctionValueAttributeSet_const*>(this)->refer_get();
|
||||
return TFunctionValueAttributeSet_const::refer_get();
|
||||
}
|
||||
TFunctionValueAttribute_range* range_get() const {
|
||||
return static_cast<const TFunctionValueAttributeSet_const*>(this)->range_get();
|
||||
return TFunctionValueAttributeSet_const::range_get();
|
||||
}
|
||||
TFunctionValueAttribute_interpolate* interpolate_get() const {
|
||||
return static_cast<const TFunctionValueAttributeSet_const*>(this)->interpolate_get();
|
||||
return TFunctionValueAttributeSet_const::interpolate_get();
|
||||
}
|
||||
};
|
||||
|
||||
class TFunctionValueAttribute_refer : public JGadget::TVector_pointer<TFunctionValue*> {
|
||||
public:
|
||||
TFunctionValueAttribute_refer() :
|
||||
JGadget::TVector_pointer<TFunctionValue*>(JGadget::TAllocator<void*>()) {}
|
||||
inline TFunctionValueAttribute_refer();
|
||||
~TFunctionValueAttribute_refer() {}
|
||||
|
||||
/* 802816E8 */ void refer_initialize();
|
||||
@@ -191,7 +192,7 @@ public:
|
||||
};
|
||||
typedef f64 (*UnkFunc)(f64, const TFunctionValueAttribute_refer*,
|
||||
const TFunctionValue_composite::TData*);
|
||||
typedef f64 (*CompositeFunc)(const JGadget::TVector_pointer<TFunctionValue>&,
|
||||
typedef f64 (*CompositeFunc)(const JGadget::TVector_pointer<TFunctionValue*>&,
|
||||
const TFunctionValue_composite::TData&, f64);
|
||||
|
||||
/* 80281D5C */ TFunctionValue_composite();
|
||||
@@ -227,7 +228,7 @@ public:
|
||||
TData data;
|
||||
};
|
||||
|
||||
class TFunctionValue_transition : TFunctionValue,
|
||||
class TFunctionValue_transition : public TFunctionValue,
|
||||
TFunctionValueAttribute_range,
|
||||
TFunctionValueAttribute_interpolate {
|
||||
public:
|
||||
@@ -252,7 +253,7 @@ private:
|
||||
/* 0x50 */ f64 _50;
|
||||
};
|
||||
|
||||
class TFunctionValue_list : TFunctionValue,
|
||||
class TFunctionValue_list : public TFunctionValue,
|
||||
TFunctionValueAttribute_range,
|
||||
TFunctionValueAttribute_interpolate {
|
||||
public:
|
||||
@@ -303,25 +304,44 @@ private:
|
||||
/* 0x58 */ update_INTERPOLATE pfnUpdate_;
|
||||
};
|
||||
|
||||
class TFunctionValue_list_parameter : TFunctionValue,
|
||||
class TFunctionValue_list_parameter : public TFunctionValue,
|
||||
TFunctionValueAttribute_range,
|
||||
TFunctionValueAttribute_interpolate {
|
||||
public:
|
||||
struct TIterator_data_ {
|
||||
TIterator_data_(const f32* value) : value_(value) {}
|
||||
TIterator_data_(const TIterator_data_& other) : value_(other.value_) {}
|
||||
|
||||
void operator=(const TIterator_data_& rhs) { value_ = rhs.value_; }
|
||||
TIterator_data_& operator--() {
|
||||
value_ -= 2;
|
||||
return *this;
|
||||
}
|
||||
TIterator_data_& operator-=(s32 n) {
|
||||
value_ -= n * 2;
|
||||
return *this;
|
||||
}
|
||||
s32 operator-(const TIterator_data_& other) {
|
||||
return (u32)(value_ - other.value_) >> 1;
|
||||
}
|
||||
TIterator_data_& operator++() {
|
||||
value_ += 2;
|
||||
return *this;
|
||||
}
|
||||
TIterator_data_& operator+=(s32 n) {
|
||||
value_ += n * 2;
|
||||
return *this;
|
||||
}
|
||||
friend bool operator==(const TIterator_data_& lhs, const TIterator_data_& rhs) { return lhs.value_ == rhs.value_; }
|
||||
f32 operator*() { return *value_; }
|
||||
|
||||
const f32* get() const { return value_; }
|
||||
void set(const f32* value) { value_ = value; }
|
||||
|
||||
const f32* value_;
|
||||
|
||||
typedef s32 difference_type;
|
||||
typedef f32 value_type;
|
||||
typedef const f32* pointer;
|
||||
typedef const f32& reference;
|
||||
typedef std::random_access_iterator_tag iterator_category;
|
||||
};
|
||||
typedef f64 (*update_INTERPOLATE)(const TFunctionValue_list_parameter&, f64);
|
||||
|
||||
@@ -358,7 +378,7 @@ private:
|
||||
/* 0x58 */ update_INTERPOLATE pfnUpdate_;
|
||||
};
|
||||
|
||||
class TFunctionValue_hermite : TFunctionValue, TFunctionValueAttribute_range {
|
||||
class TFunctionValue_hermite : public TFunctionValue, TFunctionValueAttribute_range {
|
||||
public:
|
||||
struct TIterator_data_ {
|
||||
TIterator_data_(const TFunctionValue_hermite& rParent, const f32* value) {
|
||||
@@ -374,14 +394,36 @@ public:
|
||||
}
|
||||
|
||||
friend bool operator==(const TIterator_data_& lhs, const TIterator_data_& rhs) { return lhs.value_ == rhs.value_; }
|
||||
f32 operator*() { return *value_; }
|
||||
|
||||
TIterator_data_& operator--() {
|
||||
value_ -= size_;
|
||||
return *this;
|
||||
}
|
||||
TIterator_data_& operator-=(s32 n) {
|
||||
value_ -= size_ * n;
|
||||
return *this;
|
||||
}
|
||||
s32 operator-(const TIterator_data_& other) {
|
||||
return (value_ - other.value_) / size_;
|
||||
}
|
||||
TIterator_data_& operator++() {
|
||||
value_ += size_;
|
||||
return *this;
|
||||
}
|
||||
TIterator_data_& operator+=(s32 n) {
|
||||
value_ += size_ * n;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/* 0x00 */ const f32* value_;
|
||||
/* 0x04 */ u32 size_;
|
||||
|
||||
typedef s32 difference_type;
|
||||
typedef f32 value_type;
|
||||
typedef const f32* pointer;
|
||||
typedef const f32& reference;
|
||||
typedef std::random_access_iterator_tag iterator_category;
|
||||
};
|
||||
|
||||
/* 802832C4 */ TFunctionValue_hermite();
|
||||
|
||||
@@ -36,10 +36,10 @@ public:
|
||||
class TParse_TParagraph : public TParseData_aligned<4> {
|
||||
public:
|
||||
struct TData {
|
||||
/* 0x04 */ u32 u32Size;
|
||||
/* 0x08 */ u32 u32Type;
|
||||
/* 0x0C */ const void* pContent;
|
||||
/* 0x10 */ const void* next;
|
||||
/* 0x00 */ u32 u32Size;
|
||||
/* 0x04 */ u32 u32Type;
|
||||
/* 0x08 */ const void* pContent;
|
||||
/* 0x0C */ const void* next;
|
||||
};
|
||||
TParse_TParagraph(const void* content) : TParseData_aligned<4>(content) {}
|
||||
|
||||
|
||||
@@ -26,7 +26,10 @@ typedef enum TEComposite {
|
||||
/* 0x8 */ COMPOSITE_ENUM_SIZE,
|
||||
};
|
||||
|
||||
typedef const void* (*CompositeOperation)(TFunctionValue_composite::TData);
|
||||
struct CompositeOperation {
|
||||
TFunctionValue_composite::CompositeFunc composite;
|
||||
TFunctionValue_composite::TData (*getCompositeData)(const void*);
|
||||
};
|
||||
|
||||
struct TBlock {
|
||||
/* 0x0 */ u32 size;
|
||||
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
|
||||
private:
|
||||
/* 0x4 */ TFactory* pFactory;
|
||||
/* 0x8 */ JGadget::TLinkList<TObject, 12> ocObject_;
|
||||
/* 0x8 */ JGadget::TLinkList<TObject, -12> ocObject_;
|
||||
}; // Size: 0x14
|
||||
|
||||
class TObject_composite : public TObject {
|
||||
|
||||
@@ -44,16 +44,16 @@ namespace math {
|
||||
return VECMag(&local_18);
|
||||
}
|
||||
|
||||
inline void getFromTransformation_S(CMtxP param_1, Vec* param_2) {
|
||||
param_2->x = getFromTransformation_Sn(param_1, 0);
|
||||
param_2->y = getFromTransformation_Sn(param_1, 1);
|
||||
param_2->z = getFromTransformation_Sn(param_1, 2);
|
||||
inline void getFromTransformation_S(Vec* param_1, CMtxP param_2) {
|
||||
param_1->x = getFromTransformation_Sn(param_2, 0);
|
||||
param_1->y = getFromTransformation_Sn(param_2, 1);
|
||||
param_1->z = getFromTransformation_Sn(param_2, 2);
|
||||
}
|
||||
|
||||
inline void getFromTransformation_T(CMtxP param_1, Vec* param_2) {
|
||||
param_2->x = param_1[0][3];
|
||||
param_2->y = param_1[1][3];
|
||||
param_2->z = param_1[2][3];
|
||||
inline void getFromTransformation_T(Vec* param_1, CMtxP param_2) {
|
||||
param_1->x = param_2[0][3];
|
||||
param_1->y = param_2[1][3];
|
||||
param_1->z = param_2[2][3];
|
||||
}
|
||||
|
||||
inline void getTransformation_T(Mtx mtx, const Vec* param_2) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define JSTUDIO_OBJECT_H
|
||||
|
||||
#include "JSystem/JStudio/JStudio/jstudio-control.h"
|
||||
#include "global.h"
|
||||
#include "limits.h"
|
||||
#include "math.h"
|
||||
|
||||
@@ -27,7 +28,7 @@ struct TVariableValue {
|
||||
/* 80285E0C */ virtual ~TOutput() = 0;
|
||||
};
|
||||
|
||||
struct TOutput_none_ {
|
||||
struct TOutput_none_ : TOutput {
|
||||
/* 80285F6C */ ~TOutput_none_();
|
||||
/* 80285FCC */ void operator()(f32, JStudio::TAdaptor*) const;
|
||||
};
|
||||
@@ -36,7 +37,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() : field_0x4(0), field_0x8(NULL), pOutput_((TOutput*)soOutput_none_) {}
|
||||
/* 8028B568 */ TVariableValue() : field_0x4(0), field_0x8(NULL), pOutput_(&soOutput_none_) {}
|
||||
|
||||
void setValue_immediate(f32 value) {
|
||||
field_0x8 = &update_immediate_;
|
||||
@@ -83,10 +84,10 @@ struct TVariableValue {
|
||||
}
|
||||
|
||||
void setOutput(const TOutput* param_1) {
|
||||
pOutput_ = (param_1 != NULL) ? param_1 : (TOutput*)soOutput_none_;
|
||||
pOutput_ = (param_1 != NULL) ? param_1 : &soOutput_none_;
|
||||
}
|
||||
|
||||
static u8 soOutput_none_[4 + 4 /* padding */];
|
||||
static TOutput_none_ soOutput_none_;
|
||||
|
||||
/* 0x00 */ f32 mValue;
|
||||
/* 0x04 */ u32 field_0x4;
|
||||
|
||||
@@ -15,17 +15,20 @@ public:
|
||||
inline const u8* getID() const { return (const u8*)mID; }
|
||||
inline u32 getIDSize() const { return mID_size; }
|
||||
|
||||
private:
|
||||
protected:
|
||||
/* 0x00 */ const void* mID;
|
||||
/* 0x04 */ u32 mID_size;
|
||||
};
|
||||
|
||||
struct TPRObject_ID_equal : public TIDData {
|
||||
TPRObject_ID_equal(const void* id, u32 id_size) : TIDData(id, id_size) {}
|
||||
};
|
||||
|
||||
struct TObject_ID : public TIDData {
|
||||
TObject_ID(const void* id, u32 id_size) : TIDData(id, id_size) {}
|
||||
TIDData const& getIDData() const { return *this; }
|
||||
};
|
||||
|
||||
struct TPRObject_ID_equal : public TIDData {
|
||||
TPRObject_ID_equal(const void* id, u32 id_size) : TIDData(id, id_size) {}
|
||||
TPRObject_ID_equal(const TPRObject_ID_equal& other) : TIDData(other.mID, other.mID_size) {}
|
||||
bool operator()(TObject_ID const& id) const { return TIDData::isEqual(id.getIDData(), *this); }
|
||||
};
|
||||
|
||||
} // namespace object
|
||||
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
|
||||
/* 80288B78 */ void setFlag_operation(u8, int);
|
||||
/* 80288BD0 */ void reset(void const*);
|
||||
/* 80288BE8 */ u8 forward(u32);
|
||||
/* 80288BE8 */ bool forward(u32);
|
||||
/* 80288E18 */ virtual void do_begin();
|
||||
/* 80288E1C */ virtual void do_end();
|
||||
/* 80288E20 */ virtual void do_paragraph(u32, void const*, u32);
|
||||
@@ -133,7 +133,7 @@ public:
|
||||
/* 80289300 */ void destroyObject_all();
|
||||
/* 80289364 */ TObject* getObject(void const*, u32);
|
||||
/* 80289404 */ void reset();
|
||||
/* 802894B4 */ u8 forward(u32);
|
||||
/* 802894B4 */ bool forward(u32);
|
||||
|
||||
void setStatus_(u32 status) { mStatus = status; }
|
||||
void resetStatus_() { setStatus_(0); }
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef JSTUDIO_JSTAGE_CONTROL_H
|
||||
#define JSTUDIO_JSTAGE_CONTROL_H
|
||||
|
||||
#include "JSystem/JGadget/pointer.h"
|
||||
#include "JSystem/JStage/JSGActor.h"
|
||||
#include "JSystem/JStage/JSGAmbientLight.h"
|
||||
#include "JSystem/JStage/JSGCamera.h"
|
||||
@@ -51,6 +52,10 @@ 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
|
||||
{
|
||||
@@ -300,7 +305,7 @@ inline bool transform_toGlobalFromLocal(JStudio::TControl::TTransform_position*
|
||||
if (!transform_toGlobalFromLocal(afStack_38, param_2, param_3, param_4)) {
|
||||
return false;
|
||||
}
|
||||
JStudio::math::getFromTransformation_T(afStack_38, param_1);
|
||||
JStudio::math::getFromTransformation_T(param_1, afStack_38);
|
||||
return true;
|
||||
}
|
||||
/* 8028A328 */ bool
|
||||
@@ -310,6 +315,28 @@ inline bool transform_toGlobalFromLocal(JStudio::TControl::TTransform_position*
|
||||
/* 8028A3CC */ bool transform_toLocalFromGlobal(f32 (*)[4],
|
||||
JStudio::TControl::TTransform_position const&,
|
||||
JStage::TObject const*, u32);
|
||||
|
||||
namespace {
|
||||
|
||||
template <class AdaptorT, class ObjectT>
|
||||
JStudio::TObject* createObject_JSG_(const JStudio::stb::data::TParse_TBlock_object& param_1,
|
||||
JStage::TObject* param_2, const JStage::TSystem* param_3) {
|
||||
ObjectT* objt = (ObjectT*)param_2;
|
||||
AdaptorT* pAdaptor = new AdaptorT(param_3, objt);
|
||||
if (pAdaptor == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
JGadget::TPointer_delete<AdaptorT> adaptorGuard(pAdaptor);
|
||||
JStudio::TObject* pObj = JStudio::TCreateObject::createFromAdaptor<AdaptorT>(param_1, pAdaptor);
|
||||
if (pObj == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
adaptorGuard.set(NULL);
|
||||
return pObj;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
}; // namespace JStudio_JStage
|
||||
|
||||
#endif /* JSTUDIO_JSTAGE_CONTROL_H */
|
||||
|
||||
Reference in New Issue
Block a user