mirror of
https://github.com/zeldaret/tp
synced 2026-06-13 22:15:43 -04:00
a61e3491f7
* initial freezard actor struct + setActionMode OK * daE_FZ_Draw * setReflectAngle * mBoundSoundset * daE_FZ_Execute & execute * demoDelete * daE_FZ_Delete & _delete * CreateHeap * useHeapInit * cc_set * mtx_set * action WIP * way_gake_check * executeRollMove * executeMove * draw WIP * executeDamage * checkpoint * create * checkpoint * daE_FZ_c::executeWait * checkpoint * daE_FZ_c::damage_check almost done * rm asm * rm headers * setup_profile WIP + doxygen update * fix merge issues * docs fix? * fix2 * doxygen updates * setup g_profile_E_FZ, profile setup script WIP * update github actions * update progress.md
273 lines
10 KiB
C++
273 lines
10 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: jstudio-control
|
|
//
|
|
|
|
#include "JSystem/JStudio/JStudio/jstudio-control.h"
|
|
#include "JSystem/JStudio/JStudio/jstudio-math.h"
|
|
#include "JSystem/JStudio/JStudio/jstudio-data.h"
|
|
#include "string.h"
|
|
|
|
//
|
|
// Forward References:
|
|
//
|
|
|
|
extern "C" void __ct__Q27JStudio8TControlFv();
|
|
extern "C" void __dt__Q27JStudio8TControlFv();
|
|
extern "C" void setFactory__Q27JStudio8TControlFPQ27JStudio8TFactory();
|
|
extern "C" void transformOnSet_setOrigin_TxyzRy__Q27JStudio8TControlFRC3Vecf();
|
|
extern "C" void transformOnGet_setOrigin_TxyzRy__Q27JStudio8TControlFRC3Vecf();
|
|
extern "C" void transform_setOrigin_ctb__Q27JStudio8TControlFRCQ37JStudio3ctb7TObject();
|
|
extern "C" void transform_setOrigin_ctb_index__Q27JStudio8TControlFUl();
|
|
extern "C" void __dt__Q27JStudio13TCreateObjectFv();
|
|
extern "C" void __dt__Q27JStudio8TFactoryFv();
|
|
extern "C" void appendCreateObject__Q27JStudio8TFactoryFPQ27JStudio13TCreateObject();
|
|
extern "C" void create__Q27JStudio8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object();
|
|
extern "C" void __ct__Q27JStudio6TParseFPQ27JStudio8TControl();
|
|
extern "C" void __dt__Q27JStudio6TParseFv();
|
|
extern "C" void parseHeader__Q27JStudio6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl();
|
|
extern "C" void parseBlock_block__Q27JStudio6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl();
|
|
extern "C" void parseBlock_block_fvb___Q27JStudio6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl();
|
|
extern "C" void parseBlock_block_ctb___Q27JStudio6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl();
|
|
|
|
//
|
|
// External References:
|
|
//
|
|
|
|
extern "C" void __ct__Q37JStudio3ctb8TControlFv();
|
|
extern "C" void __dt__Q37JStudio3ctb8TControlFv();
|
|
extern "C" void getObject_index__Q37JStudio3ctb8TControlFUl();
|
|
extern "C" void __dt__Q37JStudio3ctb8TFactoryFv();
|
|
extern "C" void __ct__Q37JStudio3ctb6TParseFPQ37JStudio3ctb8TControl();
|
|
extern "C" void __dt__Q37JStudio3ctb6TParseFv();
|
|
extern "C" void __ct__Q37JStudio3fvb8TControlFv();
|
|
extern "C" void __dt__Q37JStudio3fvb8TControlFv();
|
|
extern "C" void __dt__Q37JStudio3fvb8TFactoryFv();
|
|
extern "C" void __ct__Q37JStudio3fvb6TParseFPQ37JStudio3fvb8TControl();
|
|
extern "C" void __dt__Q37JStudio3fvb6TParseFv();
|
|
extern "C" void __ct__Q37JStudio3stb8TControlFv();
|
|
extern "C" void __dt__Q37JStudio3stb8TControlFv();
|
|
extern "C" void __dt__Q37JStudio3stb8TFactoryFv();
|
|
extern "C" void destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject();
|
|
extern "C" void __ct__Q37JStudio3stb6TParseFPQ37JStudio3stb8TControl();
|
|
extern "C" void __dt__Q37JStudio3stb6TParseFv();
|
|
extern "C" void parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl();
|
|
extern "C" void parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl();
|
|
extern "C" void parseBlock_block__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl();
|
|
extern "C" void
|
|
parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl();
|
|
extern "C" void __dl__FPv();
|
|
extern "C" void parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl();
|
|
extern "C" void __dt__Q27JGadget13TNodeLinkListFv();
|
|
extern "C" void
|
|
Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode();
|
|
extern "C" void _savegpr_28();
|
|
extern "C" void _savegpr_29();
|
|
extern "C" void _restgpr_28();
|
|
extern "C" void _restgpr_29();
|
|
extern "C" extern void* __vt__Q27JStudio13TCreateObject[4];
|
|
extern "C" u8 ga8cSignature__Q27JStudio4data[8];
|
|
|
|
/* 80285114-802851AC 27FA54 0098+00 0/0 1/1 0/0 .text __ct__Q27JStudio8TControlFv */
|
|
JStudio::TControl::TControl() {
|
|
mTransformOnSet = false;
|
|
mTransformOnGet = false;
|
|
Vec aVStack_20 = {0.0f,0.0f,0.0f};
|
|
transform_setOrigin_TxyzRy(aVStack_20, 0.0f);
|
|
}
|
|
|
|
/* 802851AC-80285228 27FAEC 007C+00 1/0 0/0 0/0 .text __dt__Q27JStudio8TControlFv */
|
|
JStudio::TControl::~TControl() {}
|
|
|
|
/* 80285228-80285250 27FB68 0028+00 0/0 1/1 0/0 .text
|
|
* setFactory__Q27JStudio8TControlFPQ27JStudio8TFactory */
|
|
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);
|
|
}
|
|
|
|
/* 80285250-802852D0 27FB90 0080+00 3/3 1/1 0/0 .text
|
|
* transformOnSet_setOrigin_TxyzRy__Q27JStudio8TControlFRC3Vecf */
|
|
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;
|
|
}
|
|
|
|
/* 802852D0-80285368 27FC10 0098+00 3/3 1/1 0/0 .text
|
|
* transformOnGet_setOrigin_TxyzRy__Q27JStudio8TControlFRC3Vecf */
|
|
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;
|
|
}
|
|
|
|
/* 80285368-8028543C 27FCA8 00D4+00 1/1 0/0 0/0 .text
|
|
* transform_setOrigin_ctb__Q27JStudio8TControlFRCQ37JStudio3ctb7TObject */
|
|
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;
|
|
}
|
|
|
|
/* 8028543C-80285488 27FD7C 004C+00 1/1 0/0 0/0 .text
|
|
* transform_setOrigin_ctb_index__Q27JStudio8TControlFUl */
|
|
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;
|
|
}
|
|
|
|
/* 80285488-802854D0 27FDC8 0048+00 0/0 4/4 0/0 .text __dt__Q27JStudio13TCreateObjectFv
|
|
*/
|
|
JStudio::TCreateObject::~TCreateObject() {}
|
|
|
|
/* 802854D0-80285560 27FE10 0090+00 1/0 0/0 0/0 .text __dt__Q27JStudio8TFactoryFv */
|
|
JStudio::TFactory::~TFactory() {}
|
|
|
|
/* 80285560-802855AC 27FEA0 004C+00 0/0 1/1 0/0 .text
|
|
* appendCreateObject__Q27JStudio8TFactoryFPQ27JStudio13TCreateObject */
|
|
void JStudio::TFactory::appendCreateObject(JStudio::TCreateObject* param_0) {
|
|
mList.Push_back(param_0);
|
|
}
|
|
|
|
/* 802855AC-8028566C 27FEEC 00C0+00 1/0 0/0 0/0 .text
|
|
* create__Q27JStudio8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object */
|
|
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;
|
|
}
|
|
|
|
/* 8028566C-802856A8 27FFAC 003C+00 0/0 1/1 0/0 .text __ct__Q27JStudio6TParseFPQ27JStudio8TControl
|
|
*/
|
|
JStudio::TParse::TParse(JStudio::TControl* param_0) : stb::TParse(param_0) {
|
|
}
|
|
|
|
/* 802856A8-80285708 27FFE8 0060+00 1/0 1/1 0/0 .text __dt__Q27JStudio6TParseFv */
|
|
JStudio::TParse::~TParse() {}
|
|
|
|
/* 80285708-802857E4 280048 00DC+00 1/0 0/0 0/0 .text
|
|
* parseHeader__Q27JStudio6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl */
|
|
bool JStudio::TParse::parseHeader(JStudio::stb::data::TParse_THeader const& param_0,
|
|
u32 param_1) {
|
|
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;
|
|
}
|
|
|
|
/* 802857E4-80285844 280124 0060+00 1/0 0/0 0/0 .text
|
|
* parseBlock_block__Q27JStudio6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl */
|
|
bool JStudio::TParse::parseBlock_block(JStudio::stb::data::TParse_TBlock const& param_0,
|
|
u32 param_1) {
|
|
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);
|
|
}
|
|
}
|
|
|
|
/* 80285844-802858F0 280184 00AC+00 1/1 0/0 0/0 .text
|
|
* parseBlock_block_fvb___Q27JStudio6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl */
|
|
bool JStudio::TParse::parseBlock_block_fvb_(JStudio::stb::data::TParse_TBlock const& param_0,
|
|
u32 param_1) {
|
|
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;
|
|
}
|
|
|
|
/* 802858F0-802859DC 280230 00EC+00 1/1 0/0 0/0 .text
|
|
* parseBlock_block_ctb___Q27JStudio6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl */
|
|
bool JStudio::TParse::parseBlock_block_ctb_(JStudio::stb::data::TParse_TBlock const& param_0,
|
|
u32 param_1) {
|
|
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;
|
|
}
|