summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-01-26 00:50:55 +0200
committerGitHub <noreply@github.com>2024-01-25 14:50:55 -0800
commit1ea10fcc63d502aecf0aed02f831dbdb141a1034 (patch)
tree9bb101d4d8d9ea2c1b25616c5e2323e7db62dd15 /libs
parent4640b758c9cdb3772028bba345df635292133bf1 (diff)
More jstudio work (#2048)
Diffstat (limited to 'libs')
-rw-r--r--libs/JSystem/JMessage/processor.cpp4
-rw-r--r--libs/JSystem/JStudio/JStudio/ctb.cpp56
-rw-r--r--libs/JSystem/JStudio/JStudio/jstudio-control.cpp349
-rw-r--r--libs/JSystem/JStudio/JStudio/jstudio-math.cpp84
-rw-r--r--libs/JSystem/JStudio/JStudio/jstudio-object.cpp515
-rw-r--r--libs/JSystem/JStudio/JStudio/stb.cpp89
-rw-r--r--libs/JSystem/JStudio/JStudio_JAudio2/control.cpp2
-rw-r--r--libs/JSystem/JStudio/JStudio_JParticle/control.cpp2
-rw-r--r--libs/JSystem/JStudio/JStudio_JStage/control.cpp2
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 = &param_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 = &param_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 = &param_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 = &param_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