tp/libs/JSystem/JStudio/JStudio/fvb.cpp

885 lines
33 KiB
C++

//
// Generated By: dol2asm
// Translation Unit: fvb
//
#include "JSystem/JStudio/JStudio/fvb.h"
#include "JSystem/JUtility/JUTException.h"
#include "dol2asm.h"
#include "global.h"
//
// Types:
//
namespace JGadget {
/* TLinkList<JStudio::fvb::TObject, 12> */
struct TLinkList__template1 {
struct iterator {};
};
/* TVector_pointer<JStudio::TFunctionValue*> */
struct TVector_pointer__template0 {};
}; // namespace JGadget
namespace std {
template <typename A1, typename B1>
void find_if(/* ... */);
/* 80285018 */ /* std::find_if<JGadget::TLinkList<JStudio::fvb::TObject, 12>::iterator,
JStudio::object::TPRObject_ID_equal> */
void func_80285018(void* _this, JGadget::TLinkList__template1::iterator,
JGadget::TLinkList__template1::iterator, JStudio::object::TPRObject_ID_equal);
}; // namespace std
//
// Forward References:
//
extern "C" void __dt__Q37JStudio3fvb7TObjectFv();
extern "C" void
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl();
extern "C" static void func_80284234();
extern "C" void __ct__Q37JStudio3fvb17TObject_compositeFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb17TObject_compositeFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb16TObject_constantFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb16TObject_constantFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb18TObject_transitionFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb18TObject_transitionFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb12TObject_listFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb12TObject_listFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb22TObject_list_parameterFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb22TObject_list_parameterFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb15TObject_hermiteFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb15TObject_hermiteFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb8TControlFv();
extern "C" void __dt__Q37JStudio3fvb8TControlFv();
extern "C" void appendObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject();
extern "C" void removeObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject();
extern "C" void destroyObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject();
extern "C" void destroyObject_all__Q37JStudio3fvb8TControlFv();
extern "C" void getObject__Q37JStudio3fvb8TControlFPCvUl();
extern "C" void getObject_index__Q37JStudio3fvb8TControlFUl();
extern "C" void __dt__Q37JStudio3fvb8TFactoryFv();
extern "C" void create__Q37JStudio3fvb8TFactoryFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void destroy__Q37JStudio3fvb8TFactoryFPQ37JStudio3fvb7TObject();
extern "C" void __ct__Q37JStudio3fvb6TParseFPQ37JStudio3fvb8TControl();
extern "C" void __dt__Q37JStudio3fvb6TParseFv();
extern "C" void parseHeader_next__Q37JStudio3fvb6TParseFPPCvPUlUl();
extern "C" void parseBlock_next__Q37JStudio3fvb6TParseFPPCvPUlUl();
extern "C" void __dt__Q37JStudio3fvb15TObject_hermiteFv();
extern "C" void __dt__Q37JStudio3fvb22TObject_list_parameterFv();
extern "C" void __dt__Q37JStudio3fvb12TObject_listFv();
extern "C" void __dt__Q37JStudio3fvb18TObject_transitionFv();
extern "C" void __dt__Q37JStudio3fvb16TObject_constantFv();
extern "C" void __dt__Q37JStudio3fvb17TObject_compositeFv();
extern "C" void func_80285018(void* _this, JGadget::TLinkList__template1::iterator,
JGadget::TLinkList__template1::iterator,
JStudio::object::TPRObject_ID_equal);
//
// External References:
//
extern "C" void __dt__Q27JStudio14TFunctionValueFv();
extern "C" void range_set__Q27JStudio29TFunctionValueAttribute_rangeFdd();
extern "C" void __ct__Q27JStudio24TFunctionValue_compositeFv();
extern "C" void func_80281E5C();
extern "C" void func_80281EC8();
extern "C" void func_8028202C();
extern "C" void func_80282094();
extern "C" void func_80282118();
extern "C" void func_80282200();
extern "C" void func_80282284();
extern "C" void __ct__Q27JStudio23TFunctionValue_constantFv();
extern "C" void __ct__Q27JStudio25TFunctionValue_transitionFv();
extern "C" void __ct__Q27JStudio19TFunctionValue_listFv();
extern "C" void __ct__Q27JStudio29TFunctionValue_list_parameterFv();
extern "C" void data_set__Q27JStudio29TFunctionValue_list_parameterFPCfUl();
extern "C" void __ct__Q27JStudio22TFunctionValue_hermiteFv();
extern "C" void data_set__Q27JStudio22TFunctionValue_hermiteFPCfUlUl();
extern "C" void
getData__Q47JStudio3fvb4data17TParse_TParagraphCFPQ57JStudio3fvb4data17TParse_TParagraph5TData();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void __dt__Q37JGadget6binary19TParse_header_blockFv();
extern "C" void __dt__Q27JGadget13TNodeLinkListFv();
extern "C" void
Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode();
extern "C" void Erase__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode();
extern "C" void __dt__Q27JGadget20TVector_pointer_voidFv();
extern "C" void insert__Q27JGadget20TVector_pointer_voidFPPvRCPv();
extern "C" void _savegpr_23();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_23();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" int memcmp(const void*, const void*, u32);
extern "C" extern void* __vt__Q37JGadget6binary19TParse_header_block[5];
extern "C" extern void* __vt__Q27JStudio22TFunctionValue_hermite[8];
extern "C" extern void* __vt__Q27JStudio29TFunctionValue_list_parameter[8];
extern "C" extern void* __vt__Q27JStudio19TFunctionValue_list[8];
extern "C" extern void* __vt__Q27JStudio25TFunctionValue_transition[8];
extern "C" extern void* __vt__Q27JStudio23TFunctionValue_constant[8];
extern "C" extern void* __vt__Q27JStudio24TFunctionValue_composite[8];
extern "C" f32 ga4cSignature__Q37JStudio3fvb4data[1 + 1 /* padding */];
//
// Declarations:
//
/* ############################################################################################## */
/* 803C49C0-803C4A1C -00001 005C+00 1/1 0/0 0/0 .data @838 */
SECTION_DATA static void* lit_838[23] = {
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1F8),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0xA0),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0xC0),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x128),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x17C),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x198),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1AC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1C0),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1DC),
};
/* 803C4A1C-803C4A30 021B3C 0014+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb6TParse */
SECTION_DATA extern void* __vt__Q37JStudio3fvb6TParse[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb6TParseFv,
(void*)parseHeader_next__Q37JStudio3fvb6TParseFPPCvPUlUl,
(void*)parseBlock_next__Q37JStudio3fvb6TParseFPPCvPUlUl,
};
/* 803C4A30-803C4A44 021B50 0014+00 1/1 1/1 0/0 .data __vt__Q37JStudio3fvb8TFactory */
SECTION_DATA extern void* __vt__Q37JStudio3fvb8TFactory[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb8TFactoryFv,
(void*)create__Q37JStudio3fvb8TFactoryFRCQ47JStudio3fvb4data13TParse_TBlock,
(void*)destroy__Q37JStudio3fvb8TFactoryFPQ37JStudio3fvb7TObject,
};
/* 803C4A44-803C4A50 021B64 000C+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb8TControl */
SECTION_DATA extern void* __vt__Q37JStudio3fvb8TControl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb8TControlFv,
};
/* 803C4A50-803C4A60 021B70 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb15TObject_hermite */
SECTION_DATA extern void* __vt__Q37JStudio3fvb15TObject_hermite[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb15TObject_hermiteFv,
(void*)
prepare_data___Q37JStudio3fvb15TObject_hermiteFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4A60-803C4A70 021B80 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb22TObject_list_parameter
*/
SECTION_DATA extern void* __vt__Q37JStudio3fvb22TObject_list_parameter[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb22TObject_list_parameterFv,
(void*)
prepare_data___Q37JStudio3fvb22TObject_list_parameterFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4A70-803C4A80 021B90 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb12TObject_list
*/
SECTION_DATA extern void* __vt__Q37JStudio3fvb12TObject_list[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb12TObject_listFv,
(void*)
prepare_data___Q37JStudio3fvb12TObject_listFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4A80-803C4A90 021BA0 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb18TObject_transition */
SECTION_DATA extern void* __vt__Q37JStudio3fvb18TObject_transition[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb18TObject_transitionFv,
(void*)
prepare_data___Q37JStudio3fvb18TObject_transitionFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4A90-803C4AA0 021BB0 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb16TObject_constant */
SECTION_DATA extern void* __vt__Q37JStudio3fvb16TObject_constant[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb16TObject_constantFv,
(void*)
prepare_data___Q37JStudio3fvb16TObject_constantFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4AA0-803C4AB0 021BC0 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb17TObject_composite */
SECTION_DATA extern void* __vt__Q37JStudio3fvb17TObject_composite[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb17TObject_compositeFv,
(void*)
prepare_data___Q37JStudio3fvb17TObject_compositeFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4AB0-803C4AC0 021BD0 0010+00 7/7 0/0 0/0 .data __vt__Q37JStudio3fvb7TObject */
SECTION_DATA extern void* __vt__Q37JStudio3fvb7TObject[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
namespace JStudio {
namespace fvb {
TObject::~TObject() {}
#ifdef NONMATCHING
void TObject::prepare(data::TParse_TBlock const& rBlock, TControl* pControl) {
ASSERT(pfv_ != 0);
ASSERT(pControl != 0);
TFunctionValueAttributeSet set = pfv_->getAttributeSet();
const void* pNext = rBlock.getNext();
const void* pData = rBlock.getContent();
while (pData < pNext) {
data::TParse_TParagraph para(pData);
data::TParse_TParagraph::TData dat;
para.getData(&dat);
u32 u32Type = dat.u32Type;
u32 u32Size = dat.u32Size;
const void* pContent = dat.pContent;
switch (u32Type) {
case 0:
pfv_->prepare();
return;
case 1:
prepare_data_(dat, pControl);
break;
case 0x10: {
JUT_EXPECT(u32Size >= 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_refer* pfvaRefer = set.refer_get();
JUT_EXPECT(pfvaRefer != NULL);
if (pfvaRefer == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
JGadget::TVector_pointer<TFunctionValue*>& rCnt = pfvaRefer->refer_referContainer();
data::TParse_TParagraph::TData** pBegin =
(data::TParse_TParagraph::TData**)rCnt.pBegin_;
// todo: these definitely use a different struct
for (data::TParse_TParagraph::TData* i = *pBegin; i != NULL; i = *pBegin) {
TObject* pObject = pControl->getObject(pContent, i->u32Size);
if (pObject == NULL) {
JUTWarn w;
w << "object not found by ID";
} else {
TFunctionValue* const& rfv = pObject->referFunctionValue();
rCnt.push_back(rfv);
}
*pBegin += align_roundUp(i->u32Size, 4);
}
}
} break;
case 0x11: {
JUT_EXPECT(u32Size >= 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_refer* pfvaRefer = set.refer_get();
JUT_EXPECT(pfvaRefer != NULL);
if (pfvaRefer == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
JGadget::TVector_pointer<TFunctionValue*>& rCnt = pfvaRefer->refer_referContainer();
data::TParse_TParagraph::TData** pBegin =
(data::TParse_TParagraph::TData**)rCnt.pBegin_;
for (data::TParse_TParagraph::TData* i = *pBegin; i != NULL; i = *pBegin) {
TObject* pObject = pControl->getObject_index(u32Size);
if (pObject == NULL) {
JUTWarn w;
w << "object not found by index : " << u32Size;
} else {
TFunctionValue* const& rfv = pObject->referFunctionValue();
rCnt.push_back(rfv);
}
*pBegin += align_roundUp(i->u32Size, 4);
}
}
} break;
case 0x12: {
JUT_EXPECT(u32Size == 8);
ASSERT(pContent != 0);
TFunctionValueAttribute_range* pfvaRange = set.range_get();
JUT_EXPECT(pfvaRange != NULL);
if (pfvaRange == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
f64* arr = (f64*)pContent;
pfvaRange->range_set(arr[0], arr[1]);
}
} break;
case 0x13: {
JUT_EXPECT(u32Size == 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_range* pfvaRange = set.range_get();
JUT_EXPECT(pfvaRange != NULL);
if (pfvaRange == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
TFunctionValue::TEProgress prog = *(TFunctionValue::TEProgress*)pContent;
pfvaRange->range_setProgress(prog);
}
} break;
case 0x14: {
JUT_EXPECT(u32Size == 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_range* pfvaRange = set.range_get();
JUT_EXPECT(pfvaRange != NULL);
if (pfvaRange == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
TFunctionValue::TEAdjust adjust = *(TFunctionValue::TEAdjust*)pContent;
pfvaRange->range_setAdjust(adjust);
}
} break;
case 0x15: {
JUT_EXPECT(u32Size == 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_range* pfvaRange = set.range_get();
JUT_EXPECT(pfvaRange != NULL);
if (pfvaRange == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
TFunctionValue::TEOutside* out = (TFunctionValue::TEOutside*)pContent;
pfvaRange->range_setOutside(out[0], out[1]);
}
} break;
case 0x16: {
JUT_EXPECT(u32Size == 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_interpolate* pfvaInterpolate = set.interpolate_get();
JUT_EXPECT(pfvaInterpolate != NULL);
if (pfvaInterpolate == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
TFunctionValue::TEInterpolate interp = *(TFunctionValue::TEInterpolate*)pContent;
pfvaInterpolate->interpolate_set(interp);
}
} break;
default:
JUTWarn w;
w << "unknown paragraph : " << u32Type;
}
ASSERT(pData != 0);
}
JUT_EXPECT(pData == pNext);
pfv_->prepare();
}
#else
/* 80283FC8-802841EC 27E908 0224+00 2/1 0/0 0/0 .text
* prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void TObject::prepare(data::TParse_TBlock const& param_0, TControl* param_1) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/func_80283FC8.s"
}
#pragma pop
#endif
namespace {
TFunctionValue_composite::TData getCompositeData_raw_(const void* arg1) {
return TFunctionValue_composite::TData(*(const void**)arg1);
}
TFunctionValue_composite::TData getCompositeData_index_(const void* arg1) {
return TFunctionValue_composite::TData(*(u32*)arg1);
}
TFunctionValue_composite::TData getCompositeData_parameter_(const void* arg1) {
return TFunctionValue_composite::TData(*(f32*)arg1);
}
TFunctionValue_composite::TData getCompositeData_add_(const void* arg1) {
return TFunctionValue_composite::TData(*(f32*)arg1);
}
TFunctionValue_composite::TData getCompositeData_subtract_(const void* arg1) {
return TFunctionValue_composite::TData(*(f32*)arg1);
}
TFunctionValue_composite::TData getCompositeData_multiply_(const void* arg1) {
return TFunctionValue_composite::TData(*(f32*)arg1);
}
TFunctionValue_composite::TData getCompositeData_divide_(const void* arg1) {
return TFunctionValue_composite::TData(*(f32*)arg1);
}
} // namespace
} // namespace fvb
} // namespace JStudio
using namespace JStudio::fvb;
/* ############################################################################################## */
/* 8039AA00-8039AA40 -00001 0040+00 1/1 0/0 0/0 .rodata
* saCompositeOperation___Q37JStudio3fvb17@unnamed@fvb_cpp@ */
SECTION_RODATA static void* const data_8039AA00[16] = {
(void*)NULL, (void*)NULL,
(void*)func_80281E5C, (void*)getCompositeData_raw_,
(void*)func_80281EC8, (void*)getCompositeData_index_,
(void*)func_8028202C, (void*)getCompositeData_parameter_,
(void*)func_80282094, (void*)getCompositeData_add_,
(void*)func_80282118, (void*)getCompositeData_subtract_,
(void*)func_80282200, (void*)getCompositeData_multiply_,
(void*)func_80282284, (void*)getCompositeData_divide_,
};
/* 80284240-80284254 27EB80 0014+00 1/1 0/0 0/0 .text
* getCompositeOperation___Q37JStudio3fvb17@unnamed@fvb_cpp@FQ47JStudio3fvb4data11TEComposite */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm data::CompositeOperation* func_80284240(data::TEComposite comp) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/func_80284240.s"
}
#pragma pop
namespace JStudio {
namespace fvb {
#ifdef NONMATCHING
TObject_composite::TObject_composite(const data::TParse_TBlock& block) : TObject(block, &fnValue) {}
#else
// /* 80284254-802842D4 27EB94 0080+00 1/1 0/0 0/0 .text
// * __ct__Q37JStudio3fvb17TObject_compositeFRCQ47JStudio3fvb4data13TParse_TBlock */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JStudio::fvb::TObject_composite::TObject_composite(
JStudio::fvb::data::TParse_TBlock const& param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/__ct__Q37JStudio3fvb17TObject_compositeFRCQ47JStudio3fvb4data13TParse_TBlock.s"
}
#pragma pop
#endif
#ifdef NONMATCHING // incomplete
void TObject_composite::prepare_data_(const data::TParse_TParagraph::TData& rData,
TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32Size == 8);
const TFunctionValue_composite* pContent =
static_cast<const TFunctionValue_composite*>(rData.pContent);
ASSERT(pContent != NULL);
data::CompositeOperation* ops = func_80284240(*(data::TEComposite*)pContent);
data::CompositeOperation pfn = ops[1];
ASSERT(pfn != NULL);
pfn(pContent->data);
fnValue.data_set((TFunctionValue_composite::CompositeFunc)*ops, pContent->data);
}
#else
/* 802842D4-80284338 27EC14 0064+00 1/0 0/0 0/0 .text
* prepare_data___Q37JStudio3fvb17TObject_compositeFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void TObject_composite::prepare_data_(data::TParse_TParagraph::TData const& param_0,
TControl* param_1) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/func_802842D4.s"
}
#pragma pop
#endif
/* 80284338-802843B8 27EC78 0080+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3fvb16TObject_constantFRCQ47JStudio3fvb4data13TParse_TBlock */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm TObject_constant::TObject_constant(data::TParse_TBlock const& param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/__ct__Q37JStudio3fvb16TObject_constantFRCQ47JStudio3fvb4data13TParse_TBlock.s"
}
#pragma pop
void TObject_constant::prepare_data_(const data::TParse_TParagraph::TData& rData,
TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32Size == 4);
const f32* pContent = static_cast<const f32*>(rData.pContent);
ASSERT(pContent != NULL);
fnValue.data_set(pContent[0]);
}
/* 802843C8-80284448 27ED08 0080+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3fvb18TObject_transitionFRCQ47JStudio3fvb4data13TParse_TBlock */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm TObject_transition::TObject_transition(data::TParse_TBlock const& param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/__ct__Q37JStudio3fvb18TObject_transitionFRCQ47JStudio3fvb4data13TParse_TBlock.s"
}
#pragma pop
void TObject_transition::prepare_data_(const data::TParse_TParagraph::TData& rData,
TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32size == 8);
const f32* pContent = static_cast<const f32*>(rData.pContent);
ASSERT(pContent != NULL);
fnValue.data_set(pContent[0], pContent[1]);
}
/* 80284460-802844E0 27EDA0 0080+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3fvb12TObject_listFRCQ47JStudio3fvb4data13TParse_TBlock */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm TObject_list::TObject_list(data::TParse_TBlock const& param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/__ct__Q37JStudio3fvb12TObject_listFRCQ47JStudio3fvb4data13TParse_TBlock.s"
}
#pragma pop
void TObject_list::prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32size >= 8);
const ListData* pContent = static_cast<const ListData*>(rData.pContent);
ASSERT(pContent != NULL);
fnValue.data_setInterval(pContent->_0);
fnValue.data_set(pContent->_8, pContent->_4);
}
/* 80284500-80284580 27EE40 0080+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3fvb22TObject_list_parameterFRCQ47JStudio3fvb4data13TParse_TBlock */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm TObject_list_parameter::TObject_list_parameter(data::TParse_TBlock const& param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/__ct__Q37JStudio3fvb22TObject_list_parameterFRCQ47JStudio3fvb4data13TParse_TBlock.s"
}
#pragma pop
void TObject_list_parameter::prepare_data_(const data::TParse_TParagraph::TData& rData,
TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32size >= 8);
const ListData* pContent = static_cast<const ListData*>(rData.pContent);
ASSERT(pContent != NULL);
fnValue.data_set(pContent->_4, pContent->_0);
}
/* 802845B0-80284630 27EEF0 0080+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3fvb15TObject_hermiteFRCQ47JStudio3fvb4data13TParse_TBlock */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm TObject_hermite::TObject_hermite(data::TParse_TBlock const& param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/__ct__Q37JStudio3fvb15TObject_hermiteFRCQ47JStudio3fvb4data13TParse_TBlock.s"
}
#pragma pop
void TObject_hermite::prepare_data_(const data::TParse_TParagraph::TData& rData,
TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32size >= 8);
const ListData* pContent = static_cast<const ListData*>(rData.pContent);
ASSERT(pContent != NULL);
fnValue.data_set(pContent->_4, pContent->_0 & 0xFFFFFFF, pContent->_0 >> 0x1C);
}
TControl::TControl() : pFactory(NULL) {}
TControl::~TControl() {
JUT_EXPECT(ocObject_.empty());
}
/* 80284704-80284750 27F044 004C+00 1/1 0/0 0/0 .text
* appendObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void TControl::appendObject(TObject* param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/appendObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject.s"
}
#pragma pop
/* 80284750-80284780 27F090 0030+00 1/1 0/0 0/0 .text
* removeObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void TControl::removeObject(TObject* param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/removeObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject.s"
}
#pragma pop
/* 80284780-802847D0 27F0C0 0050+00 1/1 0/0 0/0 .text
* destroyObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void TControl::destroyObject(TObject* param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/destroyObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject.s"
}
#pragma pop
/* 802847D0-80284834 27F110 0064+00 0/0 2/2 0/0 .text destroyObject_all__Q37JStudio3fvb8TControlFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void TControl::destroyObject_all() {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/destroyObject_all__Q37JStudio3fvb8TControlFv.s"
}
#pragma pop
/* 80284834-802848D4 27F174 00A0+00 2/2 1/1 0/0 .text getObject__Q37JStudio3fvb8TControlFPCvUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm TObject* TControl::getObject(void const* param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/getObject__Q37JStudio3fvb8TControlFPCvUl.s"
}
#pragma pop
/* 802848D4-80284918 27F214 0044+00 1/1 1/1 0/0 .text getObject_index__Q37JStudio3fvb8TControlFUl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm TObject* TControl::getObject_index(u32 param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/getObject_index__Q37JStudio3fvb8TControlFUl.s"
}
#pragma pop
TFactory::~TFactory() {}
TObject* TFactory::create(data::TParse_TBlock const& rBlock) {
switch (rBlock.get_type()) {
case 1:
return new TObject_composite(rBlock);
case 2:
return new TObject_constant(rBlock);
case 3:
return new TObject_transition(rBlock);
case 4:
return new TObject_list(rBlock);
case 5:
return new TObject_list_parameter(rBlock);
case 6:
return new TObject_hermite(rBlock);
default:
JUTWarn w;
w << "unknown type : ";
return NULL;
}
}
void TFactory::destroy(TObject* pObject) {
delete pObject;
}
TParse::TParse(TControl* pControl) : pControl_(pControl) {
ASSERT(pControl_ != 0);
}
TParse::~TParse() {}
bool TParse::parseHeader_next(void const** ppData_inout, u32* puBlock_out, u32 flags) {
ASSERT(ppData_inout != 0);
ASSERT(puBlock_out != 0);
const void* pData = *ppData_inout;
ASSERT(pData != 0);
const data::TParse_THeader header(pData);
*ppData_inout = header.getContent();
*puBlock_out = header.get_blockNumber();
if (memcmp(header.get_signature(), &data::ga4cSignature, 4) != 0) {
JUTWarn w;
w << "unknown signature";
return false;
}
if (header.get_byteOrder() != 0xFEFF) {
JUTWarn w;
w << "illegal byte-order";
return false;
}
u16 version = header.get_version();
if (version < 2) {
JUTWarn w;
w << "obselete version : " << (long)0;
return false;
} else if (version > 0x100) {
JUTWarn w;
w << "unknown version : " << version;
return false;
}
return true;
}
bool TParse::parseBlock_next(void const** ppData_inout, u32* puData_out, u32 flags) {
ASSERT(ppData_inout != 0);
ASSERT(puData_out != 0);
const void* pData = *ppData_inout;
ASSERT(pData != 0);
data::TParse_TBlock blk(pData);
*ppData_inout = blk.getNext();
*puData_out = blk.get_size();
TControl* pControl = getControl();
ASSERT(pControl != 0);
if (flags & 0x10) {
if (pControl->getObject(blk.get_ID(), blk.get_IDSize()) != NULL)
return 1;
}
if (flags & 0x20) {
return 1;
}
TFactory* pFactory = pControl->getFactory();
if (pFactory == NULL) {
JUTWarn w;
w << "factory not specified";
return 0;
}
TObject* pObject = pFactory->create(blk);
if (pObject == NULL) {
JUTWarn w;
w << "can't create function-value";
if (flags & 0x40) {
return 1;
}
return 0;
}
pObject->prepare(blk, pControl);
pControl->appendObject(pObject);
return 1;
}
} // namespace fvb
} // namespace JStudio