diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2024-08-30 14:50:05 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-30 04:50:05 -0700 |
| commit | b7380e77d1e9744b03d5906638424c769b33d35c (patch) | |
| tree | 0ee28b75408c9e056c647d195750cec2a9104f0e /libs | |
| parent | d3420ffe8d38185b66cb67a6605fb3d89cb72b36 (diff) | |
Work on JStudio (#2195)
* work on object-light
* JStage control OK
* object-fog OK
* object-camera OK
* Work on object-actor
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/JSystem/JStudio/JStudio/jstudio-control.cpp | 2 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JAudio2/object-sound.cpp | 2 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp | 2 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JStage/Makefile | 1 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JStage/control.cpp | 197 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JStage/object-actor.cpp | 470 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JStage/object-ambientlight.cpp | 4 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JStage/object-camera.cpp | 652 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JStage/object-fog.cpp | 264 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JStage/object-light.cpp | 290 | ||||
| -rw-r--r-- | libs/JSystem/JStudio/JStudio_JStage/object.cpp | 2 |
11 files changed, 820 insertions, 1066 deletions
diff --git a/libs/JSystem/JStudio/JStudio/jstudio-control.cpp b/libs/JSystem/JStudio/JStudio/jstudio-control.cpp index 4dad2edc2c..84c9bf2d47 100644 --- a/libs/JSystem/JStudio/JStudio/jstudio-control.cpp +++ b/libs/JSystem/JStudio/JStudio/jstudio-control.cpp @@ -45,7 +45,7 @@ int JStudio::TControl::transformOnSet_setOrigin_TxyzRy(Vec const& param_0, f32 p * 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; + mTransformOnGet_RotationY = 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); diff --git a/libs/JSystem/JStudio/JStudio_JAudio2/object-sound.cpp b/libs/JSystem/JStudio/JStudio_JAudio2/object-sound.cpp index c2ae36e563..5e168ba44e 100644 --- a/libs/JSystem/JStudio/JStudio_JAudio2/object-sound.cpp +++ b/libs/JSystem/JStudio/JStudio_JAudio2/object-sound.cpp @@ -235,7 +235,7 @@ void JStudio_JAudio2::TAdaptor_sound::adaptor_do_PARENT( JStage::TSystem* pJSGSystem = (JStage::TSystem*)pCreateObject_->get_pJSGSystem_(); JUT_ASSERT(396, pJSGSystem != 0); JStage::TObject* pJSGObject; - if (!pJSGSystem->JSGFindObject(&pJSGObject, (const char*)pContent, JStage::TOBJ_ACTOR_UNK)) { + if (!pJSGSystem->JSGFindObject(&pJSGObject, (const char*)pContent, JStage::OBJECT_UNDEFINED)) { JUT_ASSERT(405, pJSGObject != 0); field_0x13c = pJSGObject; } diff --git a/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp b/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp index ec1309c703..3f645a7577 100644 --- a/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp +++ b/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp @@ -183,7 +183,7 @@ void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT( const JStage::TSystem* pJSGSystem = pCreateObject_->get_pJSGSystem_(); JUT_ASSERT(345, pJSGSystem!=0); JStage::TObject* pJSGObject; - if (pJSGSystem->JSGFindObject(&pJSGObject, (const char*)pContent, JStage::TOBJ_ACTOR_UNK) == 0) { + if (pJSGSystem->JSGFindObject(&pJSGObject, (const char*)pContent, JStage::OBJECT_UNDEFINED) == 0) { JUT_ASSERT(354, pJSGObject!=0); field_0x1d0 = pJSGObject; } diff --git a/libs/JSystem/JStudio/JStudio_JStage/Makefile b/libs/JSystem/JStudio/JStudio_JStage/Makefile index 315f641ff7..3d06799ff3 100644 --- a/libs/JSystem/JStudio/JStudio_JStage/Makefile +++ b/libs/JSystem/JStudio/JStudio_JStage/Makefile @@ -21,6 +21,7 @@ LIBJSTUDIO_JSTAGE_A_O_FILES := \ $(BUILD_DIR)/libs/JSystem/JStudio/JStudio_JStage/object-light.o \ LIBJSTUDIO_JSTAGE_A_CFLAGS := \ + -sym on LIBJSTUDIO_JSTAGE_A_LDFLAGS := \ -nodefaults \ diff --git a/libs/JSystem/JStudio/JStudio_JStage/control.cpp b/libs/JSystem/JStudio/JStudio_JStage/control.cpp index 5cb66df374..51c97b8611 100644 --- a/libs/JSystem/JStudio/JStudio_JStage/control.cpp +++ b/libs/JSystem/JStudio/JStudio_JStage/control.cpp @@ -4,141 +4,78 @@ // #include "JSystem/JStudio/JStudio_JStage/control.h" -#include "dol2asm.h" - -// -// Forward References: -// - -extern "C" void __dt__Q214JStudio_JStage13TCreateObjectFv(); -extern "C" void -create__Q214JStudio_JStage13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object(); -extern "C" static void func_80289CE4(); -extern "C" static void func_80289DE8(); -extern "C" static void func_80289EEC(); -extern "C" static void func_80289FF0(); -extern "C" static void func_8028A0F4(); - -// -// External References: -// - -extern "C" void __dt__Q27JStudio13TCreateObjectFv(); -extern "C" void -__ct__Q27JStudio13TObject_actorFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio14TAdaptor_actor(); -extern "C" void -__ct__Q27JStudio20TObject_ambientLightFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio21TAdaptor_ambientLight(); -extern "C" void -__ct__Q27JStudio14TObject_cameraFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio15TAdaptor_camera(); -extern "C" void -__ct__Q27JStudio11TObject_fogFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio12TAdaptor_fog(); -extern "C" void -__ct__Q27JStudio13TObject_lightFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ27JStudio14TAdaptor_light(); -extern "C" void __ct__Q214JStudio_JStage14TAdaptor_actorFPCQ26JStage7TSystemPQ26JStage6TActor(); -extern "C" void -__ct__Q214JStudio_JStage21TAdaptor_ambientLightFPCQ26JStage7TSystemPQ26JStage13TAmbientLight(); -extern "C" void __ct__Q214JStudio_JStage15TAdaptor_cameraFPCQ26JStage7TSystemPQ26JStage7TCamera(); -extern "C" void __ct__Q214JStudio_JStage12TAdaptor_fogFPCQ26JStage7TSystemPQ26JStage4TFog(); -extern "C" void __ct__Q214JStudio_JStage14TAdaptor_lightFPCQ26JStage7TSystemPQ26JStage6TLight(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803C5720-803C5730 022840 0010+00 1/1 1/1 0/0 .data __vt__Q214JStudio_JStage13TCreateObject */ -SECTION_DATA extern void* __vt__Q214JStudio_JStage13TCreateObject[4] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__Q214JStudio_JStage13TCreateObjectFv, - (void*) - create__Q214JStudio_JStage13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object, -}; +#include "JSystem/JGadget/pointer.h" +#include "JSystem/JStage/JSGActor.h" +#include "JSystem/JStage/JSGLight.h" +#include "JSystem/JStage/JSGFog.h" +#include "JSystem/JStage/JSGCamera.h" +#include "JSystem/JStage/JSGAmbientLight.h" /* 80289B00-80289B60 284440 0060+00 1/0 0/0 0/0 .text __dt__Q214JStudio_JStage13TCreateObjectFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio_JStage::TCreateObject::~TCreateObject() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/control/__dt__Q214JStudio_JStage13TCreateObjectFv.s" +JStudio_JStage::TCreateObject::~TCreateObject() {} + +template <class AdaptorT, class ObjectT> +JStudio::TObject* createObject_JSG_(const JStudio::stb::data::TParse_TBlock_object& param_1, + JStage::TObject* param_2, const JStage::TSystem* param_3) { + ObjectT* objt = (ObjectT*)param_2; + AdaptorT* pAdaptor = new AdaptorT(param_3, objt); + if (pAdaptor == NULL) { + return NULL; + } + JGadget::TPointer_delete<AdaptorT> adaptorGuard(pAdaptor); + JStudio::TObject* pObj = JStudio::TCreateObject::createFromAdaptor<AdaptorT>(param_1, pAdaptor); + if (pObj == NULL) { + return NULL; + } + adaptorGuard.set(NULL); + return pObj; } -#pragma pop /* 80289B60-80289CE4 2844A0 0184+00 1/0 0/0 0/0 .text * create__Q214JStudio_JStage13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool -JStudio_JStage::TCreateObject::create(JStudio::TObject** param_0, - JStudio::stb::data::TParse_TBlock_object const& param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/control/func_80289B60.s" -} -#pragma pop - -/* 80289CE4-80289DE8 284624 0104+00 1/1 0/0 0/0 .text - * createObject_JSG_<Q214JStudio_JStage14TAdaptor_actor,Q26JStage6TActor>__Q214JStudio_JStage21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectPQ26JStage7TObjectPCQ26JStage7TSystem - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_80289CE4() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/control/func_80289CE4.s" -} -#pragma pop - -/* 80289DE8-80289EEC 284728 0104+00 1/1 0/0 0/0 .text - * createObject_JSG_<Q214JStudio_JStage15TAdaptor_camera,Q26JStage7TCamera>__Q214JStudio_JStage21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectPQ26JStage7TObjectPCQ26JStage7TSystem - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_80289DE8() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/control/func_80289DE8.s" -} -#pragma pop - -/* 80289EEC-80289FF0 28482C 0104+00 1/1 0/0 0/0 .text - * createObject_JSG_<Q214JStudio_JStage21TAdaptor_ambientLight,Q26JStage13TAmbientLight>__Q214JStudio_JStage21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectPQ26JStage7TObjectPCQ26JStage7TSystem - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_80289EEC() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/control/func_80289EEC.s" -} -#pragma pop - -/* 80289FF0-8028A0F4 284930 0104+00 1/1 0/0 0/0 .text - * createObject_JSG_<Q214JStudio_JStage14TAdaptor_light,Q26JStage6TLight>__Q214JStudio_JStage21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectPQ26JStage7TObjectPCQ26JStage7TSystem - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_80289FF0() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/control/func_80289FF0.s" -} -#pragma pop - -/* 8028A0F4-8028A1F8 284A34 0104+00 1/1 0/0 0/0 .text - * createObject_JSG_<Q214JStudio_JStage12TAdaptor_fog,Q26JStage4TFog>__Q214JStudio_JStage21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectPQ26JStage7TObjectPCQ26JStage7TSystem - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void func_8028A0F4() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/control/func_8028A0F4.s" +bool JStudio_JStage::TCreateObject::create( + JStudio::TObject** ppObject, JStudio::stb::data::TParse_TBlock_object const& rParse) { + JUT_ASSERT(83, ppObject!=0); + *ppObject = NULL; + ObjCreateFuncT pfnCreateObject; + JStage::TEObject eObject; + switch(rParse.get_type()) { + case 'JACT': + pfnCreateObject = createObject_JSG_<TAdaptor_actor, JStage::TActor>; + eObject = JStage::OBJECT_ACTOR; + break; + case 'JCMR': + pfnCreateObject = createObject_JSG_<TAdaptor_camera, JStage::TCamera>; + eObject = JStage::OBJECT_CAMERA; + break; + case 'JABL': + pfnCreateObject = createObject_JSG_<TAdaptor_ambientLight, JStage::TAmbientLight>; + eObject = JStage::OBJECT_AMBIENT; + break; + case 'JLIT': + pfnCreateObject = createObject_JSG_<TAdaptor_light, JStage::TLight>; + eObject = JStage::OBJECT_LIGHT; + break; + case 'JFOG': + pfnCreateObject = createObject_JSG_<TAdaptor_fog, JStage::TFog>; + eObject = JStage::OBJECT_FOG; + break; + default: + return NULL; + } + JUT_ASSERT(99, pfnCreateObject!=0); + JUT_ASSERT(100, eObject!=JStage::OBJECT_UNDEFINED); + JUT_ASSERT(109, pJSGSystem_!=0); + JStage::TObject* pJSGObject; + int pJVar2 = pJSGSystem_->JSGFindObject(&pJSGObject, (char const*)rParse.get_ID(), eObject); + switch(pJVar2) { + case 0: + JUT_ASSERT(115, pJSGObject!=0); + *ppObject = pfnCreateObject(rParse, pJSGObject, pJSGSystem_); + return true; + case 2: + return true; + } + return false; } -#pragma pop diff --git a/libs/JSystem/JStudio/JStudio_JStage/object-actor.cpp b/libs/JSystem/JStudio/JStudio_JStage/object-actor.cpp index 7286cdac4d..8f5ffbb9e2 100644 --- a/libs/JSystem/JStudio/JStudio_JStage/object-actor.cpp +++ b/libs/JSystem/JStudio/JStudio_JStage/object-actor.cpp @@ -247,18 +247,27 @@ SECTION_DATA extern void* __vt__Q214JStudio_JStage14TAdaptor_actor[20 + 20 /* pa /* 8028A5F0-8028A6B4 284F30 00C4+00 0/0 1/1 0/0 .text * __ct__Q214JStudio_JStage14TAdaptor_actorFPCQ26JStage7TSystemPQ26JStage6TActor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio_JStage::TAdaptor_actor::TAdaptor_actor(JStage::TSystem const* param_0, - JStage::TActor* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028A5F0.s" +JStudio_JStage::TAdaptor_actor::TAdaptor_actor(JStage::TSystem const* param_1, + JStage::TActor* param_2) : + TAdaptor_object_(param_1,param_2) { + field_0x130 = 0; + field_0x134 = 0; + field_0x138 = 0; + field_0x13c = NULL; + field_0x140 = -1; + field_0x144 = 0; + field_0x148 = NULL; + field_0x14c = -1; } -#pragma pop /* 8028A6B4-8028A728 284FF4 0074+00 1/0 0/0 0/0 .text __dt__Q214JStudio_JStage14TAdaptor_actorFv */ +// Matches with vtable +#ifdef NONMATCHING +JStudio_JStage::TAdaptor_actor::~TAdaptor_actor() { + adaptor_do_end(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -268,6 +277,7 @@ extern "C" asm void __dt__Q214JStudio_JStage14TAdaptor_actorFv() { #include "asm/JSystem/JStudio/JStudio_JStage/object-actor/__dt__Q214JStudio_JStage14TAdaptor_actorFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80431188-80431194 05DEA8 000C+00 1/1 0/0 0/0 .bss @1087 */ @@ -281,7 +291,11 @@ static u8 lit_1088[12]; /* 804311A0-804311E0 05DEC0 0040+00 2/3 0/0 0/0 .bss * saoVVOutput___Q214JStudio_JStage14TAdaptor_actor */ +#ifdef NONMATCHING +JStudio_JStage::TAdaptor_actor::TVVOutputObject JStudio_JStage::TAdaptor_actor::saoVVOutput_[2]; +#else u8 JStudio_JStage::TAdaptor_actor::saoVVOutput_[64]; +#endif /* 804311E0-804311EC 05DF00 000C+00 0/1 0/0 0/0 .bss @1095 */ #pragma push @@ -303,10 +317,30 @@ static u8 lit_1103[12]; /* 80431204-80431298 05DF24 0090+04 2/3 0/0 0/0 .bss * saoVVOutput_ANIMATION_FRAME___Q214JStudio_JStage14TAdaptor_actor */ +#ifdef NONMATCHING +JStudio_JStage::TAdaptor_actor::TVVOutput_ANIMATION_FRAME_ JStudio_JStage::TAdaptor_actor::saoVVOutput_ANIMATION_FRAME_[3]; +#else u8 JStudio_JStage::TAdaptor_actor::saoVVOutput_ANIMATION_FRAME_[144 + 4 /* padding */]; +#endif /* 8028A728-8028A7B4 285068 008C+00 1/0 0/0 0/0 .text * adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_actorFv */ +// Matches with output variable +#ifdef NONMATCHING +void JStudio_JStage::TAdaptor_actor::adaptor_do_prepare() { + TVVOutputObject* pOutput = saoVVOutput_; + while (!pOutput->isEnd_()) { + pOutput->adaptor_setOutput_(this); + pOutput++; + } + + TVVOutput_ANIMATION_FRAME_* pAnimOutput = saoVVOutput_ANIMATION_FRAME_; + while (!pAnimOutput->isEnd_()) { + pAnimOutput->adaptor_setOutput_(this); + pAnimOutput++; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -315,9 +349,34 @@ asm void JStudio_JStage::TAdaptor_actor::adaptor_do_prepare() { #include "asm/JSystem/JStudio/JStudio_JStage/object-actor/adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_actorFv.s" } #pragma pop +#endif /* 8028A7B4-8028A8D8 2850F4 0124+00 1/0 0/0 0/0 .text * adaptor_do_begin__Q214JStudio_JStage14TAdaptor_actorFv */ +// instruction order +#ifdef NONMATCHING +void JStudio_JStage::TAdaptor_actor::adaptor_do_begin() { + adaptor_object_begin_(); + JStage::TActor* pActor = get_pJSG_(); + const JStudio::TObject* pObject = adaptor_getObject(); + JUT_ASSERT(72, pObject != 0); + JStudio::TControl* pControl = pObject->getControl(); + JUT_ASSERT(74, pControl != 0); + getJSG_SRT_(adaptor_getObject()->getControl()); + + TVVOutputObject* pOutput = saoVVOutput_; + while (!pOutput->isEnd_()) { + pOutput->setVariableValue_(pActor, this); + pOutput++; + } + + TVVOutput_ANIMATION_FRAME_* pAnimOutput = saoVVOutput_ANIMATION_FRAME_; + while (!pAnimOutput->isEnd_()) { + pAnimOutput->setVariableValue_(pActor, this); + pAnimOutput++; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -326,43 +385,41 @@ asm void JStudio_JStage::TAdaptor_actor::adaptor_do_begin() { #include "asm/JSystem/JStudio/JStudio_JStage/object-actor/adaptor_do_begin__Q214JStudio_JStage14TAdaptor_actorFv.s" } #pragma pop +#endif /* 8028A8D8-8028A92C 285218 0054+00 1/0 0/0 0/0 .text * adaptor_do_end__Q214JStudio_JStage14TAdaptor_actorFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_actor::adaptor_do_end() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/adaptor_do_end__Q214JStudio_JStage14TAdaptor_actorFv.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_end() { + adaptor_object_end_(); } -#pragma pop /* 8028A92C-8028A974 28526C 0048+00 1/0 0/0 0/0 .text * adaptor_do_update__Q214JStudio_JStage14TAdaptor_actorFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_actor::adaptor_do_update(u32 param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/adaptor_do_update__Q214JStudio_JStage14TAdaptor_actorFUl.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_update(u32 param_1) { + const JStudio::TObject* pObject = adaptor_getObject(); + JUT_ASSERT(104, pObject != 0); + JStudio::TControl* pControl = pObject->getControl(); + JUT_ASSERT(106, pControl != 0); + setJSG_SRT_(pControl); + pJSGObject_->JSGUpdate(); } -#pragma pop /* 8028A974-8028A998 2852B4 0024+00 1/0 0/0 0/0 .text * adaptor_do_data__Q214JStudio_JStage14TAdaptor_actorFPCvUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_actor::adaptor_do_data(void const* param_0, u32 param_1, - void const* param_2, u32 param_3) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/adaptor_do_data__Q214JStudio_JStage14TAdaptor_actorFPCvUlPCvUl.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_data(void const* param_1, u32 param_2, + void const* param_3, u32 param_4) { + adaptor_object_data_(param_1, param_2, param_3, param_4); } -#pragma pop /* 8028A998-8028A9F0 2852D8 0058+00 1/0 0/0 0/0 .text * adaptor_do_SHAPE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ +// Matches with literals +#ifdef NONMATCHING +void JStudio_JStage::TAdaptor_actor::adaptor_do_SHAPE(JStudio::data::TEOperationData operation, + void const* param_2, u32 param_3) { + setJSG_ID_(&JStage::TActor::JSGSetShape, operation, param_2, param_3); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -372,9 +429,17 @@ asm void JStudio_JStage::TAdaptor_actor::adaptor_do_SHAPE(JStudio::data::TEOpera #include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028A998.s" } #pragma pop +#endif /* 8028A9F0-8028AA48 285330 0058+00 1/0 0/0 0/0 .text * adaptor_do_ANIMATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ +// Matches with literals +#ifdef NONMATCHING +void JStudio_JStage::TAdaptor_actor::adaptor_do_ANIMATION(JStudio::data::TEOperationData operation, + void const* param_2, u32 param_3) { + setJSG_ID_(&JStage::TActor::JSGSetAnimation, operation, param_2, param_3); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -385,24 +450,32 @@ JStudio_JStage::TAdaptor_actor::adaptor_do_ANIMATION(JStudio::data::TEOperationD #include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028A9F0.s" } #pragma pop +#endif /* 8028AA48-8028AA5C 285388 0014+00 1/0 0/0 0/0 .text * adaptor_do_ANIMATION_MODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JStage::TAdaptor_actor::adaptor_do_ANIMATION_MODE(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028AA48.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_ANIMATION_MODE(JStudio::data::TEOperationData operation, + void const* pContent, u32 uSize) { + switch (operation) { + case JStudio::data::UNK_0x2: + JUT_ASSERT(153, uSize==4); + JUT_ASSERT(154, pContent!=0); + field_0x130 = *(u32*)pContent; + break; + } } -#pragma pop /* 8028AA5C-8028AAB4 28539C 0058+00 1/0 0/0 0/0 .text * adaptor_do_TEXTURE_ANIMATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ +// Matches with literals +#ifdef NONMATCHING +void JStudio_JStage::TAdaptor_actor::adaptor_do_TEXTURE_ANIMATION(JStudio::data::TEOperationData operation, + void const* param_2, u32 param_3) { + setJSG_ID_(&JStage::TActor::JSGSetTextureAnimation, operation, param_2, param_3); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -413,172 +486,274 @@ JStudio_JStage::TAdaptor_actor::adaptor_do_TEXTURE_ANIMATION(JStudio::data::TEOp #include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028AA5C.s" } #pragma pop +#endif /* 8028AAB4-8028AAC8 2853F4 0014+00 1/0 0/0 0/0 .text * adaptor_do_TEXTURE_ANIMATION_MODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_actor::adaptor_do_TEXTURE_ANIMATION_MODE( - JStudio::data::TEOperationData param_0, void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028AAB4.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_TEXTURE_ANIMATION_MODE( + JStudio::data::TEOperationData operation, void const* pContent, u32 uSize) { + switch (operation) { + case JStudio::data::UNK_0x2: + JUT_ASSERT(182, uSize==4); + JUT_ASSERT(183, pContent!=0); + field_0x134 = *(u32*)pContent; + break; + } } -#pragma pop /* 8028AAC8-8028AB0C 285408 0044+00 1/0 0/0 0/0 .text * adaptor_do_PARENT__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_actor::adaptor_do_PARENT(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028AAC8.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_PARENT( + JStudio::data::TEOperationData operation, void const* pContent, u32 uSize) { + switch (operation) { + case JStudio::data::UNK_0x18: + JUT_ASSERT(203, pContent!=0); + JUT_ASSERT(204, uSize!=0); + field_0x13c = adaptor_object_findJSGObject_((const char*)pContent); + break; + } } -#pragma pop /* 8028AB0C-8028AB68 28544C 005C+00 1/0 0/0 0/0 .text * adaptor_do_PARENT_NODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JStage::TAdaptor_actor::adaptor_do_PARENT_NODE(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028AB0C.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_PARENT_NODE( + JStudio::data::TEOperationData operation, void const* pContent, u32 uSize) { + switch (operation) { + case JStudio::data::UNK_0x18: + JUT_ASSERT(226, pContent!=0); + JUT_ASSERT(227, uSize!=0); + field_0x140 = adaptor_object_findJSGObjectNode_(field_0x13c, (const char*)pContent); + break; + case JStudio::data::UNK_0x19: + JUT_ASSERT(237, uSize==4); + JUT_ASSERT(238, pContent!=0); + field_0x140 = *(u32*)pContent; + break; + } } -#pragma pop /* 8028AB68-8028ABF0 2854A8 0088+00 1/0 0/0 0/0 .text * adaptor_do_PARENT_ENABLE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JStage::TAdaptor_actor::adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028AB68.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_PARENT_ENABLE( + JStudio::data::TEOperationData operation, void const* pContent, u32 uSize) { + switch (operation) { + case JStudio::data::UNK_0x2: + JUT_ASSERT(257, uSize==4); + JUT_ASSERT(258, pContent!=0); + bool v0 = (*(u32*)pContent != 0); + if (field_0x144 != v0) { + field_0x144 = v0; + switch (field_0x138) { + case 0: + break; + case 1: + JStage::TObject* object = NULL; + u32 v1 = -1; + if (v0 != 0) { + object = field_0x13c; + v1 = field_0x140; + } + pJSGObject_->JSGSetParent(object, v1); + break; + } + } + break; + } } -#pragma pop /* 8028ABF0-8028AC04 285530 0014+00 1/0 0/0 0/0 .text * adaptor_do_PARENT_FUNCTION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JStage::TAdaptor_actor::adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028ABF0.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_PARENT_FUNCTION( + JStudio::data::TEOperationData operation, void const* pContent, u32 uSize) { + switch (operation) { + case JStudio::data::UNK_0x2: + JUT_ASSERT(303, uSize==4); + JUT_ASSERT(304, pContent!=0); + field_0x138 = *(u32*)pContent; + break; + } } -#pragma pop /* 8028AC04-8028AC48 285544 0044+00 1/0 0/0 0/0 .text * adaptor_do_RELATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_actor::adaptor_do_RELATION(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028AC04.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_RELATION( + JStudio::data::TEOperationData operation, void const* pContent, u32 uSize) { + switch (operation) { + case JStudio::data::UNK_0x18: + JUT_ASSERT(324, pContent!=0); + JUT_ASSERT(325, uSize!=0); + field_0x148 = adaptor_object_findJSGObject_((const char*)pContent); + break; + } } -#pragma pop /* 8028AC48-8028ACA4 285588 005C+00 1/0 0/0 0/0 .text * adaptor_do_RELATION_NODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JStage::TAdaptor_actor::adaptor_do_RELATION_NODE(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028AC48.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_RELATION_NODE( + JStudio::data::TEOperationData operation, void const* pContent, u32 uSize) { + switch (operation) { + case JStudio::data::UNK_0x18: + JUT_ASSERT(347, pContent!=0); + JUT_ASSERT(348, uSize!=0); + field_0x14c = adaptor_object_findJSGObjectNode_(field_0x13c, (const char*)pContent); + break; + case JStudio::data::UNK_0x19: + JUT_ASSERT(358, uSize==4); + JUT_ASSERT(359, pContent!=0); + field_0x14c = *(u32*)pContent; + break; + } } -#pragma pop /* 8028ACA4-8028ACFC 2855E4 0058+00 1/0 0/0 0/0 .text * adaptor_do_RELATION_ENABLE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JStage::TAdaptor_actor::adaptor_do_RELATION_ENABLE(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028ACA4.s" +void JStudio_JStage::TAdaptor_actor::adaptor_do_RELATION_ENABLE( + JStudio::data::TEOperationData operation, void const* pContent, u32 uSize) { + switch (operation) { + case JStudio::data::UNK_0x2: + JUT_ASSERT(378, uSize==4); + JUT_ASSERT(379, pContent!=0); + pJSGObject_->JSGSetRelation(*(u32*)pContent, field_0x148, field_0x14c); + break; + } } -#pragma pop /* 8028ACFC-8028AD38 28563C 003C+00 3/3 0/0 0/0 .text * setJSG_ID___Q214JStudio_JStage14TAdaptor_actorFMQ26JStage6TActorFPCvPvUl_vQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_actor::setJSG_ID_(void (JStage::TActor::*param_0)(u32), - JStudio::data::TEOperationData param_1, - void const* param_2, u32 param_3) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028ACFC.s" +void JStudio_JStage::TAdaptor_actor::setJSG_ID_(void (JStage::TActor::*function)(u32), + JStudio::data::TEOperationData operation, + void const* pContent, u32 uSize) { + switch (operation) { + case JStudio::data::UNK_0x19: + (((JStage::TActor*)pJSGObject_)->*function)(*(u32*)pContent); + break; + } } -#pragma pop /* 8028AD38-8028AECC 285678 0194+00 1/1 0/0 0/0 .text * setJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_actor::setJSG_SRT_(JStudio::TControl const* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/setJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl.s" +void JStudio_JStage::TAdaptor_actor::setJSG_SRT_(JStudio::TControl const* pControl) { + JStudio::TControl::TTransform_translation_rotation_scaling transform; + JStudio::TControl::TTransform_translation_rotation_scaling multipliedTransform; + adaptor_getVariableValue_Vec(&transform.translation, sauVariableValue_3_TRANSLATION_XYZ); + adaptor_getVariableValue_Vec(&transform.rotation, sauVariableValue_3_ROTATION_XYZ); + adaptor_getVariableValue_Vec(&transform.scaling, sauVariableValue_3_SCALING_XYZ); + JStudio::TControl::TTransform_translation_rotation_scaling* pTransform; + if (field_0x144 == 0) { + pTransform = pControl->transformOnSet_transform_ifEnabled(&transform, &multipliedTransform); + } else { + pTransform = &transform; + switch (field_0x138) { + case 0: { + Mtx mtx; + bool check; + if (!transform_toGlobalFromLocal(mtx, *pTransform, field_0x13c, field_0x140)) { + check = false; + } else { + JStudio::math::getFromTransformation_SRxyzT( + &multipliedTransform.scaling, &multipliedTransform.rotation, + &multipliedTransform.translation, mtx); + check = true; + } + + if (!check) { + return; + } + pTransform = &multipliedTransform; + break; + } + case 1: + break; + } + } + JStage::TActor* pActor = get_pJSG_(); + pActor->JSGSetTranslation(pTransform->translation); + pActor->JSGSetRotation(pTransform->rotation); + pActor->JSGSetScaling(pTransform->scaling); } -#pragma pop /* 8028AECC-8028B064 28580C 0198+00 1/1 0/0 0/0 .text * getJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_actor::getJSG_SRT_(JStudio::TControl const* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/getJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl.s" +void JStudio_JStage::TAdaptor_actor::getJSG_SRT_(JStudio::TControl const* pControl) { + JStudio::TControl::TTransform_translation_rotation_scaling transform; + JStudio::TControl::TTransform_translation_rotation_scaling trs; + Mtx mtx; + JStage::TActor* pActor = get_pJSG_(); + pActor->JSGGetTranslation(&transform.translation); + pActor->JSGGetRotation(&transform.rotation); + pActor->JSGGetScaling(&transform.scaling); + + JStudio::TControl::TTransform_translation_rotation_scaling* outTransform; + if (!field_0x144) { + outTransform = pControl->transformOnGet_transform_ifEnabled(&transform, &trs); + } else { + outTransform = &transform; + switch (field_0x138) { + case 1: + break; + case 0: + bool check; + if (!transform_toLocalFromGlobal(mtx, *outTransform, field_0x13c, field_0x140)) { + check = false; + } else { + JStudio::math::getFromTransformation_SRxyzT(&trs.scaling, &trs.rotation, + &trs.translation, mtx); + check = true; + } + + if (!check) { + return; + } + outTransform = &trs; + break; + } + } + + adaptor_setVariableValue_Vec(sauVariableValue_3_TRANSLATION_XYZ, + outTransform->translation); + adaptor_setVariableValue_Vec(sauVariableValue_3_ROTATION_XYZ, outTransform->rotation); + adaptor_setVariableValue_Vec(sauVariableValue_3_SCALING_XYZ, outTransform->scaling); } -#pragma pop - -/* ############################################################################################## */ -/* 804554E0-804554E8 003AE0 0004+04 1/1 0/0 0/0 .sdata2 @1081 */ -SECTION_SDATA2 static f32 lit_1081[1 + 1 /* padding */] = { - 0.0f, - /* padding */ - 0.0f, -}; /* 8028B064-8028B138 2859A4 00D4+00 1/0 0/0 0/0 .text * __cl__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_CFfPQ27JStudio8TAdaptor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_actor::TVVOutput_ANIMATION_FRAME_::operator()( - f32 param_0, JStudio::TAdaptor* param_1) const { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-actor/func_8028B064.s" +void JStudio_JStage::TAdaptor_actor::TVVOutput_ANIMATION_FRAME_::operator()( + f32 param_1, JStudio::TAdaptor* adaptor) const { + JStage::TActor* actor = static_cast<TAdaptor_actor*>(adaptor)->get_pJSG_(); + // not sure what this bit is + u32 idx = *(u32*)(((u32)adaptor - 1) + field_0x8); + + u8 idx_lowBytes = idx; + u8 idx_highBytes = idx >> 8; + + f32 maxVal = (actor->*mMaxGetter)(); + switch (idx_highBytes) { + case 1: + param_1 = maxVal - param_1; + break; + case 0: + break; + } + + if (maxVal > 0.0f) { + param_1 = (f32)(*JStudio::TFunctionValue::toFunction_outside(idx_lowBytes))(param_1, maxVal); + } + (actor->*mSetter)(param_1); } -#pragma pop /* 8028B138-8028B198 285A78 0060+00 2/1 0/0 0/0 .text * __dt__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_Fv */ +#ifdef NONMATCHING +JStudio_JStage::TAdaptor_actor::TVVOutput_ANIMATION_FRAME_::~TVVOutput_ANIMATION_FRAME_() { +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -587,6 +762,7 @@ asm JStudio_JStage::TAdaptor_actor::TVVOutput_ANIMATION_FRAME_::~TVVOutput_ANIMA #include "asm/JSystem/JStudio/JStudio_JStage/object-actor/__dt__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_Fv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 803C5864-803C5888 022984 0010+14 2/2 0/0 0/0 .data diff --git a/libs/JSystem/JStudio/JStudio_JStage/object-ambientlight.cpp b/libs/JSystem/JStudio/JStudio_JStage/object-ambientlight.cpp index 23775e9678..0dea11a745 100644 --- a/libs/JSystem/JStudio/JStudio_JStage/object-ambientlight.cpp +++ b/libs/JSystem/JStudio/JStudio_JStage/object-ambientlight.cpp @@ -25,7 +25,7 @@ void JStudio_JStage::TAdaptor_ambientLight::adaptor_do_prepare() { * adaptor_do_begin__Q214JStudio_JStage21TAdaptor_ambientLightFv */ void JStudio_JStage::TAdaptor_ambientLight::adaptor_do_begin() { adaptor_object_begin_(); - GXColor color = ((JStage::TAmbientLight*)get_pJSG_())->JSGGetColor(); + GXColor color = get_pJSG_()->JSGGetColor(); adaptor_setVariableValue_GXColor(sauVariableValue_4_COLOR_RGBA, color); } @@ -38,7 +38,7 @@ void JStudio_JStage::TAdaptor_ambientLight::adaptor_do_end() { /* 8028B804-8028B87C 286144 0078+00 1/0 0/0 0/0 .text * adaptor_do_update__Q214JStudio_JStage21TAdaptor_ambientLightFUl */ void JStudio_JStage::TAdaptor_ambientLight::adaptor_do_update(u32 param_1) { - JStage::TAmbientLight* lightObj = (JStage::TAmbientLight*)get_pJSG_(); + JStage::TAmbientLight* lightObj = get_pJSG_(); GXColor color; adaptor_getVariableValue_GXColor(&color, sauVariableValue_4_COLOR_RGBA); lightObj->JSGSetColor(color); diff --git a/libs/JSystem/JStudio/JStudio_JStage/object-camera.cpp b/libs/JSystem/JStudio/JStudio_JStage/object-camera.cpp index 14380f404a..cddb9dfe2c 100644 --- a/libs/JSystem/JStudio/JStudio_JStage/object-camera.cpp +++ b/libs/JSystem/JStudio/JStudio_JStage/object-camera.cpp @@ -1,489 +1,333 @@ // -// Generated By: dol2asm -// Translation Unit: object-camera +// object-camera // #include "JSystem/JStudio/JStudio_JStage/object-camera.h" -#include "dol2asm.h" - -// -// Forward References: -// - -extern "C" void __ct__Q214JStudio_JStage15TAdaptor_cameraFPCQ26JStage7TSystemPQ26JStage7TCamera(); -extern "C" void __dt__Q214JStudio_JStage15TAdaptor_cameraFv(); -extern "C" void adaptor_do_prepare__Q214JStudio_JStage15TAdaptor_cameraFv(); -extern "C" void adaptor_do_begin__Q214JStudio_JStage15TAdaptor_cameraFv(); -extern "C" void adaptor_do_end__Q214JStudio_JStage15TAdaptor_cameraFv(); -extern "C" void adaptor_do_update__Q214JStudio_JStage15TAdaptor_cameraFUl(); -extern "C" void adaptor_do_data__Q214JStudio_JStage15TAdaptor_cameraFPCvUlPCvUl(); -extern "C" void -adaptor_do_PARENT__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_PARENT_FUNCTION__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_TARGET_PARENT__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_TARGET_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void -adaptor_do_TARGET_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl(); -extern "C" void setJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl(); -extern "C" void getJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl(); -extern "C" void setJSG_targetPosition___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl(); -extern "C" void getJSG_targetPosition___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl(); -extern "C" void func_8028C180(); -extern "C" void func_8028C4E4(void* _this); -extern "C" void func_8028C544(void* _this, f32, JStudio::TAdaptor*); -extern "C" u8 saoVVOutput___Q214JStudio_JStage15TAdaptor_camera[160 + 4 /* padding */]; - -// -// External References: -// - -extern "C" void __dt__Q37JStudio14TVariableValue7TOutputFv(); -extern "C" void update_immediate___Q27JStudio14TVariableValueFPQ27JStudio14TVariableValued(); -extern "C" void adaptor_setVariableValue_Vec__Q27JStudio8TAdaptorFPCUlRC3Vec(); -extern "C" void adaptor_getVariableValue_Vec__Q27JStudio8TAdaptorCFP3VecPCUl(); -extern "C" void __dt__Q27JStudio15TAdaptor_cameraFv(); -extern "C" void -transform_toGlobalFromLocal__14JStudio_JStageFPA4_fRCQ37JStudio8TControl19TTransform_positionPCQ26JStage7TObjectUl(); -extern "C" void -transform_toLocalFromGlobal__14JStudio_JStageFPA4_fRCQ37JStudio8TControl19TTransform_positionPCQ26JStage7TObjectUl(); -extern "C" void adaptor_object_data___Q214JStudio_JStage16TAdaptor_object_FPCvUlPCvUl(); -extern "C" void adaptor_object_findJSGObject___Q214JStudio_JStage16TAdaptor_object_FPCc(); -extern "C" void -adaptor_object_findJSGObjectNode___Q214JStudio_JStage16TAdaptor_object_FPCQ26JStage7TObjectPCc(); -extern "C" void __ct__Q27JStudio14TVariableValueFv(); -extern "C" void __dl__FPv(); -extern "C" void __register_global_object(); -extern "C" void __construct_array(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_29(); -extern "C" u8 const sauVariableValue_3_POSITION_XYZ__Q27JStudio15TAdaptor_camera[12]; -extern "C" u8 const sauVariableValue_3_TARGET_POSITION_XYZ__Q27JStudio15TAdaptor_camera[12]; -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; -extern "C" extern void* __vt__Q27JStudio15TAdaptor_camera[15]; -extern "C" extern void* __vt__Q27JStudio8TAdaptor[8]; -extern "C" extern void* __vt__Q37JStudio14TVariableValue7TOutput[4]; -extern "C" u8 soOutput_none___Q27JStudio14TVariableValue[4 + 4 /* padding */]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803C58A8-803C58B4 0229C8 000C+00 1/1 0/0 0/0 .data @1014 */ -SECTION_DATA static u8 lit_1014[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803C58B4-803C58C0 0229D4 000C+00 0/1 0/0 0/0 .data @1015 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_1015[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 803C58C0-803C58CC 0229E0 000C+00 0/1 0/0 0/0 .data @1019 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_1019[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 803C58CC-803C58D8 0229EC 000C+00 0/1 0/0 0/0 .data @1020 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_1020[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 803C58D8-803C58E4 0229F8 000C+00 0/1 0/0 0/0 .data @1024 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_1024[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 803C58E4-803C58F0 022A04 000C+00 0/1 0/0 0/0 .data @1025 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_1025[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 803C58F0-803C58FC 022A10 000C+00 0/1 0/0 0/0 .data @1029 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_1029[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 803C58FC-803C5908 022A1C 000C+00 0/1 0/0 0/0 .data @1030 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_1030[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 803C5908-803C5980 022A28 003C+3C 2/2 0/0 0/0 .data __vt__Q214JStudio_JStage15TAdaptor_camera */ -SECTION_DATA extern void* __vt__Q214JStudio_JStage15TAdaptor_camera[15 + 15 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__Q214JStudio_JStage15TAdaptor_cameraFv, - (void*)adaptor_do_prepare__Q214JStudio_JStage15TAdaptor_cameraFv, - (void*)adaptor_do_begin__Q214JStudio_JStage15TAdaptor_cameraFv, - (void*)adaptor_do_end__Q214JStudio_JStage15TAdaptor_cameraFv, - (void*)adaptor_do_update__Q214JStudio_JStage15TAdaptor_cameraFUl, - (void*)adaptor_do_data__Q214JStudio_JStage15TAdaptor_cameraFPCvUlPCvUl, - (void*) - adaptor_do_PARENT__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_PARENT_FUNCTION__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_TARGET_PARENT__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_TARGET_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_TARGET_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl, - /* padding */ - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, -}; /* 8028B8A0-8028B960 2861E0 00C0+00 0/0 1/1 0/0 .text * __ct__Q214JStudio_JStage15TAdaptor_cameraFPCQ26JStage7TSystemPQ26JStage7TCamera */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio_JStage::TAdaptor_camera::TAdaptor_camera(JStage::TSystem const* param_0, - JStage::TCamera* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028B8A0.s" +JStudio_JStage::TAdaptor_camera::TAdaptor_camera(JStage::TSystem const* param_1, + JStage::TCamera* param_2) + : TAdaptor_object_(param_1, param_2) { + field_0x108 = 0; + field_0x10c = 0; + field_0x110 = -1; + field_0x114 = 0; + field_0x118 = 0; + field_0x11c = -1; + field_0x120 = 0; } -#pragma pop /* 8028B960-8028B9D4 2862A0 0074+00 1/0 0/0 0/0 .text __dt__Q214JStudio_JStage15TAdaptor_cameraFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm JStudio_JStage::TAdaptor_camera::~TAdaptor_camera() { -extern "C" asm void __dt__Q214JStudio_JStage15TAdaptor_cameraFv() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/__dt__Q214JStudio_JStage15TAdaptor_cameraFv.s" +JStudio_JStage::TAdaptor_camera::~TAdaptor_camera() { + adaptor_do_end(); } -#pragma pop - -/* ############################################################################################## */ -/* 80431298-804312A4 05DFB8 000C+00 1/1 0/0 0/0 .bss @1018 */ -static u8 lit_1018[12]; - -/* 804312A4-804312B0 05DFC4 000C+00 0/1 0/0 0/0 .bss @1023 */ -#pragma push -#pragma force_active on -static u8 lit_1023[12]; -#pragma pop - -/* 804312B0-804312BC 05DFD0 000C+00 0/1 0/0 0/0 .bss @1028 */ -#pragma push -#pragma force_active on -static u8 lit_1028[12]; -#pragma pop - -/* 804312BC-804312C8 05DFDC 000C+00 0/1 0/0 0/0 .bss @1033 */ -#pragma push -#pragma force_active on -static u8 lit_1033[12]; -#pragma pop - -/* 804312C8-804312D4 05DFE8 000C+00 0/1 0/0 0/0 .bss @1034 */ -#pragma push -#pragma force_active on -static u8 lit_1034[12]; -#pragma pop /* 804312D4-80431378 05DFF4 00A0+04 2/3 0/0 0/0 .bss * saoVVOutput___Q214JStudio_JStage15TAdaptor_camera */ -u8 JStudio_JStage::TAdaptor_camera::saoVVOutput_[160 + 4 /* padding */]; +JStudio_JStage::TAdaptor_camera::TVVOutput JStudio_JStage::TAdaptor_camera::saoVVOutput_[5] = { + TVVOutput(JStudio_JStage::TAdaptor_camera::TECAMERA_7, &JStage::TCamera::JSGSetViewRoll, + &JStage::TCamera::JSGGetViewRoll), + TVVOutput(JStudio_JStage::TAdaptor_camera::TECAMERA_6, &JStage::TCamera::JSGSetProjectionFovy, + &JStage::TCamera::JSGGetProjectionFovy), + TVVOutput(JStudio_JStage::TAdaptor_camera::TECAMERA_8, &JStage::TCamera::JSGSetProjectionNear, + &JStage::TCamera::JSGGetProjectionNear), + TVVOutput(JStudio_JStage::TAdaptor_camera::TECAMERA_9, &JStage::TCamera::JSGSetProjectionFar, + &JStage::TCamera::JSGGetProjectionFar), + TVVOutput(), +}; /* 8028B9D4-8028BA1C 286314 0048+00 1/0 0/0 0/0 .text * adaptor_do_prepare__Q214JStudio_JStage15TAdaptor_cameraFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::adaptor_do_prepare() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/adaptor_do_prepare__Q214JStudio_JStage15TAdaptor_cameraFv.s" +void JStudio_JStage::TAdaptor_camera::adaptor_do_prepare() { + TVVOutput* pOutput = saoVVOutput_; + while (!pOutput->isEnd_()) { + pOutput->adaptor_setOutput_(this); + pOutput++; + } } -#pragma pop /* 8028BA1C-8028BAF8 28635C 00DC+00 1/0 0/0 0/0 .text * adaptor_do_begin__Q214JStudio_JStage15TAdaptor_cameraFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::adaptor_do_begin() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/adaptor_do_begin__Q214JStudio_JStage15TAdaptor_cameraFv.s" +void JStudio_JStage::TAdaptor_camera::adaptor_do_begin() { + adaptor_object_begin_(); + JStage::TCamera* pCamera = get_pJSG_(); + const JStudio::TObject* pObject = adaptor_getObject(); + JUT_ASSERT(70, pObject != 0); + JStudio::TControl* pControl = pObject->getControl(); + JUT_ASSERT(72, pControl != 0); + getJSG_position_(pControl); + getJSG_targetPosition_(pControl); + TVVOutput* pOutput = saoVVOutput_; + while (!pOutput->isEnd_()) { + pOutput->setVariableValue_(pCamera, this); + pOutput++; + } } -#pragma pop /* 8028BAF8-8028BB4C 286438 0054+00 1/0 0/0 0/0 .text * adaptor_do_end__Q214JStudio_JStage15TAdaptor_cameraFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::adaptor_do_end() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/adaptor_do_end__Q214JStudio_JStage15TAdaptor_cameraFv.s" +void JStudio_JStage::TAdaptor_camera::adaptor_do_end() { + adaptor_object_end_(); } -#pragma pop /* 8028BB4C-8028BBAC 28648C 0060+00 1/0 0/0 0/0 .text * adaptor_do_update__Q214JStudio_JStage15TAdaptor_cameraFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::adaptor_do_update(u32 param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/adaptor_do_update__Q214JStudio_JStage15TAdaptor_cameraFUl.s" +void JStudio_JStage::TAdaptor_camera::adaptor_do_update(u32 param_1) { + const JStudio::TObject* pObject = adaptor_getObject(); + JUT_ASSERT(98, pObject != 0); + JStudio::TControl* pControl = pObject->getControl(); + JUT_ASSERT(100, pControl != 0); + setJSG_position_(pControl); + setJSG_targetPosition_(pControl); + pJSGObject_->JSGUpdate(); } -#pragma pop /* 8028BBAC-8028BBD0 2864EC 0024+00 1/0 0/0 0/0 .text * adaptor_do_data__Q214JStudio_JStage15TAdaptor_cameraFPCvUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::adaptor_do_data(void const* param_0, u32 param_1, - void const* param_2, u32 param_3) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/adaptor_do_data__Q214JStudio_JStage15TAdaptor_cameraFPCvUlPCvUl.s" +void JStudio_JStage::TAdaptor_camera::adaptor_do_data(void const* param_1, u32 param_2, + void const* param_3, u32 param_4) { + adaptor_object_data_(param_1, param_2, param_3, param_4); } -#pragma pop /* 8028BBD0-8028BC14 286510 0044+00 1/0 0/0 0/0 .text * adaptor_do_PARENT__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028BBD0.s" +void JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT(JStudio::data::TEOperationData param_1, + void const* pContent, u32 uSize) { + switch(param_1) { + case JStudio::data::UNK_0x18: + JUT_ASSERT(132, pContent!=0); + JUT_ASSERT(133, uSize!=0); + field_0x10c = adaptor_object_findJSGObject_((char*)pContent); + break; + } } -#pragma pop /* 8028BC14-8028BC70 286554 005C+00 1/0 0/0 0/0 .text * adaptor_do_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT_NODE(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028BC14.s" +void JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT_NODE(JStudio::data::TEOperationData param_1, + void const* pContent, u32 uSize) { + switch (param_1) { + case JStudio::data::UNK_0x18: + JUT_ASSERT(155, pContent!=0); + JUT_ASSERT(156, uSize!=0); + field_0x110 = adaptor_object_findJSGObjectNode_(field_0x10c, (char*)pContent); + break; + case JStudio::data::UNK_0x19: + JUT_ASSERT(166, uSize==4); + JUT_ASSERT(167, pContent!=0); + field_0x110 = *(int*)pContent; + break; + } } -#pragma pop /* 8028BC70-8028BCEC 2865B0 007C+00 1/0 0/0 0/0 .text * adaptor_do_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028BC70.s" +void +JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData param_1, + void const* pContent, u32 uSize) { + switch (param_1) { + case JStudio::data::UNK_0x2: + JUT_ASSERT(185, uSize==4); + JUT_ASSERT(186, pContent!=0); + field_0x114 = *(u32*)pContent ? 1 : 0; + switch(field_0x108) { + case 1: + JStage::TObject* parent = 0; + int idx = -1; + if (field_0x114 != 0) { + parent = field_0x10c; + idx = field_0x110; + } + pJSGObject_->JSGSetParent(parent, idx); + break; + case 0: + break; + } + break; + } } -#pragma pop /* 8028BCEC-8028BD00 28662C 0014+00 1/0 0/0 0/0 .text * adaptor_do_PARENT_FUNCTION__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028BCEC.s" +void +JStudio_JStage::TAdaptor_camera::adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData param_1, + void const* pContent, u32 uSize) { + switch(param_1) { + case JStudio::data::UNK_0x2: + JUT_ASSERT(226, uSize==4); + JUT_ASSERT(227, pContent!=0); + field_0x108 = *(int*)pContent; + break; + } } -#pragma pop /* 8028BD00-8028BD44 286640 0044+00 1/0 0/0 0/0 .text * adaptor_do_TARGET_PARENT__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JStage::TAdaptor_camera::adaptor_do_TARGET_PARENT(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028BD00.s" +void JStudio_JStage::TAdaptor_camera::adaptor_do_TARGET_PARENT( + JStudio::data::TEOperationData param_1, void const* pContent, u32 uSize) { + switch(param_1) { + case JStudio::data::UNK_0x18: + JUT_ASSERT(247, pContent!=0); + JUT_ASSERT(248, uSize!=0); + field_0x118 = adaptor_object_findJSGObject_((char*)pContent); + break; + } } -#pragma pop /* 8028BD44-8028BDA0 286684 005C+00 1/0 0/0 0/0 .text * adaptor_do_TARGET_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::adaptor_do_TARGET_PARENT_NODE( - JStudio::data::TEOperationData param_0, void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028BD44.s" +void JStudio_JStage::TAdaptor_camera::adaptor_do_TARGET_PARENT_NODE( + JStudio::data::TEOperationData param_1, void const* pContent, u32 uSize) { + switch (param_1) { + case JStudio::data::UNK_0x18: + JUT_ASSERT(270, pContent!=0); + JUT_ASSERT(271, uSize!=0); + field_0x11c = adaptor_object_findJSGObjectNode_(field_0x118, (char*)pContent); + break; + case JStudio::data::UNK_0x19: + JUT_ASSERT(282, uSize==4); + JUT_ASSERT(283, pContent!=0); + field_0x11c = *(int*)pContent; + break; + } } -#pragma pop /* 8028BDA0-8028BDBC 2866E0 001C+00 1/0 0/0 0/0 .text * adaptor_do_TARGET_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::adaptor_do_TARGET_PARENT_ENABLE( - JStudio::data::TEOperationData param_0, void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028BDA0.s" +void JStudio_JStage::TAdaptor_camera::adaptor_do_TARGET_PARENT_ENABLE( + JStudio::data::TEOperationData param_1, void const* pContent, u32 uSize) { + switch(param_1) { + case JStudio::data::UNK_0x2: + JUT_ASSERT(301, uSize==4); + JUT_ASSERT(302, pContent!=0); + field_0x120 = *(int*)pContent ? 1 : 0; + break; + } } -#pragma pop /* 8028BDBC-8028BEB8 2866FC 00FC+00 1/1 0/0 0/0 .text * setJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::setJSG_position_(JStudio::TControl const* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028BDBC.s" +void JStudio_JStage::TAdaptor_camera::setJSG_position_(JStudio::TControl const* param_1) { + JStudio::TControl::TTransform_position VStack_138; + JStudio::TControl::TTransform_position VStack_144; + adaptor_getVariableValue_Vec(&VStack_138, sauVariableValue_3_POSITION_XYZ); + Vec* pViewPosition; + if (field_0x114 == 0) { + pViewPosition = param_1->transformOnSet_transform_ifEnabled(&VStack_138, &VStack_144); + } else { + pViewPosition = &VStack_138; + switch (field_0x108) { + case 0: + int iVar1 = + transform_toGlobalFromLocal(&VStack_144, VStack_138, field_0x10c, field_0x110); + if (iVar1 == 0) { + return; + } + pViewPosition = &VStack_144; + break; + case 1: + break; + } + } + get_pJSG_()->JSGSetViewPosition(*pViewPosition); } -#pragma pop /* 8028BEB8-8028BFBC 2867F8 0104+00 1/1 0/0 0/0 .text * getJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::getJSG_position_(JStudio::TControl const* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028BEB8.s" +void JStudio_JStage::TAdaptor_camera::getJSG_position_(JStudio::TControl const* param_1) { + Mtx mtx; + JStudio::TControl::TTransform_position transform; + JStudio::TControl::TTransform_position tempTransform; + JStudio::TControl::TTransform_position* outTransform; + + get_pJSG_()->JSGGetViewPosition(&transform); + + if (!field_0x114) { + outTransform = param_1->transformOnGet_transform_ifEnabled(&transform, &tempTransform); + } else { + outTransform = &transform; + switch (field_0x108) { + case 0: + bool check; + if (!transform_toLocalFromGlobal(mtx, *outTransform, field_0x10c, field_0x110)) { + check = false; + } else { + tempTransform.x = mtx[0][3]; + tempTransform.y = mtx[1][3]; + tempTransform.z = mtx[2][3]; + check = true; + } + + if (!check) { + return; + } + outTransform = &tempTransform; + break; + case 1: + break; + } + } + + adaptor_setVariableValue_Vec(sauVariableValue_3_POSITION_XYZ, *outTransform); } -#pragma pop /* 8028BFBC-8028C09C 2868FC 00E0+00 1/1 0/0 0/0 .text * setJSG_targetPosition___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::setJSG_targetPosition_(JStudio::TControl const* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028BFBC.s" +void JStudio_JStage::TAdaptor_camera::setJSG_targetPosition_(JStudio::TControl const* param_1) { + JStudio::TControl::TTransform_position transform; + JStudio::TControl::TTransform_position tempTransform; + JStudio::TControl::TTransform_position* outTransform; + adaptor_getVariableValue_Vec(&transform, sauVariableValue_3_TARGET_POSITION_XYZ); + if (field_0x120 == 0) { + outTransform = param_1->transformOnSet_transform_ifEnabled( + &transform, &tempTransform); + } else { + if (transform_toGlobalFromLocal(&tempTransform, transform, + field_0x118, field_0x11c) == 0) { + return; + } + outTransform = &tempTransform; + } + get_pJSG_()->JSGSetViewTargetPosition(*outTransform); } -#pragma pop /* 8028C09C-8028C180 2869DC 00E4+00 1/1 0/0 0/0 .text * getJSG_targetPosition___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_camera::getJSG_targetPosition_(JStudio::TControl const* param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028C09C.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803C5980-803C59A0 022AA0 0010+10 2/2 0/0 0/0 .data - * __vt__Q214JStudio_JStage83TVariableValueOutput_object_<Q214JStudio_JStage15TAdaptor_camera,Q26JStage7TCamera> - */ -SECTION_DATA extern void* data_803C5980[4 + 4 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)func_8028C544, - (void*)func_8028C4E4, - /* padding */ - NULL, - NULL, - NULL, - NULL, -}; - -/* 8028C180-8028C4E4 286AC0 0364+00 0/0 1/0 0/0 .text __sinit_object-camera_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void func_8028C180() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028C180.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x8028C180, func_8028C180); -#pragma pop - -/* 8028C4E4-8028C544 286E24 0060+00 2/1 0/0 0/0 .text - * __dt__Q214JStudio_JStage83TVariableValueOutput_object_<Q214JStudio_JStage15TAdaptor_camera,Q26JStage7TCamera>Fv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_8028C4E4(void* _this) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028C4E4.s" -} -#pragma pop - -/* 8028C544-8028C574 286E84 0030+00 1/0 0/0 0/0 .text - * __cl__Q214JStudio_JStage83TVariableValueOutput_object_<Q214JStudio_JStage15TAdaptor_camera,Q26JStage7TCamera>CFfPQ27JStudio8TAdaptor - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_8028C544(void* _this, f32 param_0, - JStudio::TAdaptor* param_1) /* const */ { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-camera/func_8028C544.s" +void JStudio_JStage::TAdaptor_camera::getJSG_targetPosition_(JStudio::TControl const* param_1) { + Mtx mtx; + JStudio::TControl::TTransform_position transform; + JStudio::TControl::TTransform_position tempTransform; + JStudio::TControl::TTransform_position* outTransform; + + get_pJSG_()->JSGGetViewTargetPosition(&transform); + + if (!field_0x120) { + outTransform = param_1->transformOnGet_transform_ifEnabled(&transform, &tempTransform); + } else { + outTransform = &transform; + bool check; + if (!transform_toLocalFromGlobal(mtx, *outTransform, field_0x118, field_0x11c)) { + check = false; + } else { + tempTransform.x = mtx[0][3]; + tempTransform.y = mtx[1][3]; + tempTransform.z = mtx[2][3]; + check = true; + } + + if (!check) { + return; + } + outTransform = &tempTransform; + } + + adaptor_setVariableValue_Vec(sauVariableValue_3_TARGET_POSITION_XYZ, *outTransform); } -#pragma pop diff --git a/libs/JSystem/JStudio/JStudio_JStage/object-fog.cpp b/libs/JSystem/JStudio/JStudio_JStage/object-fog.cpp index 2506af5389..17b773de4f 100644 --- a/libs/JSystem/JStudio/JStudio_JStage/object-fog.cpp +++ b/libs/JSystem/JStudio/JStudio_JStage/object-fog.cpp @@ -1,259 +1,71 @@ // -// Generated By: dol2asm -// Translation Unit: object-fog +// object-fog // #include "JSystem/JStudio/JStudio_JStage/object-fog.h" -#include "dol2asm.h" - -// -// Forward References: -// - -extern "C" void __ct__Q214JStudio_JStage12TAdaptor_fogFPCQ26JStage7TSystemPQ26JStage4TFog(); -extern "C" void __dt__Q214JStudio_JStage12TAdaptor_fogFv(); -extern "C" void adaptor_do_prepare__Q214JStudio_JStage12TAdaptor_fogFv(); -extern "C" void adaptor_do_begin__Q214JStudio_JStage12TAdaptor_fogFv(); -extern "C" void adaptor_do_end__Q214JStudio_JStage12TAdaptor_fogFv(); -extern "C" void adaptor_do_update__Q214JStudio_JStage12TAdaptor_fogFUl(); -extern "C" void adaptor_do_data__Q214JStudio_JStage12TAdaptor_fogFPCvUlPCvUl(); -extern "C" void func_8028C8A4(); -extern "C" void func_8028CAC0(void* _this); -extern "C" void func_8028CB20(void* _this, f32, JStudio::TAdaptor*); -extern "C" u8 saoVVOutput___Q214JStudio_JStage12TAdaptor_fog[96 + 4 /* padding */]; - -// -// External References: -// - -extern "C" void __dt__Q37JStudio14TVariableValue7TOutputFv(); -extern "C" void update_immediate___Q27JStudio14TVariableValueFPQ27JStudio14TVariableValued(); -extern "C" void adaptor_setVariableValue_GXColor__Q27JStudio8TAdaptorFPCUlRC8_GXColor(); -extern "C" void adaptor_getVariableValue_GXColor__Q27JStudio8TAdaptorCFP8_GXColorPCUl(); -extern "C" void __dt__Q27JStudio12TAdaptor_fogFv(); -extern "C" void adaptor_object_data___Q214JStudio_JStage16TAdaptor_object_FPCvUlPCvUl(); -extern "C" void __ct__Q27JStudio14TVariableValueFv(); -extern "C" void __dl__FPv(); -extern "C" void __register_global_object(); -extern "C" void __construct_array(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_29(); -extern "C" u8 const sauVariableValue_4_COLOR_RGBA__Q27JStudio12TAdaptor_fog[16]; -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; -extern "C" extern void* __vt__Q27JStudio12TAdaptor_fog[8]; -extern "C" extern void* __vt__Q27JStudio8TAdaptor[8]; -extern "C" extern void* __vt__Q37JStudio14TVariableValue7TOutput[4]; -extern "C" u8 soOutput_none___Q27JStudio14TVariableValue[4 + 4 /* padding */]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803C59A0-803C59AC 022AC0 000C+00 1/1 0/0 0/0 .data @844 */ -SECTION_DATA static u8 lit_844[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803C59AC-803C59B8 022ACC 000C+00 0/1 0/0 0/0 .data @845 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_845[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 803C59B8-803C59C4 022AD8 000C+00 0/1 0/0 0/0 .data @849 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_849[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 803C59C4-803C59D0 022AE4 000C+00 0/1 0/0 0/0 .data @850 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lit_850[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 803C59D0-803C5A10 022AF0 0020+20 2/2 0/0 0/0 .data __vt__Q214JStudio_JStage12TAdaptor_fog */ -SECTION_DATA extern void* __vt__Q214JStudio_JStage12TAdaptor_fog[8 + 8 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__Q214JStudio_JStage12TAdaptor_fogFv, - (void*)adaptor_do_prepare__Q214JStudio_JStage12TAdaptor_fogFv, - (void*)adaptor_do_begin__Q214JStudio_JStage12TAdaptor_fogFv, - (void*)adaptor_do_end__Q214JStudio_JStage12TAdaptor_fogFv, - (void*)adaptor_do_update__Q214JStudio_JStage12TAdaptor_fogFUl, - (void*)adaptor_do_data__Q214JStudio_JStage12TAdaptor_fogFPCvUlPCvUl, - /* padding */ - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, -}; /* 8028C574-8028C610 286EB4 009C+00 0/0 1/1 0/0 .text * __ct__Q214JStudio_JStage12TAdaptor_fogFPCQ26JStage7TSystemPQ26JStage4TFog */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio_JStage::TAdaptor_fog::TAdaptor_fog(JStage::TSystem const* param_0, - JStage::TFog* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-fog/func_8028C574.s" -} -#pragma pop +JStudio_JStage::TAdaptor_fog::TAdaptor_fog(JStage::TSystem const* param_0, JStage::TFog* param_1) + : TAdaptor_object_(param_0, param_1) {} /* 8028C610-8028C684 286F50 0074+00 1/0 0/0 0/0 .text __dt__Q214JStudio_JStage12TAdaptor_fogFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm JStudio_JStage::TAdaptor_fog::~TAdaptor_fog() { -extern "C" asm void __dt__Q214JStudio_JStage12TAdaptor_fogFv() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-fog/__dt__Q214JStudio_JStage12TAdaptor_fogFv.s" +JStudio_JStage::TAdaptor_fog::~TAdaptor_fog() { + adaptor_do_end(); } -#pragma pop - -/* ############################################################################################## */ -/* 80431378-80431384 05E098 000C+00 1/1 0/0 0/0 .bss @848 */ -static u8 lit_848[12]; - -/* 80431384-80431390 05E0A4 000C+00 0/1 0/0 0/0 .bss @853 */ -#pragma push -#pragma force_active on -static u8 lit_853[12]; -#pragma pop - -/* 80431390-8043139C 05E0B0 000C+00 0/1 0/0 0/0 .bss @854 */ -#pragma push -#pragma force_active on -static u8 lit_854[12]; -#pragma pop /* 8043139C-80431400 05E0BC 0060+04 2/3 0/0 0/0 .bss * saoVVOutput___Q214JStudio_JStage12TAdaptor_fog */ -u8 JStudio_JStage::TAdaptor_fog::saoVVOutput_[96 + 4 /* padding */]; +JStudio_JStage::TVariableValueOutput_object_<JStudio_JStage::TAdaptor_fog, JStage::TFog> JStudio_JStage::TAdaptor_fog::saoVVOutput_[3] = { + JStudio_JStage::TVariableValueOutput_object_<JStudio_JStage::TAdaptor_fog, JStage::TFog>(JStudio_JStage::TAdaptor_fog::TEFOG_4, &JStage::TFog::JSGSetStartZ, &JStage::TFog::JSGGetStartZ), + JStudio_JStage::TVariableValueOutput_object_<JStudio_JStage::TAdaptor_fog, JStage::TFog>(JStudio_JStage::TAdaptor_fog::TEFOG_5, &JStage::TFog::JSGSetEndZ, &JStage::TFog::JSGGetEndZ), + JStudio_JStage::TVariableValueOutput_object_<JStudio_JStage::TAdaptor_fog, JStage::TFog>(), +}; /* 8028C684-8028C6CC 286FC4 0048+00 1/0 0/0 0/0 .text * adaptor_do_prepare__Q214JStudio_JStage12TAdaptor_fogFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_fog::adaptor_do_prepare() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-fog/adaptor_do_prepare__Q214JStudio_JStage12TAdaptor_fogFv.s" +void JStudio_JStage::TAdaptor_fog::adaptor_do_prepare() { + TVariableValueOutput_object_<JStudio_JStage::TAdaptor_fog, JStage::TFog>* pOutput = + saoVVOutput_; + while (!pOutput->isEnd_()) { + pOutput->adaptor_setOutput_(this); + pOutput++; + } } -#pragma pop /* 8028C6CC-8028C7B4 28700C 00E8+00 1/0 0/0 0/0 .text * adaptor_do_begin__Q214JStudio_JStage12TAdaptor_fogFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_fog::adaptor_do_begin() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-fog/adaptor_do_begin__Q214JStudio_JStage12TAdaptor_fogFv.s" +void JStudio_JStage::TAdaptor_fog::adaptor_do_begin() { + adaptor_object_begin_(); + JStage::TFog* pFog = get_pJSG_(); + adaptor_setVariableValue_GXColor(sauVariableValue_4_COLOR_RGBA, pFog->JSGGetColor()); + TVariableValueOutput_object_<JStudio_JStage::TAdaptor_fog, JStage::TFog>* pOutput = + saoVVOutput_; + while (!pOutput->isEnd_()) { + pOutput->setVariableValue_(pFog, this); + pOutput++; + } } -#pragma pop /* 8028C7B4-8028C808 2870F4 0054+00 1/0 0/0 0/0 .text * adaptor_do_end__Q214JStudio_JStage12TAdaptor_fogFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_fog::adaptor_do_end() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-fog/adaptor_do_end__Q214JStudio_JStage12TAdaptor_fogFv.s" +void JStudio_JStage::TAdaptor_fog::adaptor_do_end() { + adaptor_object_end_(); } -#pragma pop /* 8028C808-8028C880 287148 0078+00 1/0 0/0 0/0 .text * adaptor_do_update__Q214JStudio_JStage12TAdaptor_fogFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_fog::adaptor_do_update(u32 param_0) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-fog/adaptor_do_update__Q214JStudio_JStage12TAdaptor_fogFUl.s" +void JStudio_JStage::TAdaptor_fog::adaptor_do_update(u32 param_1) { + JStage::TFog* pFog = get_pJSG_(); + GXColor color; + adaptor_getVariableValue_GXColor(&color, sauVariableValue_4_COLOR_RGBA); + pFog->JSGSetColor(color); + pJSGObject_->JSGUpdate(); } -#pragma pop /* 8028C880-8028C8A4 2871C0 0024+00 1/0 0/0 0/0 .text * adaptor_do_data__Q214JStudio_JStage12TAdaptor_fogFPCvUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_fog::adaptor_do_data(void const* param_0, u32 param_1, - void const* param_2, u32 param_3) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-fog/adaptor_do_data__Q214JStudio_JStage12TAdaptor_fogFPCvUlPCvUl.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803C5A10-803C5A30 022B30 0010+10 2/2 0/0 0/0 .data - * __vt__Q214JStudio_JStage77TVariableValueOutput_object_<Q214JStudio_JStage12TAdaptor_fog,Q26JStage4TFog> - */ -SECTION_DATA extern void* data_803C5A10[4 + 4 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)func_8028CB20, - (void*)func_8028CAC0, - /* padding */ - NULL, - NULL, - NULL, - NULL, -}; - -/* 8028C8A4-8028CAC0 2871E4 021C+00 0/0 1/0 0/0 .text __sinit_object-fog_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void func_8028C8A4() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-fog/func_8028C8A4.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x8028C8A4, func_8028C8A4); -#pragma pop - -/* 8028CAC0-8028CB20 287400 0060+00 2/1 0/0 0/0 .text - * __dt__Q214JStudio_JStage77TVariableValueOutput_object_<Q214JStudio_JStage12TAdaptor_fog,Q26JStage4TFog>Fv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_8028CAC0(void* _this) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-fog/func_8028CAC0.s" -} -#pragma pop - -/* 8028CB20-8028CB50 287460 0030+00 1/0 0/0 0/0 .text - * __cl__Q214JStudio_JStage77TVariableValueOutput_object_<Q214JStudio_JStage12TAdaptor_fog,Q26JStage4TFog>CFfPQ27JStudio8TAdaptor - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_8028CB20(void* _this, f32 param_0, - JStudio::TAdaptor* param_1) /* const */ { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-fog/func_8028CB20.s" +void JStudio_JStage::TAdaptor_fog::adaptor_do_data(void const* param_1, u32 param_2, + void const* param_3, u32 param_4) { + adaptor_object_data_(param_1, param_2, param_3, param_4); } -#pragma pop diff --git a/libs/JSystem/JStudio/JStudio_JStage/object-light.cpp b/libs/JSystem/JStudio/JStudio_JStage/object-light.cpp index bba5a4b2d6..e4b3f74323 100644 --- a/libs/JSystem/JStudio/JStudio_JStage/object-light.cpp +++ b/libs/JSystem/JStudio/JStudio_JStage/object-light.cpp @@ -55,107 +55,51 @@ extern "C" extern void* __vt__Q27JStudio8TAdaptor[8]; extern "C" extern void* __vt__Q37JStudio14TVariableValue7TOutput[4]; extern "C" u8 soOutput_none___Q27JStudio14TVariableValue[4 + 4 /* padding */]; -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803C5A30-803C5A40 022B50 0010+00 2/2 0/0 0/0 .data - * __vt__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_ */ -SECTION_DATA extern void* __vt__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_[4] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__cl__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_CFfPQ27JStudio8TAdaptor, - (void*)__dt__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_Fv, -}; - -/* 803C5A40-803C5A68 022B60 0028+00 2/2 0/0 0/0 .data __vt__Q214JStudio_JStage14TAdaptor_light */ -SECTION_DATA extern void* __vt__Q214JStudio_JStage14TAdaptor_light[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__Q214JStudio_JStage14TAdaptor_lightFv, - (void*)adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_lightFv, - (void*)adaptor_do_begin__Q214JStudio_JStage14TAdaptor_lightFv, - (void*)adaptor_do_end__Q214JStudio_JStage14TAdaptor_lightFv, - (void*)adaptor_do_update__Q214JStudio_JStage14TAdaptor_lightFUl, - (void*)adaptor_do_data__Q214JStudio_JStage14TAdaptor_lightFPCvUlPCvUl, - (void*) - adaptor_do_ENABLE__Q214JStudio_JStage14TAdaptor_lightFQ37JStudio4data15TEOperationDataPCvUl, - (void*) - adaptor_do_FACULTY__Q214JStudio_JStage14TAdaptor_lightFQ37JStudio4data15TEOperationDataPCvUl, -}; - /* 8028CB50-8028CBF4 287490 00A4+00 0/0 1/1 0/0 .text * __ct__Q214JStudio_JStage14TAdaptor_lightFPCQ26JStage7TSystemPQ26JStage6TLight */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio_JStage::TAdaptor_light::TAdaptor_light(JStage::TSystem const* param_0, - JStage::TLight* param_1) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-light/func_8028CB50.s" +JStudio_JStage::TAdaptor_light::TAdaptor_light(JStage::TSystem const* param_1, + JStage::TLight* param_2) + : JStudio_JStage::TAdaptor_object_(param_1, param_2) { + field_0x11c = 0; } -#pragma pop /* 8028CBF4-8028CC68 287534 0074+00 1/0 0/0 0/0 .text __dt__Q214JStudio_JStage14TAdaptor_lightFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio_JStage::TAdaptor_light::~TAdaptor_light() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-light/__dt__Q214JStudio_JStage14TAdaptor_lightFv.s" +JStudio_JStage::TAdaptor_light::~TAdaptor_light() { + adaptor_do_end(); } -#pragma pop - -/* ############################################################################################## */ -/* 80431400-8043140C 05E120 000C+00 1/1 0/0 0/0 .bss @930 */ -static u8 lit_930[12]; - -/* 8043140C-80431418 05E12C 000C+00 0/1 0/0 0/0 .bss @931 */ -#pragma push -#pragma force_active on -static u8 lit_931[12]; -#pragma pop - -/* 80431418-80431424 05E138 000C+00 0/1 0/0 0/0 .bss @932 */ -#pragma push -#pragma force_active on -static u8 lit_932[12]; -#pragma pop - -/* 80431424-80431430 05E144 000C+00 0/1 0/0 0/0 .bss @933 */ -#pragma push -#pragma force_active on -static u8 lit_933[12]; -#pragma pop - -/* 80431430-8043143C 05E150 000C+00 0/1 0/0 0/0 .bss @934 */ -#pragma push -#pragma force_active on -static u8 lit_934[12]; -#pragma pop - -/* 8043143C-80431448 05E15C 000C+00 0/1 0/0 0/0 .bss @935 */ -#pragma push -#pragma force_active on -static u8 lit_935[12]; -#pragma pop /* 80431448-80431490 05E168 0048+00 1/2 0/0 0/0 .bss * saoVVOutput_direction___Q214JStudio_JStage14TAdaptor_light */ -u8 JStudio_JStage::TAdaptor_light::saoVVOutput_direction_[72]; +JStudio_JStage::TAdaptor_light::TVVOutput_direction_ + JStudio_JStage::TAdaptor_light::saoVVOutput_direction_[6] = { + JStudio_JStage::TAdaptor_light::TVVOutput_direction_( + JStudio_JStage::TAdaptor_light::TE_VALUE_10, + JStudio_JStage::TAdaptor_light::DIRECTION_1), + JStudio_JStage::TAdaptor_light::TVVOutput_direction_( + JStudio_JStage::TAdaptor_light::TE_VALUE_11, + JStudio_JStage::TAdaptor_light::DIRECTION_1), + JStudio_JStage::TAdaptor_light::TVVOutput_direction_( + JStudio_JStage::TAdaptor_light::TE_VALUE_7, + JStudio_JStage::TAdaptor_light::DIRECTION_2), + JStudio_JStage::TAdaptor_light::TVVOutput_direction_( + JStudio_JStage::TAdaptor_light::TE_VALUE_8, + JStudio_JStage::TAdaptor_light::DIRECTION_2), + JStudio_JStage::TAdaptor_light::TVVOutput_direction_( + JStudio_JStage::TAdaptor_light::TE_VALUE_9, + JStudio_JStage::TAdaptor_light::DIRECTION_2), + JStudio_JStage::TAdaptor_light::TVVOutput_direction_(), +}; /* 8028CC68-8028CCB0 2875A8 0048+00 1/0 0/0 0/0 .text * adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_lightFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_light::adaptor_do_prepare() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-light/adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_lightFv.s" +void JStudio_JStage::TAdaptor_light::adaptor_do_prepare() { + TVVOutput_direction_* pOutput = saoVVOutput_direction_; + while (!pOutput->isEnd_()) { + pOutput->adaptor_setOutput_(this); + pOutput++; + } } -#pragma pop /* ############################################################################################## */ /* 804554E8-804554F0 003AE8 0004+04 1/1 0/0 0/0 .sdata2 @846 */ @@ -181,6 +125,36 @@ SECTION_SDATA2 static f32 lit_850 = 57.295780181884766f; /* 8028CCB0-8028CF68 2875F0 02B8+00 1/0 0/0 0/0 .text * adaptor_do_begin__Q214JStudio_JStage14TAdaptor_lightFv */ +// regalloc +#ifdef NONMATCHING +void JStudio_JStage::TAdaptor_light::adaptor_do_begin() { + adaptor_object_begin_(); + JStage::TLight* pLightObj = get_pJSG_(); + const JStudio::TObject* pObject = adaptor_getObject(); + JUT_ASSERT(60, pObject != 0); + JStudio::TControl* pControl = pObject->getControl(); + GXColor lightColor = pLightObj->JSGGetColor(); + adaptor_setVariableValue_GXColor(sauVariableValue_4_COLOR_RGBA, lightColor); + JStudio::TControl::TTransform_position_direction lightObjTransform; + JStudio::TControl::TTransform_position_direction aTStack_b8; + pLightObj->JSGGetPosition(&lightObjTransform.position); + pLightObj->JSGGetDirection(&lightObjTransform.direction); + JStudio::TControl::TTransform_position_direction* finalTransform = + pControl->transformOnGet_transform_ifEnabled(&lightObjTransform, &aTStack_b8); + adaptor_setVariableValue_Vec(sauVariableValue_3_POSITION_XYZ, finalTransform->position); + f32 dirx = finalTransform->direction.x; + f32 diry = finalTransform->direction.y; + f32 dirz = finalTransform->direction.z; + f32 sqr = sqrtf(dirx * dirx + dirz * dirz); + f32 dVar11 = atan2(dirx, dirz); + f32 dVar9 = atan2(diry, sqr); + adaptor_setVariableValue_immediate(10, (180.0f / M_PI) * dVar11); + adaptor_setVariableValue_immediate(11, (180.0f / M_PI) * dVar9); + Vec VStack_c4; + VECAdd(&finalTransform->position, &finalTransform->direction, &VStack_c4); + adaptor_setVariableValue_Vec(sauVariableValue_3_TARGET_POSITION_XYZ, VStack_c4); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -189,17 +163,13 @@ asm void JStudio_JStage::TAdaptor_light::adaptor_do_begin() { #include "asm/JSystem/JStudio/JStudio_JStage/object-light/adaptor_do_begin__Q214JStudio_JStage14TAdaptor_lightFv.s" } #pragma pop +#endif /* 8028CF68-8028CFBC 2878A8 0054+00 1/0 0/0 0/0 .text * adaptor_do_end__Q214JStudio_JStage14TAdaptor_lightFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_light::adaptor_do_end() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-light/adaptor_do_end__Q214JStudio_JStage14TAdaptor_lightFv.s" +void JStudio_JStage::TAdaptor_light::adaptor_do_end() { + adaptor_object_end_(); } -#pragma pop /* ############################################################################################## */ /* 8045550C-80455510 003B0C 0004+00 1/1 0/0 0/0 .sdata2 @898 */ @@ -207,6 +177,44 @@ SECTION_SDATA2 static f32 lit_898 = 0.01745329238474369f; /* 8028CFBC-8028D18C 2878FC 01D0+00 1/0 0/0 0/0 .text * adaptor_do_update__Q214JStudio_JStage14TAdaptor_lightFUl */ +// float regalloc +#ifdef NONMATCHING +void JStudio_JStage::TAdaptor_light::adaptor_do_update(u32 param_1) { + JStage::TLight* lightObj = get_pJSG_(); + const JStudio::TObject* pObject = adaptor_getObject(); + JUT_ASSERT(118, pObject!=0); + JStudio::TControl* pControl = pObject->getControl(); + JUT_ASSERT(120, pControl!=0); + GXColor lightColor; + adaptor_getVariableValue_GXColor(&lightColor, sauVariableValue_4_COLOR_RGBA); + lightObj->JSGSetColor(lightColor); + JStudio::TControl::TTransform_position_direction VStack_198; + JStudio::TControl::TTransform_position_direction aTStack_1b0; + adaptor_getVariableValue_Vec(&VStack_198.position, sauVariableValue_3_POSITION_XYZ); + switch (field_0x11c) { + case 1: + f32 dVar10 = adaptor_getVariableValue(10)->getValue(); + f32 dVar11 = adaptor_getVariableValue(11)->getValue(); + f32 temp = 0.01745329238474369f * dVar11; + f32 dVar12 = cos(temp); + f32 sinVal = sin(temp); + f32 temp2 = 0.01745329238474369f * dVar10; + VStack_198.direction.x = dVar12 * (f32)sin(temp2); + VStack_198.direction.y = sinVal; + VStack_198.direction.z = dVar12 * (f32)cos(temp2); + break; + case 2: + Vec VStack_1c0; + adaptor_getVariableValue_Vec(&VStack_1c0, sauVariableValue_3_TARGET_POSITION_XYZ); + VECSubtract(&VStack_1c0, &VStack_198.position, &VStack_198.direction); + } + JStudio::TControl::TTransform_position_direction* pTrans = + pControl->transformOnSet_transform_ifEnabled(&VStack_198, &aTStack_1b0); + lightObj->JSGSetPosition(pTrans->position); + lightObj->JSGSetDirection(pTrans->direction); + pJSGObject_->JSGUpdate(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -215,78 +223,54 @@ asm void JStudio_JStage::TAdaptor_light::adaptor_do_update(u32 param_0) { #include "asm/JSystem/JStudio/JStudio_JStage/object-light/adaptor_do_update__Q214JStudio_JStage14TAdaptor_lightFUl.s" } #pragma pop +#endif /* 8028D18C-8028D1B0 287ACC 0024+00 1/0 0/0 0/0 .text * adaptor_do_data__Q214JStudio_JStage14TAdaptor_lightFPCvUlPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_light::adaptor_do_data(void const* param_0, u32 param_1, - void const* param_2, u32 param_3) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-light/adaptor_do_data__Q214JStudio_JStage14TAdaptor_lightFPCvUlPCvUl.s" +void JStudio_JStage::TAdaptor_light::adaptor_do_data(void const* param_1, u32 param_2, + void const* param_3, u32 param_4) { + adaptor_object_data_(param_1, param_2, param_3, param_4); } -#pragma pop /* 8028D1B0-8028D228 287AF0 0078+00 1/0 0/0 0/0 .text * adaptor_do_FACULTY__Q214JStudio_JStage14TAdaptor_lightFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_light::adaptor_do_FACULTY(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-light/func_8028D1B0.s" +void JStudio_JStage::TAdaptor_light::adaptor_do_FACULTY(JStudio::data::TEOperationData param_1, + void const* pContent, u32 uSize) { + switch (param_1) { + case JStudio::data::UNK_0x2: + JUT_ASSERT(198, uSize==4); + JUT_ASSERT(199, pContent!=0); + JStage::TELight lightType; + switch (*(u32*)pContent) { + case 0x301: + lightType = JStage::TELIGHT_1; + break; + case 0x302: + lightType = JStage::TELIGHT_2; + break; + case 0x303: + lightType = JStage::TELIGHT_3; + break; + default: + // TODO: find out how to lose the goto + goto end; + } + get_pJSG_()->JSGSetLightType(lightType); + break; + } + end:; } -#pragma pop /* 8028D228-8028D24C 287B68 0024+00 1/0 0/0 0/0 .text * adaptor_do_ENABLE__Q214JStudio_JStage14TAdaptor_lightFQ37JStudio4data15TEOperationDataPCvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JStudio_JStage::TAdaptor_light::adaptor_do_ENABLE(JStudio::data::TEOperationData param_0, - void const* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-light/func_8028D228.s" +void JStudio_JStage::TAdaptor_light::adaptor_do_ENABLE(JStudio::data::TEOperationData param_1, + void const* param_2, u32 param_3) { + adaptor_object_ENABLE_(param_1, param_2, param_3); } -#pragma pop /* 8028D24C-8028D258 287B8C 000C+00 1/0 0/0 0/0 .text * __cl__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_CFfPQ27JStudio8TAdaptor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void -JStudio_JStage::TAdaptor_light::TVVOutput_direction_::operator()(f32 param_0, - JStudio::TAdaptor* param_1) const { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-light/func_8028D24C.s" +void JStudio_JStage::TAdaptor_light::TVVOutput_direction_::operator()( + f32 param_0, JStudio::TAdaptor* param_1) const { + ((JStudio_JStage::TAdaptor_light*)param_1)->field_0x11c = field_0x8; } -#pragma pop - -/* 8028D258-8028D2B8 287B98 0060+00 2/1 0/0 0/0 .text - * __dt__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JStudio_JStage::TAdaptor_light::TVVOutput_direction_::~TVVOutput_direction_() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-light/__dt__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_Fv.s" -} -#pragma pop - -/* 8028D2B8-8028D550 287BF8 0298+00 0/0 1/0 0/0 .text __sinit_object-light_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void func_8028D2B8() { - nofralloc -#include "asm/JSystem/JStudio/JStudio_JStage/object-light/func_8028D2B8.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x8028D2B8, func_8028D2B8); -#pragma pop diff --git a/libs/JSystem/JStudio/JStudio_JStage/object.cpp b/libs/JSystem/JStudio/JStudio_JStage/object.cpp index ced696bc97..03434f045c 100644 --- a/libs/JSystem/JStudio/JStudio_JStage/object.cpp +++ b/libs/JSystem/JStudio/JStudio_JStage/object.cpp @@ -104,7 +104,7 @@ void JStudio_JStage::TAdaptor_object_::adaptor_object_data_(void const* param_1, JStage::TObject* JStudio_JStage::TAdaptor_object_::adaptor_object_findJSGObject_(char const* param_1) { JStage::TObject* pJSGObject; - if (pJSGSystem_->JSGFindObject(&pJSGObject, param_1, JStage::TOBJ_ACTOR_UNK) == 0) { + if (pJSGSystem_->JSGFindObject(&pJSGObject, param_1, JStage::OBJECT_UNDEFINED) == 0) { JUT_ASSERT(122, pJSGObject != 0); } else { return NULL; |
