diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2024-01-26 00:50:55 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-25 14:50:55 -0800 |
| commit | 1ea10fcc63d502aecf0aed02f831dbdb141a1034 (patch) | |
| tree | 9bb101d4d8d9ea2c1b25616c5e2323e7db62dd15 /libs | |
| parent | 4640b758c9cdb3772028bba345df635292133bf1 (diff) | |
More jstudio work (#2048)
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/JSystem/JMessage/processor.cpp | 4 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio/ctb.cpp | 56 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio/jstudio-control.cpp | 349 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio/jstudio-math.cpp | 84 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio/jstudio-object.cpp | 515 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio/stb.cpp | 89 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JAudio2/control.cpp | 2 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JParticle/control.cpp | 2 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JStage/control.cpp | 2 |
9 files changed, 526 insertions, 577 deletions
diff --git a/libs/JSystem/JMessage/processor.cpp b/libs/JSystem/JMessage/processor.cpp index 8d864246cb..02eb2522b5 100644 --- a/libs/JSystem/JMessage/processor.cpp +++ b/libs/JSystem/JMessage/processor.cpp @@ -152,7 +152,7 @@ const JMessage::TResource* JMessage::TProcessor::getResource_groupID(u16 groupID /* 802A7CD4-802A7E38 2A2614 0164+00 0/0 1/1 0/0 .text * toMessageCode_messageID__Q28JMessage10TProcessorCFUlUlPb */ -// TContainerEnumerator_const inline issues + while condition +// TContainerEnumerator_const stack issues #ifdef NONMATCHING u32 JMessage::TProcessor::toMessageCode_messageID(u32 param_0, u32 param_1, bool* param_2) const { @@ -166,7 +166,7 @@ u32 JMessage::TProcessor::toMessageCode_messageID(u32 param_0, u32 param_1, return -1; } - JGadget::TContainerEnumerator_const<TResourceContainer::TCResource, 0> enumerator(this_01->getResourceContainer()); + JGadget::TContainerEnumerator_const<JMessage::TResource, 0> enumerator(this_01->getResourceContainer()); const TResource* this_02; while (!enumerator) { this_02 = (const TResource*)&(*enumerator); diff --git a/libs/JSystem/JStudio/JStudio/ctb.cpp b/libs/JSystem/JStudio/JStudio/ctb.cpp index b3aac66046..e5c55fa1ac 100644 --- a/libs/JSystem/JStudio/JStudio/ctb.cpp +++ b/libs/JSystem/JStudio/JStudio/ctb.cpp @@ -126,8 +126,8 @@ JStudio::ctb::TObject_TxyzRy::TObject_TxyzRy(JStudio::ctb::data::TParse_TBlock c /* 80280FBC-80280FC4 27B8FC 0008+00 1/0 0/0 0/0 .text getScheme__Q37JStudio3ctb14TObject_TxyzRyCFv */ -bool JStudio::ctb::TObject_TxyzRy::getScheme() const { - return true; +int JStudio::ctb::TObject_TxyzRy::getScheme() const { + return 1; } /* 80280FC4-80280FF4 27B904 0030+00 0/0 1/1 0/0 .text __ct__Q37JStudio3ctb8TControlFv */ @@ -146,21 +146,9 @@ extern "C" asm void __dt__Q37JStudio3ctb8TControlFv() { /* 80281060-802810AC 27B9A0 004C+00 1/1 0/0 0/0 .text * appendObject__Q37JStudio3ctb8TControlFPQ37JStudio3ctb7TObject */ -// Push_back stack issues -#ifdef NONMATCHING void JStudio::ctb::TControl::appendObject(JStudio::ctb::TObject* param_0) { mList.Push_back(param_0); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::ctb::TControl::appendObject(JStudio::ctb::TObject* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/ctb/appendObject__Q37JStudio3ctb8TControlFPQ37JStudio3ctb7TObject.s" -} -#pragma pop -#endif /* 802810AC-802810DC 27B9EC 0030+00 1/1 0/0 0/0 .text * removeObject__Q37JStudio3ctb8TControlFPQ37JStudio3ctb7TObject */ @@ -177,36 +165,20 @@ void JStudio::ctb::TControl::destroyObject(JStudio::ctb::TObject* param_0) { /* 8028112C-80281190 27BA6C 0064+00 0/0 2/2 0/0 .text destroyObject_all__Q37JStudio3ctb8TControlFv */ -// Stack -#ifdef NONMATCHING void JStudio::ctb::TControl::destroyObject_all() { - TObject* pTVar1; - int iVar2; - while (!mList.empty()) { destroyObject(&mList.back()); } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::ctb::TControl::destroyObject_all() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/ctb/destroyObject_all__Q37JStudio3ctb8TControlFv.s" -} -#pragma pop -#endif /* 80281190-80281230 27BAD0 00A0+00 1/1 0/0 0/0 .text getObject__Q37JStudio3ctb8TControlFPCvUl */ -// end issues +// TPRObject_ID_equal issues #ifdef NONMATCHING JStudio::ctb::TObject* JStudio::ctb::TControl::getObject(void const* param_0, u32 param_1) { - JGadget::TLinkList<TObject, 2>::iterator local_3c = mList.begin(); - JGadget::TLinkList<TObject, 2>::iterator local_40 = mList.end(); - object::TPRObject_ID_equal aTStack_38(param_0, param_1); - JGadget::TLinkList<TObject, 2>::iterator local_50 = std::find_if(local_3c, local_40, object::TPRObject_ID_equal(param_0, param_1)); - if ((local_50 != local_40) != false) { + JGadget::TLinkList<TObject, -12>::iterator begin = mList.begin(); + JGadget::TLinkList<TObject, -12>::iterator end = mList.end(); + JGadget::TLinkList<TObject, -12>::iterator local_50 = std::find_if(begin, end, object::TPRObject_ID_equal(param_0, param_1)); + if ((local_50 != end) != false) { return &*local_50; } return NULL; @@ -224,26 +196,14 @@ asm JStudio::ctb::TObject* JStudio::ctb::TControl::getObject(void const* param_0 /* 80281230-80281274 27BB70 0044+00 0/0 1/1 0/0 .text getObject_index__Q37JStudio3ctb8TControlFUl */ -// Stack issues -#ifdef NONMATCHING JStudio::ctb::TObject* JStudio::ctb::TControl::getObject_index(u32 param_0) { if (param_0 >= mList.size()) { return 0; } - JGadget::TLinkList<TObject, 2>::iterator aiStack_14 = mList.begin(); + JGadget::TLinkList<TObject, -12>::iterator aiStack_14 = mList.begin(); std::advance(aiStack_14, param_0); return &*aiStack_14; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::ctb::TObject* JStudio::ctb::TControl::getObject_index(u32 param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/ctb/getObject_index__Q37JStudio3ctb8TControlFUl.s" -} -#pragma pop -#endif /* 80281274-802812BC 27BBB4 0048+00 1/0 1/1 0/0 .text __dt__Q37JStudio3ctb8TFactoryFv */ #pragma push diff --git a/libs/JSystem/JStudio/JStudio/jstudio-control.cpp b/libs/JSystem/JStudio/JStudio/jstudio-control.cpp index f0cf420792..249e45696b 100644 --- a/libs/JSystem/JStudio/JStudio/jstudio-control.cpp +++ b/libs/JSystem/JStudio/JStudio/jstudio-control.cpp @@ -4,8 +4,11 @@ // #include "JSystem/JStudio/JStudio/jstudio-control.h" +#include "JSystem/JStudio/JStudio/jstudio-math.h" +#include "JSystem/JStudio/JStudio/jstudio-data.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "string.h" // // Forward References: @@ -64,276 +67,208 @@ extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void memcmp(); extern "C" extern void* __vt__Q27JStudio13TCreateObject[4]; extern "C" u8 ga8cSignature__Q27JStudio4data[8]; -// -// Declarations: -// - -/* ############################################################################################## */ -/* 8039AA40-8039AA4C 0270A0 000C+00 1/1 0/0 0/0 .rodata @745 */ -SECTION_RODATA static u8 const lit_745[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8039AA40, &lit_745); - -/* 803C4AC0-803C4AE0 021BE0 0020+00 2/2 0/0 0/0 .data __vt__Q27JStudio6TParse */ -SECTION_DATA extern void* __vt__Q27JStudio6TParse[8] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__Q27JStudio6TParseFv, - (void*)parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl, - (void*)parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl, - (void*)parseHeader__Q27JStudio6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl, - (void*)parseBlock_block__Q27JStudio6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl, - (void*)parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl, -}; - -/* 803C4AE0-803C4AF4 021C00 0014+00 1/1 1/1 0/0 .data __vt__Q27JStudio8TFactory */ -SECTION_DATA extern void* __vt__Q27JStudio8TFactory[5] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__Q27JStudio8TFactoryFv, - (void*)create__Q27JStudio8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object, - (void*)destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject, -}; - -/* 803C4AF4-803C4B00 021C14 000C+00 2/2 0/0 0/0 .data __vt__Q27JStudio8TControl */ -SECTION_DATA extern void* __vt__Q27JStudio8TControl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__Q27JStudio8TControlFv, -}; - -/* 80455458-8045545C 003A58 0004+00 2/2 0/0 0/0 .sdata2 @748 */ -SECTION_SDATA2 static u8 lit_748[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - /* 80285114-802851AC 27FA54 0098+00 0/0 1/1 0/0 .text __ct__Q27JStudio8TControlFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TControl::TControl() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/__ct__Q27JStudio8TControlFv.s" +JStudio::TControl::TControl() { + mTransformOnSet = false; + mTransformOnGet = false; + Vec aVStack_20 = {0.0f,0.0f,0.0f}; + transform_setOrigin_TxyzRy(aVStack_20, 0.0f); } -#pragma pop /* 802851AC-80285228 27FAEC 007C+00 1/0 0/0 0/0 .text __dt__Q27JStudio8TControlFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TControl::~TControl() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/__dt__Q27JStudio8TControlFv.s" -} -#pragma pop +JStudio::TControl::~TControl() {} /* 80285228-80285250 27FB68 0028+00 0/0 1/1 0/0 .text * setFactory__Q27JStudio8TControlFPQ27JStudio8TFactory */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TControl::setFactory(JStudio::TFactory* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/setFactory__Q27JStudio8TControlFPQ27JStudio8TFactory.s" +void JStudio::TControl::setFactory(JStudio::TFactory* factory) { + fvb::TFactory* fvbFactory = NULL; + ctb::TFactory* ctbFactory = NULL; + if (factory != NULL) { + fvbFactory = &factory->fvb_Factory; + ctbFactory = &factory->ctb_Factory; + } + stb::TControl::setFactory(factory); + fvb_Control.setFactory(fvbFactory); + ctb_Control.setFactory(ctbFactory); } -#pragma pop - -/* ############################################################################################## */ -/* 8045545C-80455460 003A5C 0004+00 2/2 0/0 0/0 .sdata2 @772 */ -SECTION_SDATA2 static f32 lit_772 = 0.01745329238474369f; /* 80285250-802852D0 27FB90 0080+00 3/3 1/1 0/0 .text * transformOnSet_setOrigin_TxyzRy__Q27JStudio8TControlFRC3Vecf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TControl::transformOnSet_setOrigin_TxyzRy(Vec const& param_0, f32 param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/transformOnSet_setOrigin_TxyzRy__Q27JStudio8TControlFRC3Vecf.s" +int JStudio::TControl::transformOnSet_setOrigin_TxyzRy(Vec const& param_0, f32 param_1) { + field_0x8c = param_0; + mTransformOnSet_RotationY = param_1; + JStudio::math::getTransformation_RyT(mTransformOnSet_Matrix, param_0, param_1); + return 1; } -#pragma pop /* 802852D0-80285368 27FC10 0098+00 3/3 1/1 0/0 .text * transformOnGet_setOrigin_TxyzRy__Q27JStudio8TControlFRC3Vecf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TControl::transformOnGet_setOrigin_TxyzRy(Vec const& param_0, f32 param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/transformOnGet_setOrigin_TxyzRy__Q27JStudio8TControlFRC3Vecf.s" +int JStudio::TControl::transformOnGet_setOrigin_TxyzRy(Vec const& param_0, f32 param_1) { + field_0x98 = param_0; + field_0xa8 = param_1; + Mtx afStack_48; + MTXTrans(afStack_48, -param_0.x, -param_0.y, -param_0.z); + math::rotate_y(mTransformOnGet_Matrix, afStack_48, -param_1); + return 1; } -#pragma pop - -/* ############################################################################################## */ -/* 8039AA4C-8039AA58 0270AC 000C+00 1/1 0/0 0/0 .rodata @838 */ -SECTION_RODATA static u8 const lit_838[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8039AA4C, &lit_838); /* 80285368-8028543C 27FCA8 00D4+00 1/1 0/0 0/0 .text * transform_setOrigin_ctb__Q27JStudio8TControlFRCQ37JStudio3ctb7TObject */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TControl::transform_setOrigin_ctb(JStudio::ctb::TObject const& param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/transform_setOrigin_ctb__Q27JStudio8TControlFRCQ37JStudio3ctb7TObject.s" +int JStudio::TControl::transform_setOrigin_ctb(JStudio::ctb::TObject const& param_0) { + switch (param_0.getScheme()) { + case 1: + const f32* pfVar4 = (const f32*)param_0.getData(); + Vec local_144 = {0.0f, 0.0f, 0.0f}; + local_144.x = pfVar4[0]; + local_144.y = pfVar4[1]; + local_144.z = pfVar4[2]; + transform_setOrigin_TxyzRy(local_144, pfVar4[3]); + break; + default: + return 0; + } + return 1; } -#pragma pop /* 8028543C-80285488 27FD7C 004C+00 1/1 0/0 0/0 .text * transform_setOrigin_ctb_index__Q27JStudio8TControlFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TControl::transform_setOrigin_ctb_index(u32 param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/transform_setOrigin_ctb_index__Q27JStudio8TControlFUl.s" +bool JStudio::TControl::transform_setOrigin_ctb_index(u32 index) { + ctb::TObject* object = ctb_getObject_index(index); + if (object == NULL) { + return false; + } + transform_setOrigin_ctb(*object); + return true; } -#pragma pop /* 80285488-802854D0 27FDC8 0048+00 0/0 4/4 0/0 .text __dt__Q27JStudio13TCreateObjectFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TCreateObject::~TCreateObject() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/__dt__Q27JStudio13TCreateObjectFv.s" -} -#pragma pop +JStudio::TCreateObject::~TCreateObject() {} /* 802854D0-80285560 27FE10 0090+00 1/0 0/0 0/0 .text __dt__Q27JStudio8TFactoryFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm JStudio::TFactory::~TFactory() { -extern "C" asm void __dt__Q27JStudio8TFactoryFv() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/__dt__Q27JStudio8TFactoryFv.s" -} -#pragma pop +JStudio::TFactory::~TFactory() {} /* 80285560-802855AC 27FEA0 004C+00 0/0 1/1 0/0 .text * appendCreateObject__Q27JStudio8TFactoryFPQ27JStudio13TCreateObject */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TFactory::appendCreateObject(JStudio::TCreateObject* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/appendCreateObject__Q27JStudio8TFactoryFPQ27JStudio13TCreateObject.s" +void JStudio::TFactory::appendCreateObject(JStudio::TCreateObject* param_0) { + mList.Push_back(param_0); } -#pragma pop /* 802855AC-8028566C 27FEEC 00C0+00 1/0 0/0 0/0 .text * create__Q27JStudio8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TFactory::create(JStudio::stb::data::TParse_TBlock_object const& param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/create__Q27JStudio8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object.s" +JStudio::TObject* JStudio::TFactory::create(JStudio::stb::data::TParse_TBlock_object const& param_0) { + JGadget::TContainerEnumerator<TCreateObject, -4> aTStack_368(&mList); + while(aTStack_368) { + TCreateObject& piVar1 = *aTStack_368; + JStudio::TObject* obj; + if (piVar1.create(&obj, param_0)) { + return obj; + } + } + return NULL; } -#pragma pop /* 8028566C-802856A8 27FFAC 003C+00 0/0 1/1 0/0 .text __ct__Q27JStudio6TParseFPQ27JStudio8TControl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TParse::TParse(JStudio::TControl* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/__ct__Q27JStudio6TParseFPQ27JStudio8TControl.s" +JStudio::TParse::TParse(JStudio::TControl* param_0) : stb::TParse(param_0) { } -#pragma pop /* 802856A8-80285708 27FFE8 0060+00 1/0 1/1 0/0 .text __dt__Q27JStudio6TParseFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm JStudio::TParse::~TParse() { -extern "C" asm void __dt__Q27JStudio6TParseFv() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/__dt__Q27JStudio6TParseFv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 8039AA58-8039AA68 0270B8 000C+04 1/1 0/0 0/0 .rodata @1138 */ -SECTION_RODATA static u8 const lit_1138[12 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8039AA58, &lit_1138); +JStudio::TParse::~TParse() {} /* 80285708-802857E4 280048 00DC+00 1/0 0/0 0/0 .text * parseHeader__Q27JStudio6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TParse::parseHeader(JStudio::stb::data::TParse_THeader const& param_0, +bool JStudio::TParse::parseHeader(JStudio::stb::data::TParse_THeader const& param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/parseHeader__Q27JStudio6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl.s" + const JStudio::stb::data::THeader::Target& target = param_0.get_target(); + if (memcmp(target.name, JStudio::data::ga8cSignature, sizeof(JStudio::data::ga8cSignature)) != 0) { + return false; + } + if (target.target_version < 2) { + return false; + } + if (target.target_version > 6) { + return false; + } + JStudio::TControl* pControl = getControl(); + JUT_ASSERT(322, pControl!=0); + if ((param_1 & 0x100) == 0) { + Vec local_468 = {0.0f, 0.0f, 0.0f}; + pControl->transform_setOrigin_TxyzRy(local_468, 0.0f); + pControl->transform_enable(false); + } + return true; } -#pragma pop /* 802857E4-80285844 280124 0060+00 1/0 0/0 0/0 .text * parseBlock_block__Q27JStudio6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TParse::parseBlock_block(JStudio::stb::data::TParse_TBlock const& param_0, +bool JStudio::TParse::parseBlock_block(JStudio::stb::data::TParse_TBlock const& param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/parseBlock_block__Q27JStudio6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl.s" + switch(param_0.get_type()) { + case 'JFVB': + return parseBlock_block_fvb_(param_0, param_1); + case 'JCTB': + return parseBlock_block_ctb_(param_0, param_1); + default: + return stb::TParse::parseBlock_block(param_0, param_1); + } } -#pragma pop /* 80285844-802858F0 280184 00AC+00 1/1 0/0 0/0 .text * parseBlock_block_fvb___Q27JStudio6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TParse::parseBlock_block_fvb_(JStudio::stb::data::TParse_TBlock const& param_0, +bool JStudio::TParse::parseBlock_block_fvb_(JStudio::stb::data::TParse_TBlock const& param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/func_80285844.s" + TControl* pControl = getControl(); + JUT_ASSERT(361, pControl!=0); + const void* pContent = param_0.getContent(); + JUT_ASSERT(363, pContent!=0); + u32 uVar4 = param_1 & 0xf; + if ((param_1 & 0x10) != 0) { + uVar4 |= 0x10; + } + if ((param_1 & 0x20) != 0) { + uVar4 |= 0x20; + } + if ((param_1 & 0x40) != 0) { + uVar4 |= 0x40; + } + fvb::TParse aTStack_30(&pControl->fvb_Control); + if (!aTStack_30.parse(pContent, uVar4)) { + return false; + } + return true; } -#pragma pop /* 802858F0-802859DC 280230 00EC+00 1/1 0/0 0/0 .text * parseBlock_block_ctb___Q27JStudio6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TParse::parseBlock_block_ctb_(JStudio::stb::data::TParse_TBlock const& param_0, +bool JStudio::TParse::parseBlock_block_ctb_(JStudio::stb::data::TParse_TBlock const& param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-control/func_802858F0.s" + TControl* pControl = getControl(); + JUT_ASSERT(386, pControl!=0); + const void* pContent = param_0.getContent(); + JUT_ASSERT(388, pContent!=0); + u32 uVar4 = param_1 & 0xf; + if ((param_1 & 0x10) != 0) { + uVar4 |= 0x10; + } + if ((param_1 & 0x20) != 0) { + uVar4 |= 0x20; + } + if ((param_1 & 0x40) != 0) { + uVar4 |= 0x40; + } + ctb::TParse aTStack_30(&pControl->ctb_Control); + if (!aTStack_30.parse(pContent, uVar4)) { + return false; + } + if ((param_1 & 0x200) == 0) { + if (pControl->transform_setOrigin_ctb_index(0) == 0) { + return 0; + } + pControl->transform_enable(true); + } + return true; } -#pragma pop diff --git a/libs/JSystem/JStudio/JStudio/jstudio-math.cpp b/libs/JSystem/JStudio/JStudio/jstudio-math.cpp index 9507339b0c..c5d79f45b7 100644 --- a/libs/JSystem/JStudio/JStudio/jstudio-math.cpp +++ b/libs/JSystem/JStudio/JStudio/jstudio-math.cpp @@ -4,7 +4,10 @@ // #include "JSystem/JStudio/JStudio/jstudio-math.h" +#include "JSystem/TPosition3.hh" +#include "JSystem/JGeometry.h" #include "dol2asm.h" +#include "math.h" // // Forward References: @@ -22,11 +25,6 @@ extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void cos(); -extern "C" void sin(); -extern "C" void asin(); -extern "C" void atan2(); -extern "C" extern u32 __float_epsilon; // // Declarations: @@ -45,6 +43,34 @@ SECTION_SDATA2 static u8 lit_489[4] = { }; /* 802859DC-80285B44 28031C 0168+00 1/1 0/0 0/0 .text getRotation_xyz__Q27JStudio4mathFPA4_ffff */ +// regalloc +#ifdef NONMATCHING +void JStudio::math::getRotation_xyz(MtxP param_1, f32 x, f32 y, f32 z) { + f32 cosx = cos(DEG_TO_RAD(x)); + f32 sinx = sin(DEG_TO_RAD(x)); + f32 cosy = cos(DEG_TO_RAD(y)); + f32 siny = sin(DEG_TO_RAD(y)); + f32 cosz = cos(DEG_TO_RAD(z)); + f32 sinz = sin(DEG_TO_RAD(z)); + f32 cosxcosz = cosx * cosz; + f32 cosxsinz = cosx * sinz; + f32 sinxcosz = sinx * cosz; + f32 sinxsinz = sinx * sinz; + + param_1[0][0] = cosy * cosz; + param_1[1][0] = cosy * sinz; + param_1[2][0] = -siny; + param_1[2][1] = sinx * cosy; + param_1[2][2] = cosx * cosy; + param_1[0][1] = ((sinxcosz * siny) - cosxsinz); + param_1[0][2] = (sinxsinz + (cosxcosz * siny)); + param_1[1][1] = (cosxcosz + (sinxsinz * siny)); + param_1[1][2] = (((cosxsinz) * siny) - sinxcosz); + param_1[0][3] = 0.0f; + param_1[1][3] = 0.0f; + param_1[2][3] = 0.0f; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -53,18 +79,18 @@ asm void JStudio::math::getRotation_xyz(MtxP param_0, f32 param_1, f32 param_2, #include "asm/JSystem/JStudio/JStudio/jstudio-math/getRotation_xyz__Q27JStudio4mathFPA4_ffff.s" } #pragma pop +#endif /* 80285B44-80285BCC 280484 0088+00 0/0 2/2 0/0 .text * getTransformation_SRxyzT__Q27JStudio4mathFPA4_fRC3VecRC3VecRC3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::math::getTransformation_SRxyzT(MtxP param_0, Vec const& param_1, - Vec const& param_2, Vec const& param_3) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-math/getTransformation_SRxyzT__Q27JStudio4mathFPA4_fRC3VecRC3VecRC3Vec.s" +void JStudio::math::getTransformation_SRxyzT(MtxP param_1, Vec const& param_2, Vec const& param_3, + Vec const& param_4) { + Mtx afStack_40; + MTXScale(afStack_40, param_2.x, param_2.y, param_2.z); + Mtx amStack_70; + rotate_xyz(afStack_40, amStack_70, param_3); + MTXTransApply(amStack_70, param_1, param_4.x, param_4.y, param_4.z); } -#pragma pop /* ############################################################################################## */ /* 80455470-80455478 003A70 0008+00 1/1 0/0 0/0 .sdata2 @623 */ @@ -93,6 +119,37 @@ SECTION_SDATA2 static f64 lit_628 = 57.29577951308232; /* 80285BCC-80285E0C 28050C 0240+00 0/0 2/2 0/0 .text * getFromTransformation_SRxyzT__Q27JStudio4mathFP3VecP3VecP3VecPA4_Cf */ +// getEulerXYZ is not inlined +#ifdef NONMATCHING +void JStudio::math::getFromTransformation_SRxyzT(Vec* param_1, Vec* param_2, Vec* param_3, + CMtxP param_4) { + getFromTransformation_S(param_4, param_1); + getFromTransformation_T(param_4, param_3); + JGeometry::TRotation3<JGeometry::SMatrix33C<double> > aTStack_88; + JGeometry::TVec3<double> local_a0; + double dVar9 = 0.0; + double dVar8 = 0.0; + double dVar7 = 0.0; + if (0.0f != param_1->x) { + dVar9 = 1.0 / param_1->x; + } + if (0.0f != param_1->y) { + dVar8 = 1.0 / param_1->y; + } + if (0.0f != param_1->z) { + dVar7 = 1.0 / param_1->z; + } + aTStack_88.set( param_4[0][0] * dVar9, + param_4[0][1] * dVar8, param_4[0][2] * dVar7, param_4[1][0] * dVar9, + param_4[1][2] * dVar8, param_4[1][3] * dVar7, param_4[2][0] * dVar9, + param_4[2][1] * dVar8, param_4[2][2] * dVar7); + aTStack_88.getEulerXYZ(&local_a0); + local_a0 *= 57.29577951308232; + param_2->x = local_a0.x; + param_2->y = local_a0.y; + param_2->z = local_a0.z; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -102,3 +159,4 @@ asm void JStudio::math::getFromTransformation_SRxyzT(Vec* param_0, Vec* param_1, #include "asm/JSystem/JStudio/JStudio/jstudio-math/getFromTransformation_SRxyzT__Q27JStudio4mathFP3VecP3VecP3VecPA4_Cf.s" } #pragma pop +#endif diff --git a/libs/JSystem/JStudio/JStudio/jstudio-object.cpp b/libs/JSystem/JStudio/JStudio/jstudio-object.cpp index 0decf41b53..e393dfb62f 100644 --- a/libs/JSystem/JStudio/JStudio/jstudio-object.cpp +++ b/libs/JSystem/JStudio/JStudio/jstudio-object.cpp @@ -1320,25 +1320,20 @@ asm JStudio::TVariableValue::TOutput::~TOutput() { /* 80285E54-80285EB8 280794 0064+00 1/1 0/0 0/0 .text * update__Q27JStudio14TVariableValueFdPQ27JStudio8TAdaptor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TVariableValue::update(f64 param_0, JStudio::TAdaptor* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/update__Q27JStudio14TVariableValueFdPQ27JStudio8TAdaptor.s" +void JStudio::TVariableValue::update(f64 param_0, JStudio::TAdaptor* param_1) { + if (field_0x8) { + field_0x8(this, param_0); + JUT_ASSERT(200, pOutput_!=0); + (*pOutput_)(mValue, param_1); + } } -#pragma pop /* 80285EB8-80285ECC 2807F8 0014+00 4/4 4/4 0/0 .text * update_immediate___Q27JStudio14TVariableValueFPQ27JStudio14TVariableValued */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TVariableValue::update_immediate_(JStudio::TVariableValue* param_0, f64 param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/update_immediate___Q27JStudio14TVariableValueFPQ27JStudio14TVariableValued.s" +void JStudio::TVariableValue::update_immediate_(JStudio::TVariableValue* param_0, f64 param_1) { + param_0->mValue = param_0->field_0xc.val; + param_0->field_0x8 = NULL; } -#pragma pop /* ############################################################################################## */ /* 804554A0-804554A8 003AA0 0008+00 3/3 0/0 0/0 .sdata2 @803 */ @@ -1346,26 +1341,16 @@ SECTION_SDATA2 static f64 lit_803 = 4503599627370496.0 /* cast u32 to float */; /* 80285ECC-80285F08 28080C 003C+00 1/1 0/0 0/0 .text * update_time___Q27JStudio14TVariableValueFPQ27JStudio14TVariableValued */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TVariableValue::update_time_(JStudio::TVariableValue* param_0, f64 param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/update_time___Q27JStudio14TVariableValueFPQ27JStudio14TVariableValued.s" +void JStudio::TVariableValue::update_time_(JStudio::TVariableValue* param_0, f64 param_1) { + param_0->mValue = param_0->field_0xc.val * (param_0->field_0x4 * param_1); } -#pragma pop /* 80285F08-80285F6C 280848 0064+00 2/2 0/0 0/0 .text * update_functionValue___Q27JStudio14TVariableValueFPQ27JStudio14TVariableValued */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TVariableValue::update_functionValue_(JStudio::TVariableValue* param_0, +void JStudio::TVariableValue::update_functionValue_(JStudio::TVariableValue* param_0, f64 param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_80285F08.s" + param_0->mValue = param_0->field_0xc.fv->getValue(param_0->field_0x4 * param_1); } -#pragma pop /* 80285F6C-80285FCC 2808AC 0060+00 2/1 0/0 0/0 .text * __dt__Q37JStudio14TVariableValue13TOutput_none_Fv */ @@ -1386,14 +1371,7 @@ void JStudio::TVariableValue::TOutput_none_::operator()(f32 param_0, } /* 80285FD0-80286018 280910 0048+00 8/8 0/0 0/0 .text __dt__Q27JStudio8TAdaptorFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TAdaptor::~TAdaptor() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/__dt__Q27JStudio8TAdaptorFv.s" -} -#pragma pop +JStudio::TAdaptor::~TAdaptor() {} /* 80286018-8028601C 280958 0004+00 8/0 2/0 0/0 .text adaptor_do_prepare__Q27JStudio8TAdaptorFv */ // void JStudio::TAdaptor::adaptor_do_prepare() { @@ -1426,6 +1404,36 @@ void JStudio::TAdaptor::adaptor_do_data(void const* param_0, u32 param_1, void c /* 8028602C-802860CC 28096C 00A0+00 8/7 0/0 0/0 .text * adaptor_setVariableValue__Q27JStudio8TAdaptorFPQ27JStudio8TControlUlQ37JStudio4data15TEOperationDataPCvUl */ +// Matches with literals +#ifdef NONMATCHING +void JStudio::TAdaptor::adaptor_setVariableValue(JStudio::TControl* pControl, u32 param_2, + JStudio::data::TEOperationData param_3, + void const* param_4, u32 param_5) { + setVarFunc func; + JUT_ASSERT(304, pControl!=0); + switch (param_3) { + case JStudio::data::UNK_0x1: + func = &adaptor_setVariableValue_VOID_; + break; + case JStudio::data::UNK_0x2: + func = &adaptor_setVariableValue_IMMEDIATE_; + break; + case JStudio::data::UNK_0x3: + func = &adaptor_setVariableValue_TIME_; + break; + case JStudio::data::UNK_0x10: + func = &adaptor_setVariableValue_FVR_NAME_; + break; + case JStudio::data::UNK_0x12: + func = &adaptor_setVariableValue_FVR_INDEX_; + break; + default: + return; + } + + (*func)(this, pControl, param_2, param_4, param_5); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1436,198 +1444,182 @@ asm void JStudio::TAdaptor::adaptor_setVariableValue(JStudio::TControl* param_0, #include "asm/JSystem/JStudio/JStudio/jstudio-object/func_8028602C.s" } #pragma pop +#endif /* 802860CC-802861C0 280A0C 00F4+00 7/7 0/0 0/0 .text * adaptor_setVariableValue_n__Q27JStudio8TAdaptorFPQ27JStudio8TControlPCUlUlQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_setVariableValue_n(JStudio::TControl* param_0, - u32 const* param_1, u32 param_2, - JStudio::data::TEOperationData param_3, - void const* param_4, u32 param_5) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_802860CC.s" +void JStudio::TAdaptor::adaptor_setVariableValue_n(JStudio::TControl* pControl, + u32 const* param_2, u32 param_3, + JStudio::data::TEOperationData param_4, + void const* param_5, u32 param_6) { + JUT_ASSERT(343, pControl!=0); + setVarFunc pcVar6; + u32 iVar7; + switch(param_4) { + case JStudio::data::UNK_0x1: + iVar7 = 0; + pcVar6 = adaptor_setVariableValue_VOID_; + break; + case JStudio::data::UNK_0x2: + iVar7 = 4; + pcVar6 = adaptor_setVariableValue_IMMEDIATE_; + break; + case JStudio::data::UNK_0x3: + iVar7 = 4; + pcVar6 = adaptor_setVariableValue_TIME_; + break; + case JStudio::data::UNK_0x12: + iVar7 = 4; + pcVar6 = adaptor_setVariableValue_FVR_INDEX_; + break; + default: + return; + } + + JGadget::TEnumerator<const u32*> enumerator(param_2, param_2 + param_3); + while (enumerator) { + (*pcVar6)(this, pControl, **enumerator, param_5, iVar7); + param_5 = (const void*)((int)param_5 + iVar7); + } } -#pragma pop /* 802861C0-80286204 280B00 0044+00 0/0 2/2 0/0 .text * adaptor_setVariableValue_immediate__Q27JStudio8TAdaptorFPCQ37JStudio8TAdaptor27TSetVariableValue_immediate */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_setVariableValue_immediate( +void JStudio::TAdaptor::adaptor_setVariableValue_immediate( JStudio::TAdaptor::TSetVariableValue_immediate const* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_802861C0.s" + u32 uVar1; + while ((uVar1 = param_0->field_0x0) != 0xffffffff) { + adaptor_setVariableValue_immediate(uVar1, param_0->field_0x4); + param_0++; + } } -#pragma pop /* 80286204-80286274 280B44 0070+00 0/0 4/4 0/0 .text * adaptor_setVariableValue_Vec__Q27JStudio8TAdaptorFPCUlRC3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_setVariableValue_Vec(u32 const* param_0, Vec const& param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/adaptor_setVariableValue_Vec__Q27JStudio8TAdaptorFPCUlRC3Vec.s" +void JStudio::TAdaptor::adaptor_setVariableValue_Vec(u32 const* puIndex, Vec const& param_2) { + JUT_ASSERT(400, puIndex!=0); + adaptor_referVariableValue(puIndex[0])->setValue_immediate(param_2.x); + adaptor_referVariableValue(puIndex[1])->setValue_immediate(param_2.y); + adaptor_referVariableValue(puIndex[2])->setValue_immediate(param_2.z); } -#pragma pop /* 80286274-802862AC 280BB4 0038+00 0/0 6/6 0/0 .text * adaptor_getVariableValue_Vec__Q27JStudio8TAdaptorCFP3VecPCUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_getVariableValue_Vec(Vec* param_0, u32 const* param_1) const { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/adaptor_getVariableValue_Vec__Q27JStudio8TAdaptorCFP3VecPCUl.s" +void JStudio::TAdaptor::adaptor_getVariableValue_Vec(Vec* param_1, u32 const* param_2) const { + param_1->x = adaptor_getVariableValue(param_2[0])->getValue(); + param_1->y = adaptor_getVariableValue(param_2[1])->getValue(); + param_1->z = adaptor_getVariableValue(param_2[2])->getValue(); } -#pragma pop /* 802862AC-8028638C 280BEC 00E0+00 0/0 3/3 0/0 .text * adaptor_setVariableValue_GXColor__Q27JStudio8TAdaptorFPCUlRC8_GXColor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_setVariableValue_GXColor(u32 const* param_0, - GXColor const& param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/adaptor_setVariableValue_GXColor__Q27JStudio8TAdaptorFPCUlRC8_GXColor.s" +void JStudio::TAdaptor::adaptor_setVariableValue_GXColor(u32 const* puIndex, + GXColor const& param_2) { + JUT_ASSERT(431, puIndex!=0); + adaptor_referVariableValue(puIndex[0])->setValue_immediate(param_2.r); + adaptor_referVariableValue(puIndex[1])->setValue_immediate(param_2.g); + adaptor_referVariableValue(puIndex[2])->setValue_immediate(param_2.b); + adaptor_referVariableValue(puIndex[3])->setValue_immediate(param_2.a); } -#pragma pop - -/* ############################################################################################## */ -/* 804554A8-804554AC 003AA8 0004+00 1/1 0/0 0/0 .sdata2 @1094 */ -SECTION_SDATA2 static u8 lit_1094[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 804554AC-804554B0 003AAC 0004+00 1/1 0/0 0/0 .sdata2 @1095 */ -SECTION_SDATA2 static f32 lit_1095 = 255.0f; /* 8028638C-802864D8 280CCC 014C+00 0/0 4/4 0/0 .text * adaptor_getVariableValue_GXColor__Q27JStudio8TAdaptorCFP8_GXColorPCUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_getVariableValue_GXColor(GXColor* param_0, - u32 const* param_1) const { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/adaptor_getVariableValue_GXColor__Q27JStudio8TAdaptorCFP8_GXColorPCUl.s" +void JStudio::TAdaptor::adaptor_getVariableValue_GXColor(GXColor* param_1, + u32 const* param_2) const { + param_1->r = adaptor_getVariableValue(param_2[0])->getValue_uint8(); + param_1->g = adaptor_getVariableValue(param_2[1])->getValue_uint8(); + param_1->b = adaptor_getVariableValue(param_2[2])->getValue_uint8(); + param_1->a = adaptor_getVariableValue(param_2[3])->getValue_uint8(); } -#pragma pop /* 802864D8-8028656C 280E18 0094+00 1/1 0/0 0/0 .text * adaptor_updateVariableValue__Q27JStudio8TAdaptorFPQ27JStudio8TControlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_updateVariableValue(JStudio::TControl* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/adaptor_updateVariableValue__Q27JStudio8TAdaptorFPQ27JStudio8TControlUl.s" +void JStudio::TAdaptor::adaptor_updateVariableValue(JStudio::TControl* pControl, u32 param_2) { + JUT_ASSERT(479, pControl!=0); + f64 dVar3 = pControl->getSecondPerFrame(); + JGadget::TEnumerator<JStudio::TVariableValue*> enumerator(pValue_, pValue_ + u); + while (enumerator) { + JStudio::TVariableValue* value = *enumerator; + value->forward(param_2); + value->update(dVar3, this); + } } -#pragma pop /* 8028656C-80286584 280EAC 0018+00 2/2 0/0 0/0 .text * adaptor_setVariableValue_VOID___Q27JStudio8TAdaptorFPQ27JStudio8TAdaptorPQ27JStudio8TControlUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_setVariableValue_VOID_(JStudio::TAdaptor* param_0, - JStudio::TControl* param_1, u32 param_2, - void const* param_3, u32 param_4) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_8028656C.s" +void JStudio::TAdaptor::adaptor_setVariableValue_VOID_(JStudio::TAdaptor* param_1, + JStudio::TControl* param_2, u32 param_3, + void const* param_4, u32 uSize) { + JUT_ASSERT(499, uSize==0); + param_1->pValue_[param_3].setValue_none(); } -#pragma pop /* 80286584-802865B0 280EC4 002C+00 2/2 0/0 0/0 .text * adaptor_setVariableValue_IMMEDIATE___Q27JStudio8TAdaptorFPQ27JStudio8TAdaptorPQ27JStudio8TControlUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_setVariableValue_IMMEDIATE_(JStudio::TAdaptor* param_0, - JStudio::TControl* param_1, - u32 param_2, void const* param_3, - u32 param_4) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_80286584.s" +void JStudio::TAdaptor::adaptor_setVariableValue_IMMEDIATE_(JStudio::TAdaptor* param_1, + JStudio::TControl* param_2, u32 param_3, + void const* param_4, u32 param_5) { + TVariableValue* value = ¶m_1->pValue_[param_3]; + value->setValue_immediate(*(f32*)param_4); } -#pragma pop /* 802865B0-802865DC 280EF0 002C+00 2/2 0/0 0/0 .text * adaptor_setVariableValue_TIME___Q27JStudio8TAdaptorFPQ27JStudio8TAdaptorPQ27JStudio8TControlUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_setVariableValue_TIME_(JStudio::TAdaptor* param_0, - JStudio::TControl* param_1, u32 param_2, - void const* param_3, u32 param_4) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_802865B0.s" +void JStudio::TAdaptor::adaptor_setVariableValue_TIME_(JStudio::TAdaptor* param_1, + JStudio::TControl* param_2, u32 param_3, + void const* param_4, u32 param_5) { + TVariableValue* value = ¶m_1->pValue_[param_3]; + value->setValue_time(*(f32*)param_4); } -#pragma pop /* 802865DC-80286648 280F1C 006C+00 1/1 0/0 0/0 .text * adaptor_setVariableValue_FVR_NAME___Q27JStudio8TAdaptorFPQ27JStudio8TAdaptorPQ27JStudio8TControlUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_setVariableValue_FVR_NAME_(JStudio::TAdaptor* param_0, - JStudio::TControl* param_1, - u32 param_2, void const* param_3, - u32 param_4) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_802865DC.s" +void JStudio::TAdaptor::adaptor_setVariableValue_FVR_NAME_(JStudio::TAdaptor* param_1, + JStudio::TControl* param_2, u32 param_3, + void const* param_4, u32 param_5) { + TVariableValue* value = ¶m_1->pValue_[param_3]; + value->setValue_functionValue(param_2->getFunctionValue(param_4,param_5)); } -#pragma pop /* 80286648-802866B0 280F88 0068+00 2/2 0/0 0/0 .text * adaptor_setVariableValue_FVR_INDEX___Q27JStudio8TAdaptorFPQ27JStudio8TAdaptorPQ27JStudio8TControlUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TAdaptor::adaptor_setVariableValue_FVR_INDEX_(JStudio::TAdaptor* param_0, - JStudio::TControl* param_1, - u32 param_2, void const* param_3, - u32 param_4) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_80286648.s" +void JStudio::TAdaptor::adaptor_setVariableValue_FVR_INDEX_(JStudio::TAdaptor* param_1, + JStudio::TControl* param_2, u32 param_3, + void const* param_4, u32 param_5) { + TVariableValue* value = ¶m_1->pValue_[param_3]; + value->setValue_functionValue(param_2->getFunctionValue_index(*(u32*)param_4)); } -#pragma pop /* 802866B0-80286734 280FF0 0084+00 8/8 0/0 0/0 .text __dt__Q27JStudio7TObjectFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TObject::~TObject() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/__dt__Q27JStudio7TObjectFv.s" +JStudio::TObject::~TObject() { + delete mpAdaptor; } -#pragma pop /* 80286734-8028679C 281074 0068+00 1/1 0/0 0/0 .text forward_value__Q27JStudio7TObjectFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TObject::forward_value(u32 param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/forward_value__Q27JStudio7TObjectFUl.s" +void JStudio::TObject::forward_value(u32 param_0) { + TAdaptor* adaptor = getAdaptor(); + if (adaptor != NULL) { + adaptor->adaptor_updateVariableValue(getControl(), param_0); + adaptor->adaptor_do_update(param_0); + } } -#pragma pop /* 8028679C-802867D4 2810DC 0038+00 9/0 0/0 0/0 .text do_begin__Q27JStudio7TObjectFv */ +#ifdef NONMATCHING +void JStudio::TObject::do_begin() { + TAdaptor* adaptor = getAdaptor(); + if (adaptor != NULL) { + adaptor->adaptor_do_begin(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1637,52 +1629,42 @@ extern "C" asm void do_begin__Q27JStudio7TObjectFv() { #include "asm/JSystem/JStudio/JStudio/jstudio-object/do_begin__Q27JStudio7TObjectFv.s" } #pragma pop +#endif /* 802867D4-8028680C 281114 0038+00 9/0 0/0 0/0 .text do_end__Q27JStudio7TObjectFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TObject::do_end() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/do_end__Q27JStudio7TObjectFv.s" +void JStudio::TObject::do_end() { + TAdaptor* adaptor = getAdaptor(); + if (adaptor != NULL) { + adaptor->adaptor_do_end(); + } } -#pragma pop /* 8028680C-8028682C 28114C 0020+00 9/0 0/0 0/0 .text do_wait__Q27JStudio7TObjectFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TObject::do_wait(u32 param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/do_wait__Q27JStudio7TObjectFUl.s" +void JStudio::TObject::do_wait(u32 param_0) { + forward_value(param_0); } -#pragma pop /* 8028682C-80286864 28116C 0038+00 9/0 0/0 0/0 .text do_data__Q27JStudio7TObjectFPCvUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio::TObject::do_data(void const* param_0, u32 param_1, void const* param_2, +void JStudio::TObject::do_data(void const* param_0, u32 param_1, void const* param_2, u32 param_3) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/do_data__Q27JStudio7TObjectFPCvUlPCvUl.s" + TAdaptor* adaptor = getAdaptor(); + if (adaptor != NULL) { + adaptor->adaptor_do_data(param_0, param_1, param_2, param_3); + } } -#pragma pop /* 80286864-802868B0 2811A4 004C+00 8/8 0/0 0/0 .text * __ct__Q27JStudio7TObjectFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio8TAdaptor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TObject::TObject(JStudio::stb::data::TParse_TBlock_object const& param_0, - JStudio::TAdaptor* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_80286864.s" -} -#pragma pop +JStudio::TObject::TObject(JStudio::stb::data::TParse_TBlock_object const& param_0, + JStudio::TAdaptor* param_1) + : stb::TObject(param_0), mpAdaptor(param_1) {} /* 802868B0-80286910 2811F0 0060+00 0/0 1/1 0/0 .text __dt__Q27JStudio14TAdaptor_actorFv */ +#ifdef NONMATCHING +JStudio::TAdaptor_actor::~TAdaptor_actor() { +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1691,19 +1673,15 @@ asm JStudio::TAdaptor_actor::~TAdaptor_actor() { #include "asm/JSystem/JStudio/JStudio/jstudio-object/__dt__Q27JStudio14TAdaptor_actorFv.s" } #pragma pop +#endif /* 80286910-8028694C 281250 003C+00 0/0 1/1 0/0 .text * __ct__Q27JStudio13TObject_actorFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio14TAdaptor_actor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TObject_actor::TObject_actor(JStudio::stb::data::TParse_TBlock_object const& param_0, - JStudio::TAdaptor_actor* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_80286910.s" +JStudio::TObject_actor::TObject_actor(JStudio::stb::data::TParse_TBlock_object const& param_0, + JStudio::TAdaptor_actor* param_1) : TObject(param_0, param_1) { + } -#pragma pop /* ############################################################################################## */ /* 8039AA68-8039AA74 0270C8 000C+00 3/3 2/2 0/0 .rodata @@ -1746,6 +1724,9 @@ asm void JStudio::TObject_actor::do_paragraph(u32 param_0, void const* param_1, #pragma pop /* 80286C9C-80286CFC 2815DC 0060+00 0/0 1/1 0/0 .text __dt__Q27JStudio21TAdaptor_ambientLightFv */ +#ifdef NONMATCHING +JStudio::TAdaptor_ambientLight::~TAdaptor_ambientLight() {} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1754,20 +1735,15 @@ asm JStudio::TAdaptor_ambientLight::~TAdaptor_ambientLight() { #include "asm/JSystem/JStudio/JStudio/jstudio-object/__dt__Q27JStudio21TAdaptor_ambientLightFv.s" } #pragma pop +#endif /* 80286CFC-80286D38 28163C 003C+00 0/0 1/1 0/0 .text * __ct__Q27JStudio20TObject_ambientLightFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio21TAdaptor_ambientLight */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TObject_ambientLight::TObject_ambientLight( +JStudio::TObject_ambientLight::TObject_ambientLight( JStudio::stb::data::TParse_TBlock_object const& param_0, - JStudio::TAdaptor_ambientLight* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_80286CFC.s" + JStudio::TAdaptor_ambientLight* param_1) : TObject(param_0, param_1) { } -#pragma pop /* ############################################################################################## */ /* 8039AA74-8039AA80 0270D4 000C+00 0/0 2/2 0/0 .rodata @@ -1812,6 +1788,9 @@ asm void JStudio::TObject_ambientLight::do_paragraph(u32 param_0, void const* pa /* 80286E1C-80286E7C 28175C 0060+00 0/0 1/1 0/0 .text __dt__Q27JStudio15TAdaptor_cameraFv */ +#ifdef NONMATCHING +JStudio::TAdaptor_camera::~TAdaptor_camera() {} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1820,19 +1799,14 @@ asm JStudio::TAdaptor_camera::~TAdaptor_camera() { #include "asm/JSystem/JStudio/JStudio/jstudio-object/__dt__Q27JStudio15TAdaptor_cameraFv.s" } #pragma pop +#endif /* 80286E7C-80286EB8 2817BC 003C+00 0/0 1/1 0/0 .text * __ct__Q27JStudio14TObject_cameraFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio15TAdaptor_camera */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TObject_camera::TObject_camera(JStudio::stb::data::TParse_TBlock_object const& param_0, - JStudio::TAdaptor_camera* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_80286E7C.s" -} -#pragma pop +JStudio::TObject_camera::TObject_camera(JStudio::stb::data::TParse_TBlock_object const& param_0, + JStudio::TAdaptor_camera* param_1) + : TObject(param_0, param_1) {} /* ############################################################################################## */ /* 8039AAA8-8039AAB4 027108 000C+00 1/1 2/2 0/0 .rodata @@ -1887,6 +1861,9 @@ asm void JStudio::TObject_camera::do_paragraph(u32 param_0, void const* param_1, #pragma pop /* 8028717C-802871DC 281ABC 0060+00 0/0 1/1 0/0 .text __dt__Q27JStudio12TAdaptor_fogFv */ +#ifdef NONMATCHING +JStudio::TAdaptor_fog::~TAdaptor_fog() {} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1895,19 +1872,13 @@ asm JStudio::TAdaptor_fog::~TAdaptor_fog() { #include "asm/JSystem/JStudio/JStudio/jstudio-object/__dt__Q27JStudio12TAdaptor_fogFv.s" } #pragma pop +#endif /* 802871DC-80287218 281B1C 003C+00 0/0 1/1 0/0 .text * __ct__Q27JStudio11TObject_fogFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio12TAdaptor_fog */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TObject_fog::TObject_fog(JStudio::stb::data::TParse_TBlock_object const& param_0, - JStudio::TAdaptor_fog* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_802871DC.s" -} -#pragma pop +JStudio::TObject_fog::TObject_fog(JStudio::stb::data::TParse_TBlock_object const& param_0, + JStudio::TAdaptor_fog* param_1) : TObject(param_0, param_1) {} /* ############################################################################################## */ /* 8039AAC0-8039AACC 027120 000C+00 1/1 0/0 0/0 .rodata @@ -1943,6 +1914,9 @@ asm void JStudio::TObject_fog::do_paragraph(u32 param_0, void const* param_1, u3 /* 80287308-80287368 281C48 0060+00 0/0 1/1 0/0 .text __dt__Q27JStudio14TAdaptor_lightFv */ +#ifdef NONMATCHING +JStudio::TAdaptor_light::~TAdaptor_light() {} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1951,19 +1925,13 @@ asm JStudio::TAdaptor_light::~TAdaptor_light() { #include "asm/JSystem/JStudio/JStudio/jstudio-object/__dt__Q27JStudio14TAdaptor_lightFv.s" } #pragma pop +#endif /* 80287368-802873A4 281CA8 003C+00 0/0 1/1 0/0 .text * __ct__Q27JStudio13TObject_lightFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio14TAdaptor_light */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TObject_light::TObject_light(JStudio::stb::data::TParse_TBlock_object const& param_0, - JStudio::TAdaptor_light* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_80287368.s" -} -#pragma pop +JStudio::TObject_light::TObject_light(JStudio::stb::data::TParse_TBlock_object const& param_0, + JStudio::TAdaptor_light* param_1) : TObject(param_0, param_1) {} /* ############################################################################################## */ /* 80431080-8043108C 05DDA0 000C+00 0/1 0/0 0/0 .bss @756 */ @@ -1994,30 +1962,38 @@ asm void JStudio::TObject_light::do_paragraph(u32 param_0, void const* param_1, #pragma pop /* 802875E0-80287640 281F20 0060+00 0/0 1/1 0/0 .text __dt__Q27JStudio16TAdaptor_messageFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TAdaptor_message::~TAdaptor_message() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/__dt__Q27JStudio16TAdaptor_messageFv.s" -} -#pragma pop +JStudio::TAdaptor_message::~TAdaptor_message() {} /* 80287640-8028767C 281F80 003C+00 0/0 1/1 0/0 .text * __ct__Q27JStudio15TObject_messageFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio16TAdaptor_message */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TObject_message::TObject_message( - JStudio::stb::data::TParse_TBlock_object const& param_0, JStudio::TAdaptor_message* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_80287640.s" -} -#pragma pop +JStudio::TObject_message::TObject_message(JStudio::stb::data::TParse_TBlock_object const& param_0, + JStudio::TAdaptor_message* param_1) + : TObject(param_0, param_1) {} /* 8028767C-8028770C 281FBC 0090+00 1/0 0/0 0/0 .text * do_paragraph__Q27JStudio15TObject_messageFUlPCvUl */ +// param_1 &= 0x1f is out of place + unsure about the pmfn +#ifdef NONMATCHING +void JStudio::TObject_message::do_paragraph(u32 param_1, void const* param_2, u32 param_3) { + TAdaptor* adaptor = getAdaptor(); + if (adaptor != NULL) { + u32 uVar1 = (param_1 >> 5); + param_1 &= 0x1f; + paragraphFunc pmfn_ = NULL; + switch (uVar1) { + case 0x42: + pmfn_ = &TObject::do_paragraph; + JUT_ASSERT(1161, pmfn_!=0); + break; + default: + return; + } + (((TObject*)adaptor)->*pmfn_)(param_1, param_2, param_3); + } + +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2026,8 +2002,12 @@ asm void JStudio::TObject_message::do_paragraph(u32 param_0, void const* param_1 #include "asm/JSystem/JStudio/JStudio/jstudio-object/do_paragraph__Q27JStudio15TObject_messageFUlPCvUl.s" } #pragma pop +#endif /* 8028770C-8028776C 28204C 0060+00 0/0 1/1 0/0 .text __dt__Q27JStudio17TAdaptor_particleFv */ +#ifdef NONMATCHING +JStudio::TAdaptor_particle::~TAdaptor_particle() {} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2036,19 +2016,13 @@ asm JStudio::TAdaptor_particle::~TAdaptor_particle() { #include "asm/JSystem/JStudio/JStudio/jstudio-object/__dt__Q27JStudio17TAdaptor_particleFv.s" } #pragma pop +#endif /* 8028776C-802877A8 2820AC 003C+00 0/0 1/1 0/0 .text * __ct__Q27JStudio16TObject_particleFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio17TAdaptor_particle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TObject_particle::TObject_particle( - JStudio::stb::data::TParse_TBlock_object const& param_0, JStudio::TAdaptor_particle* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_8028776C.s" -} -#pragma pop +JStudio::TObject_particle::TObject_particle( + JStudio::stb::data::TParse_TBlock_object const& param_0, JStudio::TAdaptor_particle* param_1) : TObject(param_0, param_1) {} /* 802877A8-80287B3C 2820E8 0394+00 2/0 0/0 0/0 .text * do_paragraph__Q27JStudio16TObject_particleFUlPCvUl */ @@ -2063,6 +2037,9 @@ asm void JStudio::TObject_particle::do_paragraph(u32 param_0, void const* param_ /* 80287B3C-80287B9C 28247C 0060+00 0/0 1/1 0/0 .text __dt__Q27JStudio14TAdaptor_soundFv */ +#ifdef NONMATCHING +JStudio::TAdaptor_sound::~TAdaptor_sound() {} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2071,19 +2048,13 @@ asm JStudio::TAdaptor_sound::~TAdaptor_sound() { #include "asm/JSystem/JStudio/JStudio/jstudio-object/__dt__Q27JStudio14TAdaptor_soundFv.s" } #pragma pop +#endif /* 80287B9C-80287BD8 2824DC 003C+00 0/0 1/1 0/0 .text * __ct__Q27JStudio13TObject_soundFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio14TAdaptor_sound */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio::TObject_sound::TObject_sound(JStudio::stb::data::TParse_TBlock_object const& param_0, - JStudio::TAdaptor_sound* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/jstudio-object/func_80287B9C.s" -} -#pragma pop +JStudio::TObject_sound::TObject_sound(JStudio::stb::data::TParse_TBlock_object const& param_0, + JStudio::TAdaptor_sound* param_1) : TObject(param_0, param_1) {} /* ############################################################################################## */ /* 8039AADC-8039AAE8 02713C 000C+00 0/0 0/0 0/0 .rodata diff --git a/libs/JSystem/JStudio/JStudio/stb.cpp b/libs/JSystem/JStudio/JStudio/stb.cpp index a4f362442b..7fa1f80963 100644 --- a/libs/JSystem/JStudio/JStudio/stb.cpp +++ b/libs/JSystem/JStudio/JStudio/stb.cpp @@ -1,14 +1,15 @@ #include "JSystem/JStudio/JStudio/stb.h" +#include "JSystem/JStudio/JStudio/jstudio-object.h" #include "JSystem/JUtility/JUTException.h" #include "global.h" +#include "algorithm.h" // // Types: // namespace std { -template <typename A1, typename B1> -void find_if(/* ... */); + /* 80289928 */ /* std::find_if<JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator, JStudio::object::TPRObject_ID_equal> */ void func_80289928(void* _this, JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator, @@ -112,7 +113,7 @@ void TObject::reset(const void* arg1) { u32Wait_ = 0; } -int TObject::forward(u32 arg1) { +u8 TObject::forward(u32 arg1) { u8 temp = false; while (true) { @@ -330,23 +331,12 @@ TControl::~TControl() { JUT_EXPECT(ocObject_.empty()); } -#ifdef NONMATCHING +/* 80289228-80289278 283B68 0050+00 1/1 0/0 0/0 .text + * appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject */ void TControl::appendObject(TObject* p) { p->setControl_(this); mObjectContainer.Push_back(p); } -#else -/* 80289228-80289278 283B68 0050+00 1/1 0/0 0/0 .text - * appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TControl::appendObject(TObject* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio/stb/appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s" -} -#pragma pop -#endif void TControl::removeObject(TObject* p) { ASSERT(p != 0); @@ -363,16 +353,25 @@ void TControl::destroyObject(TObject* p) { /* 80289300-80289364 283C40 0064+00 0/0 2/2 0/0 .text destroyObject_all__Q37JStudio3stb8TControlFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TControl::destroyObject_all() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/stb/destroyObject_all__Q37JStudio3stb8TControlFv.s" +void TControl::destroyObject_all() { + while (!mObjectContainer.empty()) { + destroyObject(&mObjectContainer.back()); + } } -#pragma pop /* 80289364-80289404 283CA4 00A0+00 1/1 0/0 0/0 .text getObject__Q37JStudio3stb8TControlFPCvUl */ +// TPRObject_ID_equal copy issue +#ifdef NONMATCHING +TObject* TControl::getObject(void const* param_0, u32 param_1) { + JGadget::TLinkList<TObject, -12>::iterator begin = mObjectContainer.begin(); + JGadget::TLinkList<TObject, -12>::iterator end = mObjectContainer.end(); + JGadget::TLinkList<TObject, -12>::iterator local_50 = std::find_if(begin, end, object::TPRObject_ID_equal(param_0, param_1)); + if ((local_50 != end) != false) { + return &*local_50; + } + return NULL; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -381,19 +380,44 @@ asm TObject* TControl::getObject(void const* param_0, u32 param_1) { #include "asm/JSystem/JStudio/JStudio/stb/getObject__Q37JStudio3stb8TControlFPCvUl.s" } #pragma pop +#endif /* 80289404-802894B4 283D44 00B0+00 0/0 1/1 0/0 .text reset__Q37JStudio3stb8TControlFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void TControl::reset() { - nofralloc -#include "asm/JSystem/JStudio/JStudio/stb/reset__Q37JStudio3stb8TControlFv.s" +void TControl::reset() { + resetStatus_(); + mObject_control.reset(NULL); + JGadget::TContainerEnumerator<JStudio::stb::TObject, -12> aTStack_18(&mObjectContainer); + while (aTStack_18) { + (*aTStack_18).reset(NULL); + } } -#pragma pop /* 802894B4-802895B4 283DF4 0100+00 0/0 2/2 0/0 .text forward__Q37JStudio3stb8TControlFUl */ +// regalloc +#ifdef NONMATCHING +u8 TControl::forward(u32 param_0) { + _54 = mObject_control.getSuspend(); + u8 rv = mObject_control.forward(param_0); + int uVar7 = 0xf; + int uVar6 = 0; + JGadget::TContainerEnumerator<JStudio::stb::TObject, -12> aTStack_38(&mObjectContainer); + while (aTStack_38) { + JStudio::stb::TObject& this_00 = *aTStack_38; + u8 iVar5 = 0; + u8 iVar4 = this_00.forward(param_0); + if (iVar4 != 0 || rv != 0) { + iVar5 = 1; + } + rv = iVar5; + int uVar3 = this_00.getStatus(); + uVar7 &= uVar3; + uVar6 |= uVar3; + } + setStatus_(uVar7 | (uVar6 << 0x10)); + return rv; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -402,10 +426,11 @@ asm u8 TControl::forward(u32 param_0) { #include "asm/JSystem/JStudio/JStudio/stb/forward__Q37JStudio3stb8TControlFUl.s" } #pragma pop +#endif TFactory::~TFactory() {} -TObject* TFactory::create(data::TParse_TBlock_object const& param_0) { +JStudio::TObject* TFactory::create(data::TParse_TBlock_object const& param_0) { return NULL; } @@ -501,7 +526,7 @@ bool TParse::parseBlock_object(const data::TParse_TBlock_object& ppObject, u32 f return false; } - TObject* p = pFactory->create(ppObject); + JStudio::TObject* p = pFactory->create(ppObject); if (p == NULL) { if (flags & 0x40) return true; diff --git a/libs/JSystem/JStudio/JStudio_JAudio2/control.cpp b/libs/JSystem/JStudio/JStudio_JAudio2/control.cpp index 18eaaf0a5b..96518b7da7 100644 --- a/libs/JSystem/JStudio/JStudio_JAudio2/control.cpp +++ b/libs/JSystem/JStudio/JStudio_JAudio2/control.cpp @@ -60,7 +60,7 @@ asm JStudio_JAudio2::TCreateObject::~TCreateObject() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void +asm bool JStudio_JAudio2::TCreateObject::create(JStudio::TObject** param_0, JStudio::stb::data::TParse_TBlock_object const& param_1) { nofralloc diff --git a/libs/JSystem/JStudio/JStudio_JParticle/control.cpp b/libs/JSystem/JStudio/JStudio_JParticle/control.cpp index b171b2f85d..573cd248e8 100644 --- a/libs/JSystem/JStudio/JStudio_JParticle/control.cpp +++ b/libs/JSystem/JStudio/JStudio_JParticle/control.cpp @@ -68,7 +68,7 @@ asm JStudio_JParticle::TCreateObject::~TCreateObject() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void +asm bool JStudio_JParticle::TCreateObject::create(JStudio::TObject** param_0, JStudio::stb::data::TParse_TBlock_object const& param_1) { nofralloc diff --git a/libs/JSystem/JStudio/JStudio_JStage/control.cpp b/libs/JSystem/JStudio/JStudio_JStage/control.cpp index 2c762e8761..5cb66df374 100644 --- a/libs/JSystem/JStudio/JStudio_JStage/control.cpp +++ b/libs/JSystem/JStudio/JStudio_JStage/control.cpp @@ -75,7 +75,7 @@ asm JStudio_JStage::TCreateObject::~TCreateObject() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void +asm bool JStudio_JStage::TCreateObject::create(JStudio::TObject** param_0, JStudio::stb::data::TParse_TBlock_object const& param_1) { nofralloc |
