diff --git a/configure.py b/configure.py index 688ae5ab1..42aec169b 100755 --- a/configure.py +++ b/configure.py @@ -789,7 +789,7 @@ config.libs = [ Object(Matching, "JSystem/JStudio/JStudio/jstudio-math.cpp"), Object(Matching, "JSystem/JStudio/JStudio/jstudio-object.cpp"), Object(Matching, "JSystem/JStudio/JStudio/functionvalue.cpp"), - Object(NonMatching, "JSystem/JStudio/JStudio/fvb.cpp"), + Object(Matching, "JSystem/JStudio/JStudio/fvb.cpp"), Object(Matching, "JSystem/JStudio/JStudio/fvb-data.cpp"), Object(Matching, "JSystem/JStudio/JStudio/fvb-data-parse.cpp"), Object(Matching, "JSystem/JStudio/JStudio/object-id.cpp"), diff --git a/include/JSystem/JGadget/binary.h b/include/JSystem/JGadget/binary.h index 37b52c04c..f8a617d42 100644 --- a/include/JSystem/JGadget/binary.h +++ b/include/JSystem/JGadget/binary.h @@ -14,7 +14,7 @@ struct TEBit { const void* parseVariableUInt_16_32_following(const void* pu16, u32* pu32First, u32* pu32Second, TEBit* tebit); -inline u32 align_roundUp(u32 arg0, u32 uAlign) { +inline u32 align_roundUp(unsigned int arg0, unsigned int uAlign) { return (arg0 + uAlign - 1) & ~(uAlign - 1); } diff --git a/include/JSystem/JGadget/define.h b/include/JSystem/JGadget/define.h index bf219aa73..f1a28e691 100644 --- a/include/JSystem/JGadget/define.h +++ b/include/JSystem/JGadget/define.h @@ -2,6 +2,7 @@ #define DEFINE_H #include "dolphin/types.h" +#include #ifdef __cplusplus extern "C" { @@ -31,7 +32,13 @@ public: } JGadget_outMessage& operator<<(s8); JGadget_outMessage& operator<<(s32); - JGadget_outMessage& operator<<(u32); + JGadget_outMessage& operator<<(u32 value) { + /* Nonmatching - debug only */ + char sz[64]; + snprintf(sz, 64, "%u", value); + + return *this << sz; + } JGadget_outMessage& operator<<(const void*); private: diff --git a/include/JSystem/JGadget/vector.h b/include/JSystem/JGadget/vector.h index bc17ffcb7..2e69b6b8e 100644 --- a/include/JSystem/JGadget/vector.h +++ b/include/JSystem/JGadget/vector.h @@ -174,9 +174,9 @@ struct TVector { size_t GetSize_extend_(size_t count) const { - u32 oldSize = size(); - u32 neededNewSpace = oldSize + count; - u32 extendedSize = mExtend(capacity(), oldSize, count); + size_t oldSize = size(); + size_t neededNewSpace = oldSize + count; + size_t extendedSize = mExtend(capacity(), oldSize, count); return neededNewSpace > extendedSize ? neededNewSpace : extendedSize; } @@ -236,7 +236,7 @@ struct TVector_pointer_void : public TVector > { void** insert(void**, void* const&); void clear() { erase(begin(), end()); } - void push_back(const void*& value) { insert(end(), (void* const&)value); } + void push_back(void* const& value) { insert(end(), (void* const&)value); } /* 0x00 */ /* TVector */ }; @@ -257,7 +257,9 @@ struct TVector_pointer : public TVector_pointer_void { const T* end() const { return (const T*)TVector_pointer_void::end(); } T* end() { return (T*)TVector_pointer_void::end(); } - void push_back(const T& value) { TVector_pointer_void::push_back((const void*&)value); } + void push_back(const T& ref) { + TVector_pointer_void::push_back((void* const&)ref); + } /* 0x00 */ /* TVector_pointer_void */ }; diff --git a/include/JSystem/JStudio/JStudio/functionvalue.h b/include/JSystem/JStudio/JStudio/functionvalue.h index 28cf33c68..4c4001808 100644 --- a/include/JSystem/JStudio/JStudio/functionvalue.h +++ b/include/JSystem/JStudio/JStudio/functionvalue.h @@ -68,13 +68,13 @@ public: : TFunctionValueAttributeSet_const(refer, range, interp) {} TFunctionValueAttribute_refer* refer_get() const { - return static_cast(this)->refer_get(); + return TFunctionValueAttributeSet_const::refer_get(); } TFunctionValueAttribute_range* range_get() const { - return static_cast(this)->range_get(); + return TFunctionValueAttributeSet_const::range_get(); } TFunctionValueAttribute_interpolate* interpolate_get() const { - return static_cast(this)->interpolate_get(); + return TFunctionValueAttributeSet_const::interpolate_get(); } }; @@ -174,19 +174,22 @@ private: class TFunctionValue_composite : public TFunctionValue, public TFunctionValueAttribute_refer { public: struct TData { - TData(void* data) : u32data((u32)data) {} - TData(const void* data) : rawData(data) {} - TData(u32 data) : u32data(data) {} - TData(f32 data) : f32data(data) {} + TData(void* data) : uintdata((u32)data) {} + TData(unsigned int data) : uintdata(data) {} + TData(f64 data) : f64data(data) {} - inline void operator=(const TData& rhs) { f32data = rhs.f32data; } - u32 get_unsignedInteger() const { return u32data; } - f64 get_value() const { return f32data; } + inline void operator=(const TData& rhs) { f64data = rhs.f64data; } + unsigned int get_unsignedInteger() const { return uintdata; } + f64 get_value() const { return f64data; } + + // TODO + TData(JStudio::TFunctionValue::TEOutside) {} + void get_outside() const {} union { const void* rawData; - u32 u32data; - f64 f32data; + unsigned int uintdata; + f64 f64data; }; }; typedef f64 (*UnkFunc)(f64, const TFunctionValueAttribute_refer*, diff --git a/include/JSystem/JStudio/JStudio/fvb-data-parse.h b/include/JSystem/JStudio/JStudio/fvb-data-parse.h index 7934c2216..1caa41755 100644 --- a/include/JSystem/JStudio/JStudio/fvb-data-parse.h +++ b/include/JSystem/JStudio/JStudio/fvb-data-parse.h @@ -15,8 +15,7 @@ public: u32 get_size() const { return get()->size; } const void* getNext() const { - u32 size = get_size(); - return (const void*)((u8*)getRaw() + size); + return (const void*)((u8*)getRaw() + get_size()); } u16 get_type() const { return get()->type; } u16 get_IDSize() const { return get()->id_size; } @@ -28,7 +27,7 @@ public: return ret; } const void* getContent() const { - return (const void*)((const u8*)getBlockEnd_() + align_roundUp(get_IDSize(), 4)); + return (const void*)((intptr_t)getBlockEnd_() + align_roundUp(get_IDSize(), 4)); } }; diff --git a/include/JSystem/JStudio/JStudio/fvb.h b/include/JSystem/JStudio/JStudio/fvb.h index 762500a98..a0950e812 100644 --- a/include/JSystem/JStudio/JStudio/fvb.h +++ b/include/JSystem/JStudio/JStudio/fvb.h @@ -39,7 +39,7 @@ public: void prepare(const data::TParse_TBlock& block, TControl* control); - TFunctionValue* const& referFunctionValue() { return pfv_; } + TFunctionValue* const referFunctionValue() { return pfv_; } private: /* 0x0C */ JGadget::TLinkListNode mNode; @@ -80,7 +80,6 @@ public: TObject_composite(JStudio::fvb::data::TParse_TBlock const&); virtual void prepare_data_(JStudio::fvb::data::TParse_TParagraph::TData const&, JStudio::fvb::TControl*); - virtual ~TObject_composite() {} private: TFunctionValue_composite fnValue; @@ -89,7 +88,6 @@ private: class TObject_constant : public TObject { public: TObject_constant(data::TParse_TBlock const&); - virtual ~TObject_constant() {} virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*); @@ -100,7 +98,6 @@ private: class TObject_transition : public TObject { public: TObject_transition(data::TParse_TBlock const&); - virtual ~TObject_transition() {} virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*); @@ -116,7 +113,6 @@ public: /* 0x8 */ f32 _8[0]; }; TObject_list(data::TParse_TBlock const&); - virtual ~TObject_list() {} virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*); @@ -131,7 +127,6 @@ public: f32 _4[0]; }; TObject_list_parameter(data::TParse_TBlock const&); - virtual ~TObject_list_parameter() {} virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*); @@ -146,7 +141,6 @@ public: f32 _4[0]; }; TObject_hermite(data::TParse_TBlock const&); - virtual ~TObject_hermite() {} virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*); diff --git a/include/JSystem/JStudio/JStudio/object-id.h b/include/JSystem/JStudio/JStudio/object-id.h index be8f8a2e6..d4f00be73 100644 --- a/include/JSystem/JStudio/JStudio/object-id.h +++ b/include/JSystem/JStudio/JStudio/object-id.h @@ -20,9 +20,13 @@ private: /* 0x04 */ u32 mID_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 TObject_ID { + TObject_ID(const void* id, u32 id_size) : mData(id, id_size) {} + ~TObject_ID() {} + TIDData const& getIDData() const { return mData; } + const u8 *getID() const { return mData.getID(); } + + TIDData mData; }; struct TPRObject_ID_equal : public TIDData { diff --git a/src/JSystem/JStudio/JStudio/functionvalue.cpp b/src/JSystem/JStudio/JStudio/functionvalue.cpp index 4c21501d3..e12849bc4 100644 --- a/src/JSystem/JStudio/JStudio/functionvalue.cpp +++ b/src/JSystem/JStudio/JStudio/functionvalue.cpp @@ -268,14 +268,13 @@ f64 TFunctionValue_composite::getValue(f64 arg1) { /* 80271834-802718A0 .text composite_raw__Q27JStudio24TFunctionValue_compositeFRCQ27JGadget44TVector_pointerRCQ37JStudio24TFunctionValue_composite5TDatad */ f64 TFunctionValue_composite::composite_raw(const JGadget::TVector_pointer& param_1, const TFunctionValue_composite::TData& param_2, f64 param_3) { - u32 index = param_2.get_unsignedInteger(); - u32 size = param_1.size(); + unsigned int index = param_2.get_unsignedInteger(); + size_t size = param_1.size(); if (index >= size) { return 0.0; } TFunctionValue** local_18 = (TFunctionValue**)param_1.begin(); - // std::advance_pointer(local_18, index); - local_18 += index; + std::advance(local_18, index); TFunctionValue* piVar4 = *local_18; return piVar4->getValue(param_3); } @@ -291,7 +290,7 @@ f64 TFunctionValue_composite::composite_index(const JGadget::TVector_pointergetValue(param_3); s32 index = floor(dVar4); - u32 uVar2 = param_2.get_unsignedInteger(); + unsigned int uVar2 = param_2.get_unsignedInteger(); switch (uVar2) { case 0: case 3: @@ -328,8 +327,7 @@ f64 TFunctionValue_composite::composite_index(const JGadget::TVector_pointergetValue(param_3); } @@ -367,7 +365,7 @@ f64 TFunctionValue_composite::composite_add(const JGadget::TVector_pointerRCQ37JStudio24TFunctionValue_composite5TDatad */ f64 TFunctionValue_composite::composite_subtract(const JGadget::TVector_pointer& param_1, const TFunctionValue_composite::TData& param_2, f64 param_3) { - u32 size = param_1.size(); + size_t size = param_1.size(); if (size == 0) { return 0.0; } @@ -381,7 +379,7 @@ f64 TFunctionValue_composite::composite_subtract(const JGadget::TVector_pointer< TFunctionValue* piVar3 = *ppiVar3; dVar4 -= piVar3->getValue(param_3); } - dVar4 -= param_2.f32data; + dVar4 -= param_2.f64data; return dVar4; } @@ -399,7 +397,7 @@ f64 TFunctionValue_composite::composite_multiply(const JGadget::TVector_pointer< /* 80271C70-80271D60 .text composite_divide__Q27JStudio24TFunctionValue_compositeFRCQ27JGadget44TVector_pointerRCQ37JStudio24TFunctionValue_composite5TDatad */ f64 TFunctionValue_composite::composite_divide(const JGadget::TVector_pointer& param_1, const TFunctionValue_composite::TData& param_2, f64 param_3) { - u32 size = param_1.size(); + size_t size = param_1.size(); if (size == 0) { return 0.0; } @@ -413,7 +411,7 @@ f64 TFunctionValue_composite::composite_divide(const JGadget::TVector_pointergetValue(param_3); } - dVar4 /= param_2.f32data; + dVar4 /= param_2.f64data; return dVar4; } diff --git a/src/JSystem/JStudio/JStudio/fvb.cpp b/src/JSystem/JStudio/JStudio/fvb.cpp index 6d699be5b..e4c7ffed8 100644 --- a/src/JSystem/JStudio/JStudio/fvb.cpp +++ b/src/JSystem/JStudio/JStudio/fvb.cpp @@ -19,13 +19,12 @@ namespace fvb { TObject::~TObject() {} /* 802739AC-80273BD0 .text prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl */ -void TObject::prepare(const data::TParse_TBlock& rBlock, TControl* pControl) { - /* Nonmatching - regalloc */ - TFunctionValueAttributeSet_const set = pfv_->getAttributeSet(); - const void* pNext; - const void* pData; - pNext = rBlock.getNext(); - pData = rBlock.getContent(); +void TObject::prepare(data::TParse_TBlock const& rBlock, TControl* pControl) { + // JUT_ASSERT(35, pfv_!=NULL); + // JUT_ASSERT(36, pControl!=NULL); + TFunctionValueAttributeSet set = pfv_->getAttributeSet(); + const void* pNext = (const void*)rBlock.getNext(); + const void* pData = (const void*)rBlock.getContent(); while (pData < pNext) { data::TParse_TParagraph para(pData); data::TParse_TParagraph::TData dat; @@ -33,128 +32,133 @@ void TObject::prepare(const data::TParse_TBlock& rBlock, TControl* pControl) { u32 u32Type = dat.u32Type; u32 u32Size = dat.u32Size; const void* pContent = dat.pContent; - TFunctionValueAttribute_range* pfvaRange = set.range_get(); - TFunctionValueAttribute_refer* referGet; - TFunctionValueAttribute_interpolate* pfvaInterpolate = set.interpolate_get(); - switch (u32Type) { case 0: - goto prepare_end; - case 1: { + goto end; + case 1: prepare_data_(dat, pControl); - } break; + break; case 0x10: { - referGet = set.refer_get(); - - if (!referGet) { + // JGADGET_ASSERTWARN(61, u32Size>=4); + // JUT_ASSERT(62, pContent!=NULL); + TFunctionValueAttribute_refer* pfvaRefer = set.refer_get(); + // JGADGET_ASSERTWARN(64, pfvaRefer!=NULL); + if (pfvaRefer == NULL) { + // JGADGET_WARNMSG(67, "invalid paragraph"); break; } - - JGadget::TVector_pointer& rCnt = referGet->refer_referContainer(); - - typedef struct { - u32 length; - const u8 data[0]; - } unkDataHeader; - - typedef struct { - u32 count; - unkDataHeader dataArray[0]; - } unkDataArray; - - const unkDataArray* i = static_cast(pContent); - u32 dataCount = i->count; - const unkDataHeader* d = i->dataArray; - - for (; dataCount != 0; dataCount--) { - u32 length = d->length; - - TObject* pObject = pControl->getObject(&d->data, length); - - if (pObject) { - TFunctionValue* rfv = pObject->referFunctionValue(); - rCnt.push_back(rfv); + JGadget::TVector_pointer& rCnt = pfvaRefer->refer_referContainer(); + u8* content = (u8*)pContent; + u32 i = *(u32*)content; + u8* ptr = content + 4; + for (; i != 0; i--) { + u32 size = *(u32*)ptr; + TObject* pObject = pControl->getObject(ptr + 4, size); + if (pObject != NULL) { + rCnt.push_back(pObject->referFunctionValue()); + } else { + // JGADGET_WARNMSG(85, "object not found by ID"); } - -#ifdef __MWERKS__ // clang-format off - (const u8*)d += align_roundUp(length, sizeof(u32)) + sizeof(u32); -#else - d = (const unkDataHeader*)(((const u8*)d) + align_roundUp(length, sizeof(u32)) + sizeof(u32)); -#endif // clang-format on + ptr += align_roundUp(size, 4) + 4; } } break; case 0x11: { + // JGADGET_ASSERTWARN(93, u32Size>=4); + // JUT_ASSERT(94, pContent!=NULL); TFunctionValueAttribute_refer* pfvaRefer = set.refer_get(); - - if (!pfvaRefer) { + // JGADGET_ASSERTWARN(96, pfvaRefer!=NULL); + if (pfvaRefer == NULL) { + // JGADGET_WARNMSG(99, "invalid paragraph"); break; } JGadget::TVector_pointer& rCnt = pfvaRefer->refer_referContainer(); - - const u32* i = static_cast(pContent); - u32 ii = *i; - - for (; i++, ii != 0; ii--) { - u32 length = *i; - TObject* pObject = pControl->getObject_index(length); - if (pObject) { - TFunctionValue* rfv = pObject->referFunctionValue(); - rCnt.push_back(rfv); + u8* ptr = (u8*)pContent; + u32 i = *(u32*)ptr; + for (; ptr += 4, i != 0; i--) { + u32 index = *(u32*)ptr; + TObject* pObject = pControl->getObject_index(index); + if (pObject != NULL) { + rCnt.push_back(pObject->referFunctionValue()); + } else { + // JGADGET_WARNMSG(114, "object not found by index : " << index); } } } break; case 0x12: { - if (!pfvaRange) { + // JGADGET_ASSERTWARN(121, u32Size==8); + // JUT_ASSERT(122, pContent!=NULL); + TFunctionValueAttribute_range* pfvaRange = set.range_get(); + // JGADGET_ASSERTWARN(124, pfvaRange!=NULL); + if (pfvaRange == NULL) { + // JGADGET_WARNMSG(127, "invalid paragraph"); break; } - const f32* arr = static_cast(pContent); - + f32* arr = (f32*)pContent; pfvaRange->range_set(arr[0], arr[1]); } break; case 0x13: { - if (!pfvaRange) { + // JGADGET_ASSERTWARN(138, u32Size==4); + // JUT_ASSERT(139, pContent!=NULL); + TFunctionValueAttribute_range* pfvaRange = set.range_get(); + // JGADGET_ASSERTWARN(141, pfvaRange!=NULL); + if (pfvaRange == NULL) { + // JGADGET_WARNMSG(144, "invalid paragraph"); break; } - TFunctionValue::TEProgress prog = *static_cast(pContent); + TFunctionValue::TEProgress prog = *(TFunctionValue::TEProgress*)pContent; pfvaRange->range_setProgress(prog); - } break; case 0x14: { - if (!pfvaRange) { + // JGADGET_ASSERTWARN(156, u32Size==4); + // JUT_ASSERT(157, pContent!=NULL); + TFunctionValueAttribute_range* pfvaRange = set.range_get(); + // JGADGET_ASSERTWARN(159, pfvaRange!=NULL); + if (pfvaRange == NULL) { + // JGADGET_WARNMSG(162, "invalid paragraph"); break; } - TFunctionValue::TEAdjust adjust = *static_cast(pContent); + TFunctionValue::TEAdjust adjust = *(TFunctionValue::TEAdjust*)pContent; pfvaRange->range_setAdjust(adjust); - } break; case 0x15: { - if (!pfvaRange) { + // JGADGET_ASSERTWARN(174, u32Size==4); + // JUT_ASSERT(175, pContent!=NULL); + TFunctionValueAttribute_range* pfvaRange = set.range_get(); + // JGADGET_ASSERTWARN(177, pfvaRange!=NULL); + if (pfvaRange == NULL) { + // JGADGET_WARNMSG(180, "invalid paragraph"); break; } - TFunctionValue::TEOutside a = (TFunctionValue::TEOutside)(static_cast(pContent))[0]; - TFunctionValue::TEOutside b = (TFunctionValue::TEOutside)(static_cast(pContent))[1]; - - pfvaRange->range_setOutside(a, b); - + u16* out = (u16*)pContent; + pfvaRange->range_setOutside((TFunctionValue::TEOutside)out[0], + (TFunctionValue::TEOutside)out[1]); } break; case 0x16: { - if (!pfvaInterpolate) { + // JGADGET_ASSERTWARN(193, u32Size==4); + // JUT_ASSERT(194, pContent!=NULL); + TFunctionValueAttribute_interpolate* pfvaInterpolate = set.interpolate_get(); + // JGADGET_ASSERTWARN(197, pfvaInterpolate!=NULL); + if (pfvaInterpolate == NULL) { + // JGADGET_WARNMSG(200, "invalid paragraph"); break; } - TFunctionValue::TEInterpolate interp = *static_cast(pContent); + TFunctionValue::TEInterpolate interp = *(TFunctionValue::TEInterpolate*)pContent; pfvaInterpolate->interpolate_set(interp); - } break; + default: + // JGADGET_WARNMSG(211, "unknown paragraph : " << u32Type); + break; } pData = dat.next; + // JUT_ASSERT(214, pData!=NULL); } - -prepare_end: +end: + // JGADGET_ASSERTWARN(216, pData==pNext); pfv_->prepare(); } @@ -162,12 +166,12 @@ namespace { /* 80273BD0-80273BDC .text getCompositeData_raw___Q37JStudio3fvb17@unnamed@fvb_cpp@FPCv */ TFunctionValue_composite::TData getCompositeData_raw_(const void* arg1) { - return TFunctionValue_composite::TData(*(const void**)arg1); + return TFunctionValue_composite::TData(*(void**)arg1); } /* 80273BDC-80273BE8 .text getCompositeData_index___Q37JStudio3fvb17@unnamed@fvb_cpp@FPCv */ TFunctionValue_composite::TData getCompositeData_index_(const void* arg1) { - return TFunctionValue_composite::TData(*(u32*)arg1); + return TFunctionValue_composite::TData(*(unsigned int*)arg1); } /* 80273BE8-80273BF4 .text getCompositeData_parameter___Q37JStudio3fvb17@unnamed@fvb_cpp@FPCv */ @@ -214,9 +218,7 @@ const data::CompositeOperation* getCompositeOperation_(data::TEComposite r3) { } // namespace /* 80273C38-80273CB8 .text __ct__Q37JStudio3fvb17TObject_compositeFRCQ47JStudio3fvb4data13TParse_TBlock */ -TObject_composite::TObject_composite(const data::TParse_TBlock& block) : TObject(block, &fnValue) { - /* Nonmatching */ -} +TObject_composite::TObject_composite(const data::TParse_TBlock& block) : TObject(block, &fnValue) {} /* 80273CB8-80273D1C .text prepare_data___Q37JStudio3fvb17TObject_compositeFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl */ void TObject_composite::prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control) { @@ -237,9 +239,7 @@ void TObject_composite::prepare_data_(const data::TParse_TParagraph::TData& rDat } /* 80273D1C-80273D9C .text __ct__Q37JStudio3fvb16TObject_constantFRCQ47JStudio3fvb4data13TParse_TBlock */ -TObject_constant::TObject_constant(const data::TParse_TBlock& block) : TObject(block, &fnValue) { - /* Nonmatching */ -} +TObject_constant::TObject_constant(const data::TParse_TBlock& block) : TObject(block, &fnValue) {} /* 80273D9C-80273DAC .text prepare_data___Q37JStudio3fvb16TObject_constantFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl */ void TObject_constant::prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control) { @@ -255,9 +255,7 @@ void TObject_constant::prepare_data_(const data::TParse_TParagraph::TData& rData } /* 80273DAC-80273E2C .text __ct__Q37JStudio3fvb18TObject_transitionFRCQ47JStudio3fvb4data13TParse_TBlock */ -TObject_transition::TObject_transition(const data::TParse_TBlock& block) : TObject(block, &fnValue) { - /* Nonmatching */ -} +TObject_transition::TObject_transition(const data::TParse_TBlock& block) : TObject(block, &fnValue) {} /* 80273E2C-80273E44 .text prepare_data___Q37JStudio3fvb18TObject_transitionFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl */ void TObject_transition::prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control) { @@ -273,9 +271,7 @@ void TObject_transition::prepare_data_(const data::TParse_TParagraph::TData& rDa } /* 80273E44-80273EC4 .text __ct__Q37JStudio3fvb12TObject_listFRCQ47JStudio3fvb4data13TParse_TBlock */ -TObject_list::TObject_list(const data::TParse_TBlock& block) : TObject(block, &fnValue) { - /* Nonmatching */ -} +TObject_list::TObject_list(const data::TParse_TBlock& block) : TObject(block, &fnValue) {} /* 80273EC4-80273EE4 .text prepare_data___Q37JStudio3fvb12TObject_listFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl */ void TObject_list::prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control) { @@ -292,9 +288,7 @@ void TObject_list::prepare_data_(const data::TParse_TParagraph::TData& rData, TC } /* 80273EE4-80273F64 .text __ct__Q37JStudio3fvb22TObject_list_parameterFRCQ47JStudio3fvb4data13TParse_TBlock */ -TObject_list_parameter::TObject_list_parameter(const data::TParse_TBlock& block) : TObject(block, &fnValue) { - /* Nonmatching */ -} +TObject_list_parameter::TObject_list_parameter(const data::TParse_TBlock& block) : TObject(block, &fnValue) {} /* 80273F64-80273F94 .text prepare_data___Q37JStudio3fvb22TObject_list_parameterFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl */ void TObject_list_parameter::prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control) { @@ -310,9 +304,7 @@ void TObject_list_parameter::prepare_data_(const data::TParse_TParagraph::TData& } /* 80273F94-80274014 .text __ct__Q37JStudio3fvb15TObject_hermiteFRCQ47JStudio3fvb4data13TParse_TBlock */ -TObject_hermite::TObject_hermite(const data::TParse_TBlock& block) : TObject(block, &fnValue) { - /* Nonmatching */ -} +TObject_hermite::TObject_hermite(const data::TParse_TBlock& block) : TObject(block, &fnValue) {} /* 80274014-8027404C .text prepare_data___Q37JStudio3fvb15TObject_hermiteFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl */ void TObject_hermite::prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control) { @@ -358,7 +350,6 @@ void TControl::destroyObject_all() { /* 80274218-802742B8 .text getObject__Q37JStudio3fvb8TControlFPCvUl */ TObject* TControl::getObject(const void* param_0, u32 param_1) { - /* Nonmatching - TPRObject_ID_equal copy issue */ JGadget::TLinkList::iterator begin = ocObject_.begin(); JGadget::TLinkList::iterator end = ocObject_.end(); JGadget::TLinkList::iterator local_50 = std::find_if(begin, end, object::TPRObject_ID_equal(param_0, param_1)); @@ -374,12 +365,9 @@ TObject* TControl::getObject_index(u32 idx) { return NULL; } - JGadget::TLinkList::iterator begin(ocObject_.begin()); - while (idx != 0) { - begin++; - idx--; - } - return &*begin; + JGadget::TLinkList::iterator it(ocObject_.begin()); + std::advance(it, idx); + return &*it; } /* 802742FC-80274344 .text __dt__Q37JStudio3fvb8TFactoryFv */ diff --git a/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/iterator.h b/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/iterator.h index 73ca5de69..2e95d8a0a 100644 --- a/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/iterator.h +++ b/src/PowerPC_EABI_Support/MSL/MSL_C++/MSL_Common/Include/iterator.h @@ -68,15 +68,6 @@ inline void advance(InputIterator& i, Distance n) { __advance(i, n, typename iterator_traits::iterator_category()); } -// TODO: combine this with above later -template -inline void advance_fake(InputIt& it, Distance n) { - while (n > 0) { - --n; - ++it; - } -} - template inline typename iterator_traits::difference_type __distance(InputIterator first, InputIterator last, input_iterator_tag) { @@ -98,12 +89,6 @@ inline typename iterator_traits::difference_type distance(InputIt return __distance(first, last, typename iterator_traits::iterator_category()); } -// This needs to be defined with gcc concepts or something similar. Workaround. -template -inline void advance_pointer(InputIt& it, Distance n) { - it += n; -} - } // namespace std #endif