mirror of https://github.com/zeldaret/tp.git
885 lines
33 KiB
C++
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
|