More jstudio work (#2048)

This commit is contained in:
hatal175
2024-01-25 14:50:55 -08:00
committed by GitHub
parent 4640b758c9
commit 1ea10fcc63
80 changed files with 834 additions and 2229 deletions
+2 -2
View File
@@ -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);
+8 -48
View File
@@ -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
+142 -207
View File
@@ -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
+71 -13
View File
@@ -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
File diff suppressed because it is too large Load Diff
+57 -32
View File
@@ -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;
@@ -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
@@ -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
@@ -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