switch to dtk setup (#2203)

* switch to dtk setup

* some cleanup / fixes

* cleanup d_a_alink literals

* Restore doxygen, update CI & README.md (#1)

* Fix build image ref (#2)

---------

Co-authored-by: Luke Street <luke@street.dev>
This commit is contained in:
TakaRikka
2024-10-10 07:29:58 -07:00
committed by GitHub
parent 3769ea47a6
commit 178194ccb2
33438 changed files with 370506 additions and 3055930 deletions
+6
View File
@@ -0,0 +1,6 @@
#include "JSystem/JStudio/JStudio/ctb.h"
/* ############################################################################################## */
/* 804553F8-80455400 0039F8 0004+04 0/0 1/1 0/0 .sdata2 ga4cSignature__Q37JStudio3ctb4data
*/
const u32 JStudio::ctb::data::ga4cSignature = 'CTB\0';
+305
View File
@@ -0,0 +1,305 @@
//
// Generated By: dol2asm
// Translation Unit: ctb
//
#include "JSystem/JStudio/JStudio/ctb.h"
#include "iterator.h"
#include "string.h"
#include "dol2asm.h"
//
// Types:
//
namespace std {
void func_802815B4(void* _this, JGadget::TLinkList<JStudio::ctb::TObject, 12>::iterator,
JGadget::TLinkList<JStudio::ctb::TObject, 12>::iterator, JStudio::object::TPRObject_ID_equal);
}; // namespace std
//
// Forward References:
//
extern "C" void __dt__Q37JStudio3ctb7TObjectFv();
extern "C" void __ct__Q37JStudio3ctb14TObject_TxyzRyFRCQ47JStudio3ctb4data13TParse_TBlock();
extern "C" bool getScheme__Q37JStudio3ctb14TObject_TxyzRyCFv();
extern "C" void __ct__Q37JStudio3ctb8TControlFv();
extern "C" void __dt__Q37JStudio3ctb8TControlFv();
extern "C" void appendObject__Q37JStudio3ctb8TControlFPQ37JStudio3ctb7TObject();
extern "C" void removeObject__Q37JStudio3ctb8TControlFPQ37JStudio3ctb7TObject();
extern "C" void destroyObject__Q37JStudio3ctb8TControlFPQ37JStudio3ctb7TObject();
extern "C" void destroyObject_all__Q37JStudio3ctb8TControlFv();
extern "C" void getObject__Q37JStudio3ctb8TControlFPCvUl();
extern "C" void getObject_index__Q37JStudio3ctb8TControlFUl();
extern "C" void __dt__Q37JStudio3ctb8TFactoryFv();
extern "C" void create__Q37JStudio3ctb8TFactoryFRCQ47JStudio3ctb4data13TParse_TBlock();
extern "C" void destroy__Q37JStudio3ctb8TFactoryFPQ37JStudio3ctb7TObject();
extern "C" void __ct__Q37JStudio3ctb6TParseFPQ37JStudio3ctb8TControl();
extern "C" void __dt__Q37JStudio3ctb6TParseFv();
extern "C" void parseHeader_next__Q37JStudio3ctb6TParseFPPCvPUlUl();
extern "C" void parseBlock_next__Q37JStudio3ctb6TParseFPPCvPUlUl();
extern "C" void __dt__Q37JStudio3ctb14TObject_TxyzRyFv();
extern "C" void func_802815B4(void* _this, JGadget::TLinkList<JStudio::ctb::TObject, 12>::iterator,
JGadget::TLinkList<JStudio::ctb::TObject, 12>::iterator,
JStudio::object::TPRObject_ID_equal);
//
// External References:
//
extern "C" void
isEqual__Q37JStudio6object7TIDDataFRCQ37JStudio6object7TIDDataRCQ37JStudio6object7TIDData();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void __dt__Q37JGadget6binary19TParse_header_blockFv();
extern "C" void __dt__Q27JGadget13TNodeLinkListFv();
extern "C" void
Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode();
extern "C" void Erase__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
extern "C" u32 ga4cSignature__Q37JStudio3ctb4data[1 + 1 /* padding */];
//
// Declarations:
//
/* ############################################################################################## */
/* 803C4878-803C488C 021998 0014+00 2/2 0/0 0/0 .data __vt__Q37JStudio3ctb6TParse */
SECTION_DATA extern void* __vt__Q37JStudio3ctb6TParse[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3ctb6TParseFv,
(void*)parseHeader_next__Q37JStudio3ctb6TParseFPPCvPUlUl,
(void*)parseBlock_next__Q37JStudio3ctb6TParseFPPCvPUlUl,
};
/* 803C488C-803C48A0 0219AC 0014+00 1/1 4/4 0/0 .data __vt__Q37JGadget6binary19TParse_header_block
*/
SECTION_DATA extern void* __vt__Q37JGadget6binary19TParse_header_block[5] = {
(void*)NULL /* RTTI */, (void*)NULL, (void*)NULL, (void*)NULL, (void*)NULL,
};
/* 803C48A0-803C48B4 0219C0 0014+00 1/1 1/1 0/0 .data __vt__Q37JStudio3ctb8TFactory */
SECTION_DATA extern void* __vt__Q37JStudio3ctb8TFactory[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3ctb8TFactoryFv,
(void*)create__Q37JStudio3ctb8TFactoryFRCQ47JStudio3ctb4data13TParse_TBlock,
(void*)destroy__Q37JStudio3ctb8TFactoryFPQ37JStudio3ctb7TObject,
};
/* 803C48B4-803C48C0 0219D4 000C+00 2/2 0/0 0/0 .data __vt__Q37JStudio3ctb8TControl */
SECTION_DATA extern void* __vt__Q37JStudio3ctb8TControl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3ctb8TControlFv,
};
/* 803C48C0-803C48D0 0219E0 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3ctb14TObject_TxyzRy */
SECTION_DATA extern void* __vt__Q37JStudio3ctb14TObject_TxyzRy[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3ctb14TObject_TxyzRyFv,
(void*)getScheme__Q37JStudio3ctb14TObject_TxyzRyCFv,
};
/* 803C48D0-803C48E0 0219F0 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3ctb7TObject */
SECTION_DATA extern void* __vt__Q37JStudio3ctb7TObject[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
/* 80280F18-80280F60 27B858 0048+00 1/1 0/0 0/0 .text __dt__Q37JStudio3ctb7TObjectFv */
JStudio::ctb::TObject::~TObject() {
}
/* 80280F60-80280FBC 27B8A0 005C+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3ctb14TObject_TxyzRyFRCQ47JStudio3ctb4data13TParse_TBlock */
JStudio::ctb::TObject_TxyzRy::TObject_TxyzRy(JStudio::ctb::data::TParse_TBlock const& param_0) : TObject(param_0.get_ID(), param_0.get_IDSize(), param_0.getContent()) {
}
/* 80280FBC-80280FC4 27B8FC 0008+00 1/0 0/0 0/0 .text getScheme__Q37JStudio3ctb14TObject_TxyzRyCFv
*/
int JStudio::ctb::TObject_TxyzRy::getScheme() const {
return 1;
}
/* 80280FC4-80280FF4 27B904 0030+00 0/0 1/1 0/0 .text __ct__Q37JStudio3ctb8TControlFv */
JStudio::ctb::TControl::TControl() : pFactory_(NULL) {}
/* 80280FF4-80281060 27B934 006C+00 1/0 1/1 0/0 .text __dt__Q37JStudio3ctb8TControlFv */
// JStudio::ctb::TControl::~TControl() {
extern "C" void __dt__Q37JStudio3ctb8TControlFv() {
// NONMATCHING
}
/* 80281060-802810AC 27B9A0 004C+00 1/1 0/0 0/0 .text
* appendObject__Q37JStudio3ctb8TControlFPQ37JStudio3ctb7TObject */
void JStudio::ctb::TControl::appendObject(JStudio::ctb::TObject* param_0) {
mList.Push_back(param_0);
}
/* 802810AC-802810DC 27B9EC 0030+00 1/1 0/0 0/0 .text
* removeObject__Q37JStudio3ctb8TControlFPQ37JStudio3ctb7TObject */
void JStudio::ctb::TControl::removeObject(JStudio::ctb::TObject* param_0) {
mList.Erase(param_0);
}
/* 802810DC-8028112C 27BA1C 0050+00 1/1 0/0 0/0 .text
* destroyObject__Q37JStudio3ctb8TControlFPQ37JStudio3ctb7TObject */
void JStudio::ctb::TControl::destroyObject(JStudio::ctb::TObject* param_0) {
removeObject(param_0);
getFactory()->destroy(param_0);
}
/* 8028112C-80281190 27BA6C 0064+00 0/0 2/2 0/0 .text destroyObject_all__Q37JStudio3ctb8TControlFv
*/
void JStudio::ctb::TControl::destroyObject_all() {
while (!mList.empty()) {
destroyObject(&mList.back());
}
}
/* 80281190-80281230 27BAD0 00A0+00 1/1 0/0 0/0 .text getObject__Q37JStudio3ctb8TControlFPCvUl */
// TPRObject_ID_equal issues
#ifdef NONMATCHING
JStudio::ctb::TObject* JStudio::ctb::TControl::getObject(void const* param_0, u32 param_1) {
JGadget::TLinkList<TObject, -12>::iterator begin = mList.begin();
JGadget::TLinkList<TObject, -12>::iterator end = mList.end();
JGadget::TLinkList<TObject, -12>::iterator local_50 = std::find_if(begin, end, object::TPRObject_ID_equal(param_0, param_1));
if ((local_50 != end) != false) {
return &*local_50;
}
return NULL;
}
#else
JStudio::ctb::TObject* JStudio::ctb::TControl::getObject(void const* param_0, u32 param_1) {
// NONMATCHING
}
#endif
/* 80281230-80281274 27BB70 0044+00 0/0 1/1 0/0 .text getObject_index__Q37JStudio3ctb8TControlFUl
*/
JStudio::ctb::TObject* JStudio::ctb::TControl::getObject_index(u32 param_0) {
if (param_0 >= mList.size()) {
return 0;
}
JGadget::TLinkList<TObject, -12>::iterator aiStack_14 = mList.begin();
std::advance(aiStack_14, param_0);
return &*aiStack_14;
}
/* 80281274-802812BC 27BBB4 0048+00 1/0 1/1 0/0 .text __dt__Q37JStudio3ctb8TFactoryFv */
// JStudio::ctb::TFactory::~TFactory() {
extern "C" void __dt__Q37JStudio3ctb8TFactoryFv() {
// NONMATCHING
}
/* 802812BC-80281320 27BBFC 0064+00 1/0 0/0 0/0 .text
* create__Q37JStudio3ctb8TFactoryFRCQ47JStudio3ctb4data13TParse_TBlock */
JStudio::ctb::TObject* JStudio::ctb::TFactory::create(JStudio::ctb::data::TParse_TBlock const& param_0) {
switch(param_0.get_scheme()) {
case 1:
return new TObject_TxyzRy(param_0);
default:
return NULL;
}
}
/* 80281320-8028135C 27BC60 003C+00 1/0 0/0 0/0 .text
* destroy__Q37JStudio3ctb8TFactoryFPQ37JStudio3ctb7TObject */
void JStudio::ctb::TFactory::destroy(JStudio::ctb::TObject* param_0) {
delete param_0;
}
/* 8028135C-8028137C 27BC9C 0020+00 0/0 1/1 0/0 .text
* __ct__Q37JStudio3ctb6TParseFPQ37JStudio3ctb8TControl */
JStudio::ctb::TParse::TParse(JStudio::ctb::TControl* param_0) {
// NONMATCHING
}
/* 8028137C-802813DC 27BCBC 0060+00 1/0 1/1 0/0 .text __dt__Q37JStudio3ctb6TParseFv */
// JStudio::ctb::TParse::~TParse() {
extern "C" void __dt__Q37JStudio3ctb6TParseFv() {
// NONMATCHING
}
/* 802813DC-80281470 27BD1C 0094+00 1/0 0/0 0/0 .text
* parseHeader_next__Q37JStudio3ctb6TParseFPPCvPUlUl */
bool JStudio::ctb::TParse::parseHeader_next(void const** ppData_inout, u32* puBlock_out, u32 param_3) {
JUT_ASSERT(221, ppData_inout!=0);
JUT_ASSERT(222, puBlock_out!=0);
void const* pData = *ppData_inout;
JUT_ASSERT(224, pData!=0);
data::TParse_THeader aTStack_478(pData);
*ppData_inout = aTStack_478.getContent();
*puBlock_out = aTStack_478.get_blockNumber();
if (memcmp(aTStack_478.get_signature(), &JStudio::ctb::data::ga4cSignature, sizeof(JStudio::ctb::data::ga4cSignature)) != 0) {
return false;
}
if (aTStack_478.get_byteOrder() != 0xfeff) {
return false;
}
u16 version = aTStack_478.get_version();
if (version < 1) {
return false;
}
return version <= 1;
}
/* 80281470-80281554 27BDB0 00E4+00 1/0 0/0 0/0 .text
* parseBlock_next__Q37JStudio3ctb6TParseFPPCvPUlUl */
bool JStudio::ctb::TParse::parseBlock_next(void const** ppData_inout, u32* puData_out, u32 param_3) {
JUT_ASSERT(260, ppData_inout!=0);
JUT_ASSERT(261, puData_out!=0);
void const* pData = *ppData_inout;
JUT_ASSERT(263, pData!=0);
data::TParse_TBlock aTStack_260(pData);
*ppData_inout = aTStack_260.getNext();
*puData_out = aTStack_260.get_size();
JStudio::ctb::TControl* pControl = getControl();
JUT_ASSERT(269, pControl!=0);
if ((param_3 & 0x10) != 0) {
if (pControl->getObject(aTStack_260.get_ID(), aTStack_260.get_IDSize()) != NULL) {
return true;
}
}
if ((param_3 & 0x20) != 0) {
return true;
}
JStudio::ctb::TFactory* pFactory = pControl->getFactory();
if (pFactory == NULL) {
return false;
}
JStudio::ctb::TObject* pTVar6 = pFactory->create(aTStack_260);
if (pTVar6 == NULL) {
if ((param_3 & 0x40) == 0) {
return false;
} else {
return true;
}
}
pControl->appendObject(pTVar6);
return true;
}
/* 80281554-802815B4 27BE94 0060+00 1/0 0/0 0/0 .text __dt__Q37JStudio3ctb14TObject_TxyzRyFv */
// JStudio::ctb::TObject_TxyzRy::~TObject_TxyzRy() {
extern "C" void __dt__Q37JStudio3ctb14TObject_TxyzRyFv() {
// NONMATCHING
}
/* 802815B4-80281648 27BEF4 0094+00 1/1 0/0 0/0 .text
* find_if<Q37JGadget37TLinkList<Q37JStudio3ctb7TObject,-12>8iterator,Q37JStudio6object18TPRObject_ID_equal>__3stdFQ37JGadget37TLinkList<Q37JStudio3ctb7TObject,-12>8iteratorQ37JGadget37TLinkList<Q37JStudio3ctb7TObject,-12>8iteratorQ37JStudio6object18TPRObject_ID_equal
*/
extern "C" void func_802815B4(void* _this, JGadget::TLinkList<JStudio::ctb::TObject, 12>::iterator param_0,
JGadget::TLinkList<JStudio::ctb::TObject, 12>::iterator param_1,
JStudio::object::TPRObject_ID_equal param_2) {
// NONMATCHING
}
@@ -0,0 +1,33 @@
#include "JSystem/JStudio/JStudio/functionvalue.h"
namespace std {
template <typename A1>
struct less {};
/* less<f64> */
struct less__template0 {};
template <typename A1, typename B1, typename C1>
void upper_bound(/* ... */);
}; // namespace std
/* 80283E24-80283EB8 27E764 0094+00 1/1 0/0 0/0 .text
* upper_bound<Q37JStudio29TFunctionValue_list_parameter15TIterator_data_,d,Q23std7less<d>>__3stdFQ37JStudio29TFunctionValue_list_parameter15TIterator_data_Q37JStudio29TFunctionValue_list_parameter15TIterator_data_RCdQ23std7less<d>
*/
#pragma force_active on
extern "C" inline void
func_80283E24(void* _this, JStudio::TFunctionValue_list_parameter::TIterator_data_ param_0,
JStudio::TFunctionValue_list_parameter::TIterator_data_ param_1, f64 const& param_2,
std::less<f64> param_3) {
// NONMATCHING
}
/* 80283EB8-80283F80 27E7F8 00C8+00 1/1 0/0 0/0 .text
* upper_bound<Q37JStudio22TFunctionValue_hermite15TIterator_data_,d,Q23std7less<d>>__3stdFQ37JStudio22TFunctionValue_hermite15TIterator_data_Q37JStudio22TFunctionValue_hermite15TIterator_data_RCdQ23std7less<d>
*/
#pragma force_active on
extern "C" inline void func_80283EB8(void* _this,
JStudio::TFunctionValue_hermite::TIterator_data_ param_0,
JStudio::TFunctionValue_hermite::TIterator_data_ param_1,
f64 const& param_2, std::less<f64> param_3) {
// NONMATCHING
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,37 @@
//
// Generated By: dol2asm
// Translation Unit: fvb-data-parse
//
#include "JSystem/JStudio/JStudio/fvb-data-parse.h"
//
// Types:
//
//
// Forward References:
//
//
// External References:
//
//
// Declarations:
//
/* 802850AC-80285114 27F9EC 0068+00 0/0 1/1 0/0 .text
* getData__Q47JStudio3fvb4data17TParse_TParagraphCFPQ57JStudio3fvb4data17TParse_TParagraph5TData */
void JStudio::fvb::data::TParse_TParagraph::getData(TParse_TParagraph::TData* data) const
{
u16* parse = (u16*)JGadget::binary::parseVariableUInt_16_32_following(getRaw(), (u32*)data, (u32*)&data->u32Type, NULL);
u32 t = (u32)data->u32Size;
if (!t) {
data->pContent = NULL;
data->next = parse;
} else {
data->pContent = parse;
data->next = parse + ((t + 3) >> 1 & ~1);
}
}
+3
View File
@@ -0,0 +1,3 @@
#include "JSystem/JStudio/JStudio/fvb-data.h"
extern const char JStudio::fvb::data::ga4cSignature[4] = "FVB";
@@ -0,0 +1,26 @@
#include "JSystem/JStudio/JStudio/object-id.h"
namespace JGadget {
/* TLinkList<JStudio::fvb::TObject, 12> */
struct TLinkList__template1 {
struct iterator {};
};
/* TVector_pointer<JStudio::TFunctionValue*> */
struct TVector_pointer__template0 {};
}; // namespace JGadget
extern "C" void
isEqual__Q37JStudio6object7TIDDataFRCQ37JStudio6object7TIDDataRCQ37JStudio6object7TIDData();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
/* 80285018-802850AC 27F958 0094+00 1/1 0/0 0/0 .text
* find_if<Q37JGadget37TLinkList<Q37JStudio3fvb7TObject,-12>8iterator,Q37JStudio6object18TPRObject_ID_equal>__3stdFQ37JGadget37TLinkList<Q37JStudio3fvb7TObject,-12>8iteratorQ37JGadget37TLinkList<Q37JStudio3fvb7TObject,-12>8iteratorQ37JStudio6object18TPRObject_ID_equal
*/
extern "C" void func_80285018(void* _this, JGadget::TLinkList__template1::iterator param_0,
JGadget::TLinkList__template1::iterator param_1,
JStudio::object::TPRObject_ID_equal param_2) {
// NONMATCHING
}
+793
View File
@@ -0,0 +1,793 @@
//
// Generated By: dol2asm
// Translation Unit: fvb
//
#include "JSystem/JStudio/JStudio/fvb.h"
#include "JSystem/JUtility/JUTException.h"
#include "dol2asm.h"
//
// Types:
//
namespace JGadget {
/* TLinkList<JStudio::fvb::TObject, 12> */
struct TLinkList__template1 {
struct iterator {};
};
/* TVector_pointer<JStudio::TFunctionValue*> */
struct TVector_pointer__template0 {};
}; // namespace JGadget
namespace std {
template <typename A1, typename B1>
void find_if(/* ... */);
/* 80285018 */ /* std::find_if<JGadget::TLinkList<JStudio::fvb::TObject, 12>::iterator,
JStudio::object::TPRObject_ID_equal> */
void func_80285018(void* _this, JGadget::TLinkList__template1::iterator,
JGadget::TLinkList__template1::iterator, JStudio::object::TPRObject_ID_equal);
}; // namespace std
//
// Forward References:
//
extern "C" void __dt__Q37JStudio3fvb7TObjectFv();
extern "C" void
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl();
extern "C" static void func_80284234();
extern "C" void __ct__Q37JStudio3fvb17TObject_compositeFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb17TObject_compositeFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb16TObject_constantFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb16TObject_constantFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb18TObject_transitionFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb18TObject_transitionFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb12TObject_listFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb12TObject_listFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb22TObject_list_parameterFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb22TObject_list_parameterFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb15TObject_hermiteFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void
prepare_data___Q37JStudio3fvb15TObject_hermiteFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl();
extern "C" void __ct__Q37JStudio3fvb8TControlFv();
extern "C" void __dt__Q37JStudio3fvb8TControlFv();
extern "C" void appendObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject();
extern "C" void removeObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject();
extern "C" void destroyObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject();
extern "C" void destroyObject_all__Q37JStudio3fvb8TControlFv();
extern "C" void getObject__Q37JStudio3fvb8TControlFPCvUl();
extern "C" void getObject_index__Q37JStudio3fvb8TControlFUl();
extern "C" void __dt__Q37JStudio3fvb8TFactoryFv();
extern "C" void create__Q37JStudio3fvb8TFactoryFRCQ47JStudio3fvb4data13TParse_TBlock();
extern "C" void destroy__Q37JStudio3fvb8TFactoryFPQ37JStudio3fvb7TObject();
extern "C" void __ct__Q37JStudio3fvb6TParseFPQ37JStudio3fvb8TControl();
extern "C" void __dt__Q37JStudio3fvb6TParseFv();
extern "C" void parseHeader_next__Q37JStudio3fvb6TParseFPPCvPUlUl();
extern "C" void parseBlock_next__Q37JStudio3fvb6TParseFPPCvPUlUl();
extern "C" void __dt__Q37JStudio3fvb15TObject_hermiteFv();
extern "C" void __dt__Q37JStudio3fvb22TObject_list_parameterFv();
extern "C" void __dt__Q37JStudio3fvb12TObject_listFv();
extern "C" void __dt__Q37JStudio3fvb18TObject_transitionFv();
extern "C" void __dt__Q37JStudio3fvb16TObject_constantFv();
extern "C" void __dt__Q37JStudio3fvb17TObject_compositeFv();
extern "C" void func_80285018(void* _this, JGadget::TLinkList__template1::iterator,
JGadget::TLinkList__template1::iterator,
JStudio::object::TPRObject_ID_equal);
//
// External References:
//
extern "C" void __dt__Q27JStudio14TFunctionValueFv();
extern "C" void range_set__Q27JStudio29TFunctionValueAttribute_rangeFdd();
extern "C" void __ct__Q27JStudio24TFunctionValue_compositeFv();
extern "C" void func_80281E5C();
extern "C" void func_80281EC8();
extern "C" void func_8028202C();
extern "C" void func_80282094();
extern "C" void func_80282118();
extern "C" void func_80282200();
extern "C" void func_80282284();
extern "C" void __ct__Q27JStudio23TFunctionValue_constantFv();
extern "C" void __ct__Q27JStudio25TFunctionValue_transitionFv();
extern "C" void __ct__Q27JStudio19TFunctionValue_listFv();
extern "C" void __ct__Q27JStudio29TFunctionValue_list_parameterFv();
extern "C" void data_set__Q27JStudio29TFunctionValue_list_parameterFPCfUl();
extern "C" void __ct__Q27JStudio22TFunctionValue_hermiteFv();
extern "C" void data_set__Q27JStudio22TFunctionValue_hermiteFPCfUlUl();
extern "C" void
getData__Q47JStudio3fvb4data17TParse_TParagraphCFPQ57JStudio3fvb4data17TParse_TParagraph5TData();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void __dt__Q37JGadget6binary19TParse_header_blockFv();
extern "C" void __dt__Q27JGadget13TNodeLinkListFv();
extern "C" void
Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode();
extern "C" void Erase__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode();
extern "C" void __dt__Q27JGadget20TVector_pointer_voidFv();
extern "C" void insert__Q27JGadget20TVector_pointer_voidFPPvRCPv();
extern "C" void _savegpr_23();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_23();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" int memcmp(const void*, const void*, u32);
extern "C" extern void* __vt__Q37JGadget6binary19TParse_header_block[5];
extern "C" extern void* __vt__Q27JStudio22TFunctionValue_hermite[8];
extern "C" extern void* __vt__Q27JStudio29TFunctionValue_list_parameter[8];
extern "C" extern void* __vt__Q27JStudio19TFunctionValue_list[8];
extern "C" extern void* __vt__Q27JStudio25TFunctionValue_transition[8];
extern "C" extern void* __vt__Q27JStudio23TFunctionValue_constant[8];
extern "C" extern void* __vt__Q27JStudio24TFunctionValue_composite[8];
extern "C" f32 ga4cSignature__Q37JStudio3fvb4data[1 + 1 /* padding */];
//
// Declarations:
//
/* ############################################################################################## */
/* 803C49C0-803C4A1C -00001 005C+00 1/1 0/0 0/0 .data @838 */
SECTION_DATA static void* lit_838[23] = {
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1F8),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0xA0),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1EC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0xC0),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x128),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x17C),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x198),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1AC),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1C0),
(void*)(((char*)
prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl) +
0x1DC),
};
/* 803C4A1C-803C4A30 021B3C 0014+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb6TParse */
SECTION_DATA extern void* __vt__Q37JStudio3fvb6TParse[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb6TParseFv,
(void*)parseHeader_next__Q37JStudio3fvb6TParseFPPCvPUlUl,
(void*)parseBlock_next__Q37JStudio3fvb6TParseFPPCvPUlUl,
};
/* 803C4A30-803C4A44 021B50 0014+00 1/1 1/1 0/0 .data __vt__Q37JStudio3fvb8TFactory */
SECTION_DATA extern void* __vt__Q37JStudio3fvb8TFactory[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb8TFactoryFv,
(void*)create__Q37JStudio3fvb8TFactoryFRCQ47JStudio3fvb4data13TParse_TBlock,
(void*)destroy__Q37JStudio3fvb8TFactoryFPQ37JStudio3fvb7TObject,
};
/* 803C4A44-803C4A50 021B64 000C+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb8TControl */
SECTION_DATA extern void* __vt__Q37JStudio3fvb8TControl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb8TControlFv,
};
/* 803C4A50-803C4A60 021B70 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb15TObject_hermite */
SECTION_DATA extern void* __vt__Q37JStudio3fvb15TObject_hermite[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb15TObject_hermiteFv,
(void*)
prepare_data___Q37JStudio3fvb15TObject_hermiteFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4A60-803C4A70 021B80 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb22TObject_list_parameter
*/
SECTION_DATA extern void* __vt__Q37JStudio3fvb22TObject_list_parameter[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb22TObject_list_parameterFv,
(void*)
prepare_data___Q37JStudio3fvb22TObject_list_parameterFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4A70-803C4A80 021B90 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb12TObject_list
*/
SECTION_DATA extern void* __vt__Q37JStudio3fvb12TObject_list[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb12TObject_listFv,
(void*)
prepare_data___Q37JStudio3fvb12TObject_listFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4A80-803C4A90 021BA0 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb18TObject_transition */
SECTION_DATA extern void* __vt__Q37JStudio3fvb18TObject_transition[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb18TObject_transitionFv,
(void*)
prepare_data___Q37JStudio3fvb18TObject_transitionFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4A90-803C4AA0 021BB0 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb16TObject_constant */
SECTION_DATA extern void* __vt__Q37JStudio3fvb16TObject_constant[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb16TObject_constantFv,
(void*)
prepare_data___Q37JStudio3fvb16TObject_constantFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4AA0-803C4AB0 021BC0 0010+00 2/2 0/0 0/0 .data __vt__Q37JStudio3fvb17TObject_composite */
SECTION_DATA extern void* __vt__Q37JStudio3fvb17TObject_composite[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3fvb17TObject_compositeFv,
(void*)
prepare_data___Q37JStudio3fvb17TObject_compositeFRCQ57JStudio3fvb4data17TParse_TParagraph5TDataPQ37JStudio3fvb8TControl,
};
/* 803C4AB0-803C4AC0 021BD0 0010+00 7/7 0/0 0/0 .data __vt__Q37JStudio3fvb7TObject */
SECTION_DATA extern void* __vt__Q37JStudio3fvb7TObject[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
namespace JStudio {
namespace fvb {
TObject::~TObject() {}
#ifdef NONMATCHING
void TObject::prepare(data::TParse_TBlock const& rBlock, TControl* pControl) {
ASSERT(pfv_ != 0);
ASSERT(pControl != 0);
TFunctionValueAttributeSet set = pfv_->getAttributeSet();
const void* pNext = rBlock.getNext();
const void* pData = rBlock.getContent();
while (pData < pNext) {
data::TParse_TParagraph para(pData);
data::TParse_TParagraph::TData dat;
para.getData(&dat);
u32 u32Type = dat.u32Type;
u32 u32Size = dat.u32Size;
const void* pContent = dat.pContent;
switch (u32Type) {
case 0:
pfv_->prepare();
return;
case 1:
prepare_data_(dat, pControl);
break;
case 0x10: {
JUT_EXPECT(u32Size >= 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_refer* pfvaRefer = set.refer_get();
JUT_EXPECT(pfvaRefer != NULL);
if (pfvaRefer == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
JGadget::TVector_pointer<TFunctionValue*>& rCnt = pfvaRefer->refer_referContainer();
data::TParse_TParagraph::TData** pBegin =
(data::TParse_TParagraph::TData**)rCnt.pBegin_;
// todo: these definitely use a different struct
for (data::TParse_TParagraph::TData* i = *pBegin; i != NULL; i = *pBegin) {
TObject* pObject = pControl->getObject(pContent, i->u32Size);
if (pObject == NULL) {
JUTWarn w;
w << "object not found by ID";
} else {
TFunctionValue* const& rfv = pObject->referFunctionValue();
rCnt.push_back(rfv);
}
*pBegin += align_roundUp(i->u32Size, 4);
}
}
} break;
case 0x11: {
JUT_EXPECT(u32Size >= 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_refer* pfvaRefer = set.refer_get();
JUT_EXPECT(pfvaRefer != NULL);
if (pfvaRefer == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
JGadget::TVector_pointer<TFunctionValue*>& rCnt = pfvaRefer->refer_referContainer();
data::TParse_TParagraph::TData** pBegin =
(data::TParse_TParagraph::TData**)rCnt.pBegin_;
for (data::TParse_TParagraph::TData* i = *pBegin; i != NULL; i = *pBegin) {
TObject* pObject = pControl->getObject_index(u32Size);
if (pObject == NULL) {
JUTWarn w;
w << "object not found by index : " << u32Size;
} else {
TFunctionValue* const& rfv = pObject->referFunctionValue();
rCnt.push_back(rfv);
}
*pBegin += align_roundUp(i->u32Size, 4);
}
}
} break;
case 0x12: {
JUT_EXPECT(u32Size == 8);
ASSERT(pContent != 0);
TFunctionValueAttribute_range* pfvaRange = set.range_get();
JUT_EXPECT(pfvaRange != NULL);
if (pfvaRange == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
f64* arr = (f64*)pContent;
pfvaRange->range_set(arr[0], arr[1]);
}
} break;
case 0x13: {
JUT_EXPECT(u32Size == 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_range* pfvaRange = set.range_get();
JUT_EXPECT(pfvaRange != NULL);
if (pfvaRange == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
TFunctionValue::TEProgress prog = *(TFunctionValue::TEProgress*)pContent;
pfvaRange->range_setProgress(prog);
}
} break;
case 0x14: {
JUT_EXPECT(u32Size == 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_range* pfvaRange = set.range_get();
JUT_EXPECT(pfvaRange != NULL);
if (pfvaRange == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
TFunctionValue::TEAdjust adjust = *(TFunctionValue::TEAdjust*)pContent;
pfvaRange->range_setAdjust(adjust);
}
} break;
case 0x15: {
JUT_EXPECT(u32Size == 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_range* pfvaRange = set.range_get();
JUT_EXPECT(pfvaRange != NULL);
if (pfvaRange == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
TFunctionValue::TEOutside* out = (TFunctionValue::TEOutside*)pContent;
pfvaRange->range_setOutside(out[0], out[1]);
}
} break;
case 0x16: {
JUT_EXPECT(u32Size == 4);
ASSERT(pContent != 0);
TFunctionValueAttribute_interpolate* pfvaInterpolate = set.interpolate_get();
JUT_EXPECT(pfvaInterpolate != NULL);
if (pfvaInterpolate == NULL) {
JUTWarn w;
w << "invalid paragraph";
} else {
TFunctionValue::TEInterpolate interp = *(TFunctionValue::TEInterpolate*)pContent;
pfvaInterpolate->interpolate_set(interp);
}
} break;
default:
JUTWarn w;
w << "unknown paragraph : " << u32Type;
}
ASSERT(pData != 0);
}
JUT_EXPECT(pData == pNext);
pfv_->prepare();
}
#else
/* 80283FC8-802841EC 27E908 0224+00 2/1 0/0 0/0 .text
* prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl */
void TObject::prepare(data::TParse_TBlock const& param_0, TControl* param_1) {
// NONMATCHING
}
#endif
namespace {
TFunctionValue_composite::TData getCompositeData_raw_(const void* arg1) {
return TFunctionValue_composite::TData(*(const void**)arg1);
}
TFunctionValue_composite::TData getCompositeData_index_(const void* arg1) {
return TFunctionValue_composite::TData(*(u32*)arg1);
}
TFunctionValue_composite::TData getCompositeData_parameter_(const void* arg1) {
return TFunctionValue_composite::TData(*(f32*)arg1);
}
TFunctionValue_composite::TData getCompositeData_add_(const void* arg1) {
return TFunctionValue_composite::TData(*(f32*)arg1);
}
TFunctionValue_composite::TData getCompositeData_subtract_(const void* arg1) {
return TFunctionValue_composite::TData(*(f32*)arg1);
}
TFunctionValue_composite::TData getCompositeData_multiply_(const void* arg1) {
return TFunctionValue_composite::TData(*(f32*)arg1);
}
TFunctionValue_composite::TData getCompositeData_divide_(const void* arg1) {
return TFunctionValue_composite::TData(*(f32*)arg1);
}
} // namespace
} // namespace fvb
} // namespace JStudio
using namespace JStudio::fvb;
/* ############################################################################################## */
/* 8039AA00-8039AA40 -00001 0040+00 1/1 0/0 0/0 .rodata
* saCompositeOperation___Q37JStudio3fvb17@unnamed@fvb_cpp@ */
SECTION_RODATA static void* const data_8039AA00[16] = {
(void*)NULL, (void*)NULL,
(void*)func_80281E5C, (void*)getCompositeData_raw_,
(void*)func_80281EC8, (void*)getCompositeData_index_,
(void*)func_8028202C, (void*)getCompositeData_parameter_,
(void*)func_80282094, (void*)getCompositeData_add_,
(void*)func_80282118, (void*)getCompositeData_subtract_,
(void*)func_80282200, (void*)getCompositeData_multiply_,
(void*)func_80282284, (void*)getCompositeData_divide_,
};
/* 80284240-80284254 27EB80 0014+00 1/1 0/0 0/0 .text
* getCompositeOperation___Q37JStudio3fvb17@unnamed@fvb_cpp@FQ47JStudio3fvb4data11TEComposite */
static data::CompositeOperation* func_80284240(data::TEComposite comp) {
// NONMATCHING
}
namespace JStudio {
namespace fvb {
/* 80284254-802842D4 27EB94 0080+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3fvb17TObject_compositeFRCQ47JStudio3fvb4data13TParse_TBlock */
// NONMATCHING
// TObject_composite::TObject_composite(const data::TParse_TBlock& block) : TObject(block, &fnValue) {}
// NONMATCHING - incomplete
/* void TObject_composite::prepare_data_(const data::TParse_TParagraph::TData& rData,
TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32Size == 8);
const TFunctionValue_composite* pContent =
static_cast<const TFunctionValue_composite*>(rData.pContent);
ASSERT(pContent != NULL);
data::CompositeOperation* ops = func_80284240(*(data::TEComposite*)pContent);
data::CompositeOperation pfn = ops[1];
ASSERT(pfn != NULL);
pfn(pContent->data);
fnValue.data_set((TFunctionValue_composite::CompositeFunc)*ops, pContent->data);
} */
/* 80284338-802843B8 27EC78 0080+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3fvb16TObject_constantFRCQ47JStudio3fvb4data13TParse_TBlock */
/* TObject_constant::TObject_constant(data::TParse_TBlock const& param_0) {
// NONMATCHING
} */
void TObject_constant::prepare_data_(const data::TParse_TParagraph::TData& rData,
TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32Size == 4);
const f32* pContent = static_cast<const f32*>(rData.pContent);
ASSERT(pContent != NULL);
fnValue.data_set(pContent[0]);
}
/* 802843C8-80284448 27ED08 0080+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3fvb18TObject_transitionFRCQ47JStudio3fvb4data13TParse_TBlock */
/* TObject_transition::TObject_transition(data::TParse_TBlock const& param_0) {
// NONMATCHING
} */
void TObject_transition::prepare_data_(const data::TParse_TParagraph::TData& rData,
TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32size == 8);
const f32* pContent = static_cast<const f32*>(rData.pContent);
ASSERT(pContent != NULL);
fnValue.data_set(pContent[0], pContent[1]);
}
/* 80284460-802844E0 27EDA0 0080+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3fvb12TObject_listFRCQ47JStudio3fvb4data13TParse_TBlock */
/* TObject_list::TObject_list(data::TParse_TBlock const& param_0) {
// NONMATCHING
} */
void TObject_list::prepare_data_(const data::TParse_TParagraph::TData& rData, TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32size >= 8);
const ListData* pContent = static_cast<const ListData*>(rData.pContent);
ASSERT(pContent != NULL);
fnValue.data_setInterval(pContent->_0);
fnValue.data_set(pContent->_8, pContent->_4);
}
/* 80284500-80284580 27EE40 0080+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3fvb22TObject_list_parameterFRCQ47JStudio3fvb4data13TParse_TBlock */
/* TObject_list_parameter::TObject_list_parameter(data::TParse_TBlock const& param_0) {
// NONMATCHING
} */
void TObject_list_parameter::prepare_data_(const data::TParse_TParagraph::TData& rData,
TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32size >= 8);
const ListData* pContent = static_cast<const ListData*>(rData.pContent);
ASSERT(pContent != NULL);
fnValue.data_set(pContent->_4, pContent->_0);
}
/* 802845B0-80284630 27EEF0 0080+00 1/1 0/0 0/0 .text
* __ct__Q37JStudio3fvb15TObject_hermiteFRCQ47JStudio3fvb4data13TParse_TBlock */
/* TObject_hermite::TObject_hermite(data::TParse_TBlock const& param_0) {
// NONMATCHING
} */
void TObject_hermite::prepare_data_(const data::TParse_TParagraph::TData& rData,
TControl* control) {
ASSERT(rData.u32Type == data::PARAGRAPH_DATA);
u32 u32Size = rData.u32Size;
JUT_EXPECT(u32size >= 8);
const ListData* pContent = static_cast<const ListData*>(rData.pContent);
ASSERT(pContent != NULL);
fnValue.data_set(pContent->_4, pContent->_0 & 0xFFFFFFF, pContent->_0 >> 0x1C);
}
TControl::TControl() : pFactory(NULL) {}
TControl::~TControl() {
JUT_EXPECT(ocObject_.empty());
}
/* 80284704-80284750 27F044 004C+00 1/1 0/0 0/0 .text
* appendObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject */
void TControl::appendObject(TObject* param_0) {
// NONMATCHING
}
/* 80284750-80284780 27F090 0030+00 1/1 0/0 0/0 .text
* removeObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject */
void TControl::removeObject(TObject* param_0) {
// NONMATCHING
}
/* 80284780-802847D0 27F0C0 0050+00 1/1 0/0 0/0 .text
* destroyObject__Q37JStudio3fvb8TControlFPQ37JStudio3fvb7TObject */
void TControl::destroyObject(TObject* param_0) {
// NONMATCHING
}
/* 802847D0-80284834 27F110 0064+00 0/0 2/2 0/0 .text destroyObject_all__Q37JStudio3fvb8TControlFv
*/
void TControl::destroyObject_all() {
// NONMATCHING
}
/* 80284834-802848D4 27F174 00A0+00 2/2 1/1 0/0 .text getObject__Q37JStudio3fvb8TControlFPCvUl */
TObject* TControl::getObject(void const* param_0, u32 param_1) {
// NONMATCHING
}
/* 802848D4-80284918 27F214 0044+00 1/1 1/1 0/0 .text getObject_index__Q37JStudio3fvb8TControlFUl
*/
TObject* TControl::getObject_index(u32 param_0) {
// NONMATCHING
}
TFactory::~TFactory() {}
TObject* TFactory::create(data::TParse_TBlock const& rBlock) {
switch (rBlock.get_type()) {
case 1:
return new TObject_composite(rBlock);
case 2:
return new TObject_constant(rBlock);
case 3:
return new TObject_transition(rBlock);
case 4:
return new TObject_list(rBlock);
case 5:
return new TObject_list_parameter(rBlock);
case 6:
return new TObject_hermite(rBlock);
default:
JUTWarn w;
w << "unknown type : ";
return NULL;
}
}
void TFactory::destroy(TObject* pObject) {
delete pObject;
}
TParse::TParse(TControl* pControl) : pControl_(pControl) {
ASSERT(pControl_ != 0);
}
TParse::~TParse() {}
bool TParse::parseHeader_next(void const** ppData_inout, u32* puBlock_out, u32 flags) {
ASSERT(ppData_inout != 0);
ASSERT(puBlock_out != 0);
const void* pData = *ppData_inout;
ASSERT(pData != 0);
const data::TParse_THeader header(pData);
*ppData_inout = header.getContent();
*puBlock_out = header.get_blockNumber();
if (memcmp(header.get_signature(), &data::ga4cSignature, 4) != 0) {
JUTWarn w;
w << "unknown signature";
return false;
}
if (header.get_byteOrder() != 0xFEFF) {
JUTWarn w;
w << "illegal byte-order";
return false;
}
u16 version = header.get_version();
if (version < 2) {
JUTWarn w;
w << "obselete version : " << (long)0;
return false;
} else if (version > 0x100) {
JUTWarn w;
w << "unknown version : " << version;
return false;
}
return true;
}
bool TParse::parseBlock_next(void const** ppData_inout, u32* puData_out, u32 flags) {
ASSERT(ppData_inout != 0);
ASSERT(puData_out != 0);
const void* pData = *ppData_inout;
ASSERT(pData != 0);
data::TParse_TBlock blk(pData);
*ppData_inout = blk.getNext();
*puData_out = blk.get_size();
TControl* pControl = getControl();
ASSERT(pControl != 0);
if (flags & 0x10) {
if (pControl->getObject(blk.get_ID(), blk.get_IDSize()) != NULL)
return 1;
}
if (flags & 0x20) {
return 1;
}
TFactory* pFactory = pControl->getFactory();
if (pFactory == NULL) {
JUTWarn w;
w << "factory not specified";
return 0;
}
TObject* pObject = pFactory->create(blk);
if (pObject == NULL) {
JUTWarn w;
w << "can't create function-value";
if (flags & 0x40) {
return 1;
}
return 0;
}
pObject->prepare(blk, pControl);
pControl->appendObject(pObject);
return 1;
}
} // namespace fvb
} // namespace JStudio
@@ -0,0 +1,211 @@
//
// 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"
/* 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;
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);
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;
}
@@ -0,0 +1,3 @@
#include "JSystem/JStudio/JStudio/jstudio-data.h"
extern const char JStudio::data::ga8cSignature[8] = "jstudio";
@@ -0,0 +1,153 @@
//
// Generated By: dol2asm
// Translation Unit: jstudio-math
//
#include "JSystem/JStudio/JStudio/jstudio-math.h"
#include "dol2asm.h"
#include "math.h"
//
// Forward References:
//
extern "C" void getRotation_xyz__Q27JStudio4mathFPA4_ffff();
extern "C" void getTransformation_SRxyzT__Q27JStudio4mathFPA4_fRC3VecRC3VecRC3Vec();
extern "C" void getFromTransformation_SRxyzT__Q27JStudio4mathFP3VecP3VecP3VecPA4_Cf();
//
// External References:
//
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
//
// Declarations:
//
/* ############################################################################################## */
/* 80455468-8045546C 003A68 0004+00 1/1 0/0 0/0 .sdata2 @488 */
SECTION_SDATA2 static f32 lit_488 = 0.01745329238474369f;
/* 8045546C-80455470 003A6C 0004+00 2/2 0/0 0/0 .sdata2 @489 */
SECTION_SDATA2 static u8 lit_489[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 802859DC-80285B44 28031C 0168+00 1/1 0/0 0/0 .text getRotation_xyz__Q27JStudio4mathFPA4_ffff */
// regalloc
#ifdef NONMATCHING
void JStudio::math::getRotation_xyz(MtxP param_1, f32 x, f32 y, f32 z) {
x = DEG_TO_RAD(x);
f32 cosx = cos(x);
f32 sinx = sin(x);
y = DEG_TO_RAD(y);
f32 cosy = cos(y);
f32 siny = sin(y);
z = DEG_TO_RAD(z);
f32 cosz = cos(z);
f32 sinz = sin(z);
f32 cosxcosz = cosx * cosz;
f32 cosxsinz = cosx * sinz;
f32 sinxcosz = sinx * cosz;
f32 sinxsinz = sinx * sinz;
param_1[0][0] = cosy * cosz;
param_1[1][0] = cosy * sinz;
param_1[2][0] = -siny;
param_1[2][1] = sinx * cosy;
param_1[2][2] = cosx * cosy;
param_1[0][1] = ((sinxcosz * siny) - cosxsinz);
param_1[0][2] = (sinxsinz + (cosxcosz * siny));
param_1[1][1] = (cosxcosz + (sinxsinz * siny));
param_1[1][2] = (((cosxsinz) * siny) - sinxcosz);
param_1[0][3] = 0.0f;
param_1[1][3] = 0.0f;
param_1[2][3] = 0.0f;
}
#else
void JStudio::math::getRotation_xyz(MtxP param_0, f32 param_1, f32 param_2, f32 param_3) {
// NONMATCHING
}
#endif
/* 80285B44-80285BCC 280484 0088+00 0/0 2/2 0/0 .text
* getTransformation_SRxyzT__Q27JStudio4mathFPA4_fRC3VecRC3VecRC3Vec */
void JStudio::math::getTransformation_SRxyzT(MtxP param_1, Vec const& param_2, Vec const& param_3,
Vec const& param_4) {
Mtx afStack_40;
MTXScale(afStack_40, param_2.x, param_2.y, param_2.z);
Mtx amStack_70;
rotate_xyz(afStack_40, amStack_70, param_3);
MTXTransApply(amStack_70, param_1, param_4.x, param_4.y, param_4.z);
}
/* ############################################################################################## */
/* 80455470-80455478 003A70 0008+00 1/1 0/0 0/0 .sdata2 @623 */
SECTION_SDATA2 static u8 lit_623[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80455478-80455480 003A78 0008+00 1/1 0/0 0/0 .sdata2 @624 */
SECTION_SDATA2 static f64 lit_624 = 1.0;
/* 80455480-80455488 003A80 0004+04 1/1 0/0 0/0 .sdata2 @625 */
SECTION_SDATA2 static f32 lit_625[1 + 1 /* padding */] = {
32.0f,
/* padding */
0.0f,
};
/* 80455488-80455490 003A88 0008+00 1/1 0/0 0/0 .sdata2 @626 */
SECTION_SDATA2 static f64 lit_626 = -1.5707963267948966;
/* 80455490-80455498 003A90 0008+00 1/1 0/0 0/0 .sdata2 @627 */
SECTION_SDATA2 static f64 lit_627 = 1.5707963267948966;
/* 80455498-804554A0 003A98 0008+00 1/1 0/0 0/0 .sdata2 @628 */
SECTION_SDATA2 static f64 lit_628 = 57.29577951308232;
/* 80285BCC-80285E0C 28050C 0240+00 0/0 2/2 0/0 .text
* getFromTransformation_SRxyzT__Q27JStudio4mathFP3VecP3VecP3VecPA4_Cf */
// getEulerXYZ is not inlined
#ifdef NONMATCHING
void JStudio::math::getFromTransformation_SRxyzT(Vec* param_1, Vec* param_2, Vec* param_3,
CMtxP param_4) {
getFromTransformation_S(param_4, param_1);
getFromTransformation_T(param_4, param_3);
JGeometry::TRotation3<JGeometry::SMatrix33C<double> > aTStack_88;
JGeometry::TVec3<double> local_a0;
double dVar9 = 0.0;
double dVar8 = 0.0;
double dVar7 = 0.0;
if (0.0f != param_1->x) {
dVar9 = 1.0 / param_1->x;
}
if (0.0f != param_1->y) {
dVar8 = 1.0 / param_1->y;
}
if (0.0f != param_1->z) {
dVar7 = 1.0 / param_1->z;
}
aTStack_88.set( param_4[0][0] * dVar9,
param_4[0][1] * dVar8, param_4[0][2] * dVar7, param_4[1][0] * dVar9,
param_4[1][2] * dVar8, param_4[1][3] * dVar7, param_4[2][0] * dVar9,
param_4[2][1] * dVar8, param_4[2][2] * dVar7);
aTStack_88.getEulerXYZ(&local_a0);
local_a0 *= 57.29577951308232;
param_2->x = local_a0.x;
param_2->y = local_a0.y;
param_2->z = local_a0.z;
}
#else
void JStudio::math::getFromTransformation_SRxyzT(Vec* param_0, Vec* param_1, Vec* param_2,
CMtxP param_3) {
// NONMATCHING
}
#endif
File diff suppressed because it is too large Load Diff
+53
View File
@@ -0,0 +1,53 @@
//
// object-id
//
#include "JSystem/JStudio/JStudio/object-id.h"
/* 80288988-80288A78 2832C8 00F0+00 0/0 3/3 0/0 .text
* isEqual__Q37JStudio6object7TIDDataFRCQ37JStudio6object7TIDDataRCQ37JStudio6object7TIDData */
bool JStudio::object::TIDData::isEqual(JStudio::object::TIDData const& a,
JStudio::object::TIDData const& b) {
if (a.getIDSize() != b.getIDSize()) {
return false;
}
u32 bytesRemaining = a.mID_size;
const void* aStr = a.getID();
u32* aStr32 = (u32*)aStr;
const void* bStr = b.getID();
u32* bStr32 = (u32*)bStr;
if (aStr == bStr) {
// they point to the same id
return true;
}
for (bytesRemaining; bytesRemaining >= 4; bytesRemaining -= 4, aStr32++, bStr32++) {
if (*aStr32 != *bStr32) {
return false;
}
}
u8* aStrBytes = (u8*)aStr32;
u8* bStrBytes = (u8*)bStr32;
switch (bytesRemaining) {
case 3:
if (*aStrBytes != *bStrBytes) {
return false;
}
aStrBytes++;
bStrBytes++;
case 2:
if (*aStrBytes != *bStrBytes) {
return false;
}
aStrBytes++;
bStrBytes++;
case 1:
if (*aStrBytes != *bStrBytes) {
return false;
}
}
return true;
}
@@ -0,0 +1,83 @@
//
// Generated By: dol2asm
// Translation Unit: stb-data-parse
//
#include "JSystem/JStudio/JStudio/stb-data-parse.h"
#include "dolphin/os.h"
namespace JStudio {
namespace stb {
namespace data {
void TParse_TSequence::getData(TData* pData) const {
ASSERT(pData != 0);
pData->content = NULL;
pData->next = NULL;
u32 head = get_head();
u8 type = head >> 24;
u32 param = head & 0xffffff;
pData->type = type;
pData->param = param;
if (type != 0) {
const void* next = (const void*)((int)getRaw() + 4);
if (type <= 0x7f) {
pData->next = next;
} else {
pData->content = next;
pData->next = (const void*)((int)next + param);
}
}
}
void TParse_TParagraph::getData(TData* pData) const {
ASSERT(pData != 0);
const void* data = getRaw();
u32 result;
const void* next = parseVariableUInt_16_32_following(data, &result, &pData->type, NULL);
pData->param = result;
if (result == 0) {
pData->content = NULL;
pData->next = next;
} else {
pData->content = next;
pData->next = (const void*)((int)next + align_roundUp(result, 4));
}
}
void TParse_TParagraph_data::getData(data::TParse_TParagraph_data::TData* pData) const {
u8* set2;
int dSize = pData->dataSize = 0;
pData->_8 = 0;
pData->fileCount = NULL;
pData->_10 = NULL;
u8* filedata = (u8*)getRaw();
if (filedata == NULL)
return;
u8 set = *filedata;
pData->status = set & ~0x8;
if (!set)
return;
int is8;
int set3 = 1;
is8 = set & 8;
// Probably fake match
if (set2 = (filedata + 1), is8) {
set3 = *set2++;
}
pData->_8 = set3;
pData->fileCount = set2;
if (!(set & 7))
return;
dSize = (gauDataSize_TEParagraph_data)[set &= 7];
pData->dataSize = dSize;
pData->_10 = (u8*)set2 + (dSize * set3);
}
} // namespace data
} // namespace stb
} // namespace JStudio
+5
View File
@@ -0,0 +1,5 @@
#include "JSystem/JStudio/JStudio/stb-data.h"
#include "dol2asm.h"
const s32 JStudio::stb::data::gauDataSize_TEParagraph_data[8] = {0x0, 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40};
SECTION_SDATA2 u32 JStudio::stb::data::ga4cSignature = 'STB\0';
+548
View File
@@ -0,0 +1,548 @@
#include "JSystem/JStudio/JStudio/stb.h"
#include "JSystem/JStudio/JStudio/jstudio-object.h"
#include "JSystem/JUtility/JUTException.h"
#include "algorithm.h"
//
// Types:
//
namespace std {
/* 80289928 */ /* std::find_if<JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
JStudio::object::TPRObject_ID_equal> */
void func_80289928(void* _this, JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
JStudio::object::TPRObject_ID_equal);
}; // namespace std
//
// Forward References:
//
extern "C" void reset__Q37JStudio3stb7TObjectFPCv();
extern "C" void forward__Q37JStudio3stb7TObjectFUl();
extern "C" void destroyObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject();
extern "C" void func_80289928(void* _this, JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
JStudio::object::TPRObject_ID_equal);
//
// External References:
//
extern "C" void
isEqual__Q37JStudio6object7TIDDataFRCQ37JStudio6object7TIDDataRCQ37JStudio6object7TIDData();
extern "C" void
Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode();
extern "C" void Erase__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode();
extern "C" void _savegpr_25();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_25();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" int memcmp(const void*, const void*, u32);
namespace JStudio {
namespace stb {
// unchecked, in debug dol
const char* TObject::toString_status(int status) {
const char* result;
switch (status) {
default:
result = "(undefined)";
break;
case 0:
result = "still";
break;
case 1:
result = "end";
break;
case 2:
result = "wait";
break;
case 4:
result = "suspend";
break;
case 8:
result = "inactive";
break;
}
return result;
}
TObject::TObject(u32 arg1, const void* id, u32 id_size)
: TObject_ID(id, id_size), pControl(NULL), signature(arg1), mFlag(0), bSequence_(0), _20(0),
pSequence(NULL), pSequence_next(NULL), u32Wait_(0), mStatus(STATUS_STILL) {}
TObject::TObject(const data::TParse_TBlock_object& object)
: TObject_ID(object.get_ID(), object.get_IDSize()), pControl(NULL),
signature(object.get_type()), mFlag(object.get_flag()), bSequence_(0), _20(0), pSequence(0),
pSequence_next(object.getContent()), u32Wait_(0), mStatus(STATUS_STILL) {}
TObject::~TObject() {
JUT_EXPECT(getControl() == NULL);
}
void TObject::setFlag_operation(u8 op, int val) {
switch (op) {
default:
JUTWarn w;
w << "unknown flag-operation : " << op;
break;
case 1:
mFlag |= val;
break;
case 2:
mFlag &= val;
break;
case 3:
mFlag ^= val;
break;
}
}
void TObject::reset(const void* arg1) {
bSequence_ = 0;
mStatus = STATUS_STILL;
pSequence_next = arg1;
u32Wait_ = 0;
}
u8 TObject::forward(u32 arg1) {
u8 temp = false;
while (true) {
if (mFlag & 0x8000) {
switch (getStatus()) {
case STATUS_STILL:
case STATUS_END:
break;
case STATUS_WAIT:
case STATUS_SUSPEND:
setStatus_(STATUS_INACTIVE);
if (bSequence_) {
on_end();
}
break;
case STATUS_INACTIVE:
break;
default:
ASSERT(false);
break;
}
return 1;
}
if (getStatus() == STATUS_INACTIVE) {
ASSERT(bSequence_);
on_begin();
setStatus_(STATUS_WAIT);
}
ASSERT(getStatus() != STATUS_INACTIVE);
TControl* control = getControl();
if ((control != NULL && control->isSuspended()) || isSuspended()) {
if (bSequence_) {
ASSERT((getStatus() == STATUS_WAIT) || (getStatus() == STATUS_SUSPEND));
setStatus_(STATUS_SUSPEND);
on_wait(arg1);
}
return 1;
}
while (true) {
void* nextseq = (void*)getSequence_next();
setSequence_(nextseq);
if (nextseq == NULL) {
if (bSequence_) {
ASSERT(getStatus() != STATUS_STILL);
if (!temp) {
on_wait(0);
}
bSequence_ = false;
setStatus_(STATUS_END);
on_end();
}
return 0;
}
if (!bSequence_) {
ASSERT(getStatus() == STATUS_STILL);
bSequence_ = true;
on_begin();
}
setStatus_(STATUS_WAIT);
if (u32Wait_ == 0) {
process_sequence_();
if (u32Wait_ == 0) {
break;
}
}
ASSERT(u32Wait_ > 0);
temp = true;
if (arg1 >= u32Wait_) {
u32 wait = u32Wait_;
arg1 -= u32Wait_;
u32Wait_ = 0;
on_wait(wait);
} else {
u32Wait_ -= arg1;
on_wait(arg1);
return 1;
}
}
}
}
void TObject::do_begin() {
/* empty function */
}
void TObject::do_end() {
/* empty function */
}
void TObject::do_paragraph(u32 param_0, void const* param_1, u32 param_2) {
/* empty function */
}
void TObject::do_wait(u32 param_0) {
/* empty function */
}
void TObject::do_data(void const* param_0, u32 param_1, void const* param_2, u32 param_3) {
/* empty function */
}
void TObject::process_sequence_() {
ASSERT(getWait() == 0);
data::TParse_TSequence seq(getSequence());
data::TParse_TSequence::TData dat;
seq.getData(&dat);
u8 type = dat.type;
u32 u32Value = dat.param;
const void* pContent = dat.content;
const void* pNext = dat.next;
setSequence_next(dat.next);
switch (type) {
case 0:
JUT_EXPECT(u32Value == 0);
JUT_EXPECT(pContent == 0);
break;
case 1:
JUT_EXPECT(pContent == 0);
setFlag_operation_(u32Value);
break;
case 2:
JUT_EXPECT(pContent == 0);
setWait(u32Value);
break;
case 3:
JUT_EXPECT(pContent == 0);
s32 off = toInt32FromUInt24_(u32Value);
void* nextseq = (void*)getSequence_offset(off);
setSequence_next(nextseq);
break;
case 4:
JUT_EXPECT(pContent == 0);
u32 val = toInt32FromUInt24_(u32Value);
suspend(val);
break;
case 0x80:
ASSERT(pContent != 0);
void* p = (void*)pContent;
data::TParse_TParagraph para(NULL);
while (p < pNext) {
para.setRaw(p);
data::TParse_TParagraph::TData para_dat;
para.getData(&para_dat);
if (para_dat.type <= 0xff) {
process_paragraph_reserved_(para_dat.type, para_dat.content, para_dat.param);
} else {
on_paragraph(para_dat.type, para_dat.content, para_dat.param);
}
p = (void*)para_dat.next;
ASSERT(p != 0);
}
JUT_EXPECT(p == pNext);
break;
default:
JUTWarn w;
w << "unknown sequence : " << dat.type;
break;
}
}
void TObject::process_paragraph_reserved_(u32 arg1, const void* pContent, u32 uSize) {
switch (arg1) {
case 0x1:
ASSERT(pContent != 0);
ASSERT(uSize == 4);
setFlag_operation_(*(u32*)pContent);
break;
case 0x2:
ASSERT(pContent != 0);
ASSERT(uSize == 4);
setWait(*(u32*)pContent);
break;
case 0x3:
ASSERT(pContent != 0);
ASSERT(uSize == 4);
const void* seq = getSequence_offset(*(s32*)pContent);
setSequence_next(seq);
break;
case 0x80:
on_data(NULL, 0, pContent, uSize);
break;
case 0x81:
data::TParse_TParagraph_dataID dataID(pContent);
const void* temp = dataID.getContent();
on_data(dataID.get_ID(), dataID.get_IDSize(), temp,
uSize - ((u32)temp - (u32)dataID.getRaw()));
break;
case 0x82:
ASSERT(pContent != 0);
break;
}
}
TObject_control::TObject_control(const void* arg1, u32 arg2) : TObject(-1, arg1, arg2) {}
TControl::TControl() : _4(0), _8(0), pFactory(NULL), mObject_control(NULL, 0), _54(0) {
resetStatus_();
mObject_control.setControl_(this);
}
// TObject_control::TObject_control() definition gets inlined here
TControl::~TControl() {
mObject_control.setControl_(NULL);
JUT_EXPECT(ocObject_.empty());
}
/* 80289228-80289278 283B68 0050+00 1/1 0/0 0/0 .text
* appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject */
void TControl::appendObject(TObject* p) {
p->setControl_(this);
mObjectContainer.Push_back(p);
}
void TControl::removeObject(TObject* p) {
ASSERT(p != 0);
ASSERT(p->getControl() == this);
p->setControl_(NULL);
mObjectContainer.Erase(p);
}
void TControl::destroyObject(TObject* p) {
removeObject(p);
ASSERT(pFactory != 0);
pFactory->destroy(p);
}
/* 80289300-80289364 283C40 0064+00 0/0 2/2 0/0 .text destroyObject_all__Q37JStudio3stb8TControlFv
*/
void TControl::destroyObject_all() {
while (!mObjectContainer.empty()) {
destroyObject(&mObjectContainer.back());
}
}
/* 80289364-80289404 283CA4 00A0+00 1/1 0/0 0/0 .text getObject__Q37JStudio3stb8TControlFPCvUl */
// TPRObject_ID_equal copy issue
#ifdef NONMATCHING
TObject* TControl::getObject(void const* param_0, u32 param_1) {
JGadget::TLinkList<TObject, -12>::iterator begin = mObjectContainer.begin();
JGadget::TLinkList<TObject, -12>::iterator end = mObjectContainer.end();
JGadget::TLinkList<TObject, -12>::iterator local_50 = std::find_if(begin, end, object::TPRObject_ID_equal(param_0, param_1));
if ((local_50 != end) != false) {
return &*local_50;
}
return NULL;
}
#else
TObject* TControl::getObject(void const* param_0, u32 param_1) {
// NONMATCHING
}
#endif
/* 80289404-802894B4 283D44 00B0+00 0/0 1/1 0/0 .text reset__Q37JStudio3stb8TControlFv */
void TControl::reset() {
resetStatus_();
mObject_control.reset(NULL);
JGadget::TContainerEnumerator<JStudio::stb::TObject, -12> aTStack_18(&mObjectContainer);
while (aTStack_18) {
(*aTStack_18).reset(NULL);
}
}
/* 802894B4-802895B4 283DF4 0100+00 0/0 2/2 0/0 .text forward__Q37JStudio3stb8TControlFUl
*/
// regalloc
#ifdef NONMATCHING
u8 TControl::forward(u32 param_0) {
_54 = mObject_control.getSuspend();
u8 rv = mObject_control.forward(param_0);
int uVar7 = 0xf;
int uVar6 = 0;
JGadget::TContainerEnumerator<JStudio::stb::TObject, -12> aTStack_38(&mObjectContainer);
while (aTStack_38) {
JStudio::stb::TObject& this_00 = *aTStack_38;
u8 iVar5 = 0;
u8 iVar4 = this_00.forward(param_0);
if (iVar4 != 0 || rv != 0) {
iVar5 = 1;
}
rv = iVar5;
int uVar3 = this_00.getStatus();
uVar7 &= uVar3;
uVar6 |= uVar3;
}
setStatus_(uVar7 | (uVar6 << 0x10));
return rv;
}
#else
u8 TControl::forward(u32 param_0) {
// NONMATCHING
}
#endif
TFactory::~TFactory() {}
JStudio::TObject* TFactory::create(data::TParse_TBlock_object const& param_0) {
return NULL;
}
void TFactory::destroy(TObject* p) {
delete p;
}
TParse::TParse(TControl* pControl) : pControl(pControl) {}
TParse::~TParse() {}
bool TParse::parseHeader_next(const void** ppData_inout, u32* puBlock_out, u32 flags) {
ASSERT(ppData_inout != 0);
ASSERT(puBlock_out != 0);
const void* pData = *ppData_inout;
ASSERT(pData != 0);
const data::TParse_THeader header(pData);
*ppData_inout = header.getContent();
*puBlock_out = header.get_blockNumber();
if (memcmp(header.get_signature(), &data::ga4cSignature, 4) != 0) {
JUTWarn w;
w << "unknown signature";
return false;
}
if (header.get_byteOrder() != 0xFEFF) {
JUTWarn w;
w << "illegal byte-order";
return false;
}
u16 version = header.get_version();
if (version < 1) {
JUTWarn w;
w << "obselete version : " << (long)0;
return false;
} else if (version > 3) {
JUTWarn w;
w << "unknown version : " << version;
return false;
}
return parseHeader(header, flags);
}
bool TParse::parseBlock_next(void const** ppData_inout, u32* puData_out, u32 flags) {
ASSERT(ppData_inout != 0);
ASSERT(puData_out != 0);
const void* pData = *ppData_inout;
ASSERT(pData != 0);
data::TParse_TBlock blk(pData);
*ppData_inout = blk.getNext();
*puData_out = blk.get_size();
return parseBlock_block(blk, flags);
}
bool TParse::parseHeader(data::TParse_THeader const& param_0, u32 flags) {
return true;
}
bool TParse::parseBlock_block(const data::TParse_TBlock& ppBlock, u32 flags) {
return parseBlock_object(ppBlock.get(), flags);
}
bool TParse::parseBlock_object(const data::TParse_TBlock_object& ppObject, u32 flags) {
TControl* pControl = getControl();
ASSERT(pControl != 0);
if (ppObject.get_type() == data::BLOCK_NONE) {
TObject_control& ref = pControl->referObject_control();
ref.reset(ppObject.getContent());
return true;
}
if (flags & 0x10) {
TObject* p = pControl->getObject(ppObject.get_ID(), ppObject.get_IDSize());
if (p != NULL) {
p->reset(ppObject.getContent());
return true;
}
}
if (flags & 0x20)
return true;
TFactory* pFactory = pControl->getFactory();
if (pFactory == NULL) {
JUTWarn w;
w << "factory not specified";
return false;
}
JStudio::TObject* p = pFactory->create(ppObject);
if (p == NULL) {
if (flags & 0x40)
return true;
char a5c[8];
char t[16];
int type = ppObject.get_type();
data::toString_block(a5c, type);
JUTWarn w;
w << "can't create object : " << a5c;
w << "(0x" << type << ")";
return false;
}
pControl->appendObject(p);
return true;
}
} // namespace stb
} // namespace JStudio
/* 80289928-802899BC 284268 0094+00 1/1 0/0 0/0 .text
* find_if<Q37JGadget37TLinkList<Q37JStudio3stb7TObject,-12>8iterator,Q37JStudio6object18TPRObject_ID_equal>__3stdFQ37JGadget37TLinkList<Q37JStudio3stb7TObject,-12>8iteratorQ37JGadget37TLinkList<Q37JStudio3stb7TObject,-12>8iteratorQ37JStudio6object18TPRObject_ID_equal
*/
extern "C" void func_80289928(void* _this,
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator param_0,
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator param_1,
JStudio::object::TPRObject_ID_equal param_2) {
// NONMATCHING
}
@@ -0,0 +1,50 @@
//
// control
//
#include "JSystem/JStudio/JStudio_JAudio2/control.h"
#include "JSystem/JGadget/pointer.h"
/* 8028D550-8028D5B0 287E90 0060+00 1/0 0/0 0/0 .text __dt__Q215JStudio_JAudio213TCreateObjectFv
*/
JStudio_JAudio2::TCreateObject::~TCreateObject() {}
/* 8028D5B0-8028D624 287EF0 0074+00 1/0 0/0 0/0 .text
* create__Q215JStudio_JAudio213TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object
*/
bool JStudio_JAudio2::TCreateObject::create(
JStudio::TObject** ppObject, JStudio::stb::data::TParse_TBlock_object const& param_2) {
JUT_ASSERT(40, ppObject!=0);
CreateFunc func;
switch (param_2.get_type()) {
case 'JSND':
func = createObject_JAI_SOUND_;
break;
default:
return false;
}
*ppObject = func(param_2, this);
return 1;
}
/* 8028D624-8028D728 287F64 0104+00 1/1 0/0 0/0 .text
* createObject_JAI_SOUND___Q215JStudio_JAudio213TCreateObjectFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ215JStudio_JAudio213TCreateObject
*/
JStudio::TObject* JStudio_JAudio2::TCreateObject::createObject_JAI_SOUND_(
JStudio::stb::data::TParse_TBlock_object const& param_1,
JStudio_JAudio2::TCreateObject* param_2) {
JStudio_JAudio2::TAdaptor_sound* adaptor = new JStudio_JAudio2::TAdaptor_sound(param_2);
if (adaptor == NULL) {
return NULL;
}
JGadget::TPointer_delete<JStudio_JAudio2::TAdaptor_sound> deleteGuard(adaptor);
adaptor->set_bPermit_onExit_notEnd_(param_2->isPermit_onExit_notEnd());
JStudio::TObject_sound* soundObj =
JStudio::TCreateObject::createFromAdaptor<JStudio_JAudio2::TAdaptor_sound>(param_1,
adaptor);
if (soundObj == NULL) {
return NULL;
}
deleteGuard.set(NULL);
return soundObj;
}
@@ -0,0 +1,378 @@
//
// object-sound
//
#include "JSystem/JStudio/JStudio_JAudio2/object-sound.h"
#include "JSystem/JStudio/JStudio_JAudio2/control.h"
#include "JSystem/JStudio/JStudio_JStage/control.h"
/* 8028D728-8028D750 288068 0028+00 1/1 0/0 0/0 .text
* setValue_VOLUME___Q215JStudio_JAudio226@unnamed@object_sound_cpp@FP8JAISoundf */
static void setValue_VOLUME_(JAISound *param_1, float param_2) {
param_1->getAuxiliary().moveVolume(param_2, 0);
}
/* 8028D750-8028D778 288090 0028+00 1/1 0/0 0/0 .text
* setValue_PAN___Q215JStudio_JAudio226@unnamed@object_sound_cpp@FP8JAISoundf */
static void setValue_PAN_(JAISound *param_1, float param_2) {
param_1->getAuxiliary().movePan(param_2, 0);
}
/* 8028D778-8028D7A0 2880B8 0028+00 1/1 0/0 0/0 .text
* setValue_PITCH___Q215JStudio_JAudio226@unnamed@object_sound_cpp@FP8JAISoundf */
static void setValue_PITCH_(JAISound *param_1, float param_2) {
param_1->getAuxiliary().movePitch(param_2, 0);
}
/* 8028D7A0-8028D800 2880E0 0060+00 1/1 0/0 0/0 .text
* setValue_TEMPO___Q215JStudio_JAudio226@unnamed@object_sound_cpp@FP8JAISoundf */
static void setValue_TEMPO_(JAISound *param_1, float param_2) {
JAITempoMgr* tempoMgr = param_1->getTempoMgr();
if (tempoMgr != NULL) {
tempoMgr->setTempo(param_2);
}
}
/* 8028D800-8028D828 288140 0028+00 1/1 0/0 0/0 .text
* setValue_ECHO___Q215JStudio_JAudio226@unnamed@object_sound_cpp@FP8JAISoundf */
static void setValue_ECHO_(JAISound *param_1, float param_2) {
param_1->getAuxiliary().moveFxMix(param_2, 0);
}
/* 8028D828-8028D8F4 288168 00CC+00 0/0 1/1 0/0 .text
* __ct__Q215JStudio_JAudio214TAdaptor_soundFPQ215JStudio_JAudio213TCreateObject */
JStudio_JAudio2::TAdaptor_sound::TAdaptor_sound(JStudio_JAudio2::TCreateObject* param_1) :
pCreateObject_(param_1) {
field_0x11c = 0;
field_0x11d = 0;
field_0x11e = 0;
field_0x11f = 0;
field_0x120 = 0;
field_0x124 = 0xffffffff;
field_0x128 = 0;
field_0x12c = NULL;
field_0x13c = NULL;
field_0x140 = 0xffffffff;
field_0x144 = 0;
JUT_ASSERT(112, pCreateObject_!=0);
}
/* 8028D8F4-8028D9A4 288234 00B0+00 1/0 0/0 0/0 .text __dt__Q215JStudio_JAudio214TAdaptor_soundFv
*/
JStudio_JAudio2::TAdaptor_sound::~TAdaptor_sound() {
if (opJAISoundHandle_) {
if (field_0x11f == 0) {
opJAISoundHandle_->stop();
} else if (field_0x11c != 0) {
opJAISoundHandle_.releaseSound();
} else {
opJAISoundHandle_->stop();
}
}
}
/* 8028D9A4-8028DA74 2882E4 00D0+00 1/0 0/0 0/0 .text
* adaptor_do_prepare__Q215JStudio_JAudio214TAdaptor_soundFv */
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_prepare() {
static JStudio::TAdaptor::TSetVariableValue_immediate aoData[4] = {
TSetVariableValue_immediate(0, 0.0f),
TSetVariableValue_immediate(1, 0.0f),
TSetVariableValue_immediate(2, 0.0f),
TSetVariableValue_immediate(-1, NAN),
};
adaptor_setVariableValue_immediate(aoData);
for (TVVOSetValue_* pTVar1 = saoVVOSetValue_; pTVar1->field_0x04 != -1; pTVar1++) {
adaptor_referVariableValue(pTVar1->field_0x04)->setOutput(pTVar1);
}
}
/* 804314F8-80431540 05E218 0048+00 1/2 0/0 0/0 .bss
* saoVVOSetValue___Q215JStudio_JAudio214TAdaptor_sound */
JStudio_JAudio2::TAdaptor_sound::TVVOSetValue_ JStudio_JAudio2::TAdaptor_sound::saoVVOSetValue_[6] = {
JStudio_JAudio2::TAdaptor_sound::TVVOSetValue_(
JStudio_JAudio2::TAdaptor_sound::UNK_7, setValue_VOLUME_
),
JStudio_JAudio2::TAdaptor_sound::TVVOSetValue_(
JStudio_JAudio2::TAdaptor_sound::UNK_8, setValue_PAN_
),
JStudio_JAudio2::TAdaptor_sound::TVVOSetValue_(
JStudio_JAudio2::TAdaptor_sound::UNK_9, setValue_PITCH_
),
JStudio_JAudio2::TAdaptor_sound::TVVOSetValue_(
JStudio_JAudio2::TAdaptor_sound::UNK_10, setValue_TEMPO_
),
JStudio_JAudio2::TAdaptor_sound::TVVOSetValue_(
JStudio_JAudio2::TAdaptor_sound::UNK_11, setValue_ECHO_
),
JStudio_JAudio2::TAdaptor_sound::TVVOSetValue_(
JStudio_JAudio2::TAdaptor_sound::UNK_NONE, NULL
),
};
/* 8028DA74-8028DA78 2883B4 0004+00 1/0 0/0 0/0 .text
* adaptor_do_end__Q215JStudio_JAudio214TAdaptor_soundFv */
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_end() {
}
/* 8028DA78-8028DC20 2883B8 01A8+00 1/0 0/0 0/0 .text
* adaptor_do_update__Q215JStudio_JAudio214TAdaptor_soundFUl */
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_update(u32 param_1) {
const JStudio::TObject* pObject = adaptor_getObject();
JUT_ASSERT(194, pObject!=0);
const JStudio::TControl* pControl = pObject->getControl();
JUT_ASSERT(196, pControl!=0);
JStudio::TControl::TTransform_position VStack_148;
JStudio::TControl::TTransform_position VStack_154;
JStudio::TControl::TTransform_position* pVVar2;
adaptor_getVariableValue_Vec(&VStack_148,
JStudio::TAdaptor_sound::sauVariableValue_3_POSITION_XYZ);
if (field_0x144 == 0) {
pVVar2 = pControl->transformOnSet_transform_ifEnabled(&VStack_148, &VStack_154);
} else {
if (!JStudio_JStage::transform_toGlobalFromLocal(&VStack_154, VStack_148, field_0x13c, field_0x140)) {
return;
}
pVVar2 = &VStack_154;
}
field_0x130 = *pVVar2;
if (field_0x11d) {
switch(field_0x120) {
case 2:
JAISoundStarter* soundStarter = pCreateObject_->get_pJAISoundStarter_();
soundStarter->startLevelSound(field_0x124, &opJAISoundHandle_, field_0x12c);
break;
case 1:
field_0x120 = 2;
break;
}
}
if (field_0x11e != 0 && field_0x124 != -1 && !opJAISoundHandle_) {
prepareSound_();
beginSound_fadeIn_();
}
if (field_0x12c != NULL && opJAISoundHandle_)
{
opJAISoundHandle_->setPos(*field_0x12c);
}
}
/* 8028DC20-8028DC54 288560 0034+00 1/0 0/0 0/0 .text
* adaptor_do_SOUND__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl */
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_SOUND(JStudio::data::TEOperationData param_1,
void const* pContent, u32 uSize) {
switch(param_1) {
case JStudio::data::UNK_0x19:
JUT_ASSERT(283, pContent!=0);
JUT_ASSERT(284, uSize==4);
field_0x124 = *(u32*)pContent;
prepareSound_();
break;
}
}
/* 8028DC54-8028DC88 288594 0034+00 1/0 0/0 0/0 .text
* adaptor_do_BEGIN__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl */
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_BEGIN(JStudio::data::TEOperationData param_1,
void const* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x1:
JUT_ASSERT(284, uSize == 0);
beginSound_();
break;
}
}
/* 8028DC88-8028DCD0 2885C8 0048+00 1/0 0/0 0/0 .text
* adaptor_do_BEGIN_FADE_IN__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_BEGIN_FADE_IN(
JStudio::data::TEOperationData param_1, void const* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x2:
JUT_ASSERT(323, pContent!=0);
JUT_ASSERT(324, uSize==4);
beginSound_fadeIn_(*(f32*)pContent);
break;
}
}
/* 8028DCD0-8028DD00 288610 0030+00 1/0 0/0 0/0 .text
* adaptor_do_END__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl */
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_END(JStudio::data::TEOperationData param_1,
void const* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x1:
JUT_ASSERT(345, uSize == 0);
endSound_();
break;
}
}
/* 8028DD00-8028DD48 288640 0048+00 1/0 0/0 0/0 .text
* adaptor_do_END_FADE_OUT__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_END_FADE_OUT(
JStudio::data::TEOperationData param_1, void const* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x2:
JUT_ASSERT(364, pContent!=0);
JUT_ASSERT(365, uSize==4);
endSound_fadeOut_(*(f32*)pContent);
break;
}
}
/* 8028DD48-8028DDB4 288688 006C+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl */
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_PARENT(
JStudio::data::TEOperationData param_1, void const* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x18:
JUT_ASSERT(387, pContent!=0);
JUT_ASSERT(388, uSize!=0);
field_0x13c = NULL;
JStage::TSystem* pJSGSystem = (JStage::TSystem*)pCreateObject_->get_pJSGSystem_();
JUT_ASSERT(396, pJSGSystem != 0);
JStage::TObject* pJSGObject;
if (!pJSGSystem->JSGFindObject(&pJSGObject, (const char*)pContent, JStage::OBJECT_UNDEFINED)) {
JUT_ASSERT(405, pJSGObject != 0);
field_0x13c = pJSGObject;
}
break;
}
}
/* 8028DDB4-8028DE34 2886F4 0080+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT_NODE__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_PARENT_NODE(JStudio::data::TEOperationData param_1,
const void* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x18:
if (field_0x13c != NULL) {
JUT_ASSERT(431, pContent!=0);
JUT_ASSERT(432, uSize==0);
field_0x140 = field_0x13c->JSGFindNodeID((char*)pContent);
if (field_0x140 == -1) {
return;
}
}
break;
case JStudio::data::UNK_0x19:
JUT_ASSERT(447, uSize==4);
JUT_ASSERT(448, pContent!=0);
field_0x140 = *(u32*)pContent;
break;
}
}
/* 8028DE34-8028DE50 288774 001C+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT_ENABLE__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_PARENT_ENABLE(
JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) {
if (param_1 == JStudio::data::UNK_0x2) {
JUT_ASSERT(468, uSize == 4);
JUT_ASSERT(469, pContent != 0);
field_0x144 = *(u32*)pContent ? 1 : 0;
}
}
/* 8028DE50-8028DE6C 288790 001C+00 1/0 0/0 0/0 .text
* adaptor_do_REPEAT__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl */
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_REPEAT(JStudio::data::TEOperationData param_1,
const void* pContent, u32 uSize) {
if (param_1 == JStudio::data::UNK_0x2) {
JUT_ASSERT(490, uSize == 4);
JUT_ASSERT(491, pContent != 0);
field_0x11e = *(u32*)pContent ? 1 : 0;
}
}
/* 8028DE6C-8028DE88 2887AC 001C+00 1/0 0/0 0/0 .text
* adaptor_do_CONTINUOUS__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_CONTINUOUS(JStudio::data::TEOperationData param_1,
const void* pContent, u32 uSize) {
if (param_1 == JStudio::data::UNK_0x2) {
JUT_ASSERT(512, uSize == 4);
JUT_ASSERT(513, pContent != 0);
field_0x11d = *(u32*)pContent ? 1 : 0;
}
}
/* 8028DE88-8028DEB0 2887C8 0028+00 1/0 0/0 0/0 .text
* adaptor_do_LOCATED__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl */
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_LOCATED(JStudio::data::TEOperationData param_1,
const void* pContent, u32 uSize) {
if (param_1 == JStudio::data::UNK_0x2) {
JUT_ASSERT(534, pContent != 0);
JUT_ASSERT(535, uSize == 4);
u32 val = *(u32*)pContent;
field_0x12c = NULL;
if (val != 0) {
field_0x12c = &field_0x130;
}
}
}
/* 8028DEB0-8028DECC 2887F0 001C+00 1/0 0/0 0/0 .text
* adaptor_do_ON_EXIT_NOT_END__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JAudio2::TAdaptor_sound::adaptor_do_ON_EXIT_NOT_END(
JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) {
if (param_1 == JStudio::data::UNK_0x2) {
JUT_ASSERT(512, uSize == 4);
JUT_ASSERT(513, pContent != 0);
field_0x11f = *(u32*)pContent ? 1 : 0;
}
}
/* 8028DECC-8028DF04 28880C 0038+00 1/0 0/0 0/0 .text
* __cl__Q315JStudio_JAudio214TAdaptor_sound13TVVOSetValue_CFfPQ27JStudio8TAdaptor */
void JStudio_JAudio2::TAdaptor_sound::TVVOSetValue_::operator()(f32 param_1,
JStudio::TAdaptor* param_2) const {
JUT_ASSERT(596, param_2 != 0);
if (((JStudio_JAudio2::TAdaptor_sound*)param_2)->opJAISoundHandle_) {
JAISound* sound = ((JStudio_JAudio2::TAdaptor_sound*)param_2)->opJAISoundHandle_.sound_;
field_0x08(sound, param_1);
}
}
/* 8028DF04-8028DFA4 288844 00A0+00 2/2 0/0 0/0 .text
* prepareSound___Q215JStudio_JAudio214TAdaptor_soundFv */
void JStudio_JAudio2::TAdaptor_sound::prepareSound_() {
if (opJAISoundHandle_) {
opJAISoundHandle_stop_();
}
JAISoundStarter* soundStarter = pCreateObject_->get_pJAISoundStarter_();
if (field_0x11d == 0) {
soundStarter->startSound(field_0x124, &opJAISoundHandle_, field_0x12c);
} else {
soundStarter->startLevelSound(field_0x124, &opJAISoundHandle_, field_0x12c);
}
if (opJAISoundHandle_) {
opJAISoundHandle_->lockWhenPrepared();
}
}
/* 8028DFA4-8028E054 2888E4 00B0+00 3/3 0/0 0/0 .text
* beginSound_fadeIn___Q215JStudio_JAudio214TAdaptor_soundFv */
void JStudio_JAudio2::TAdaptor_sound::beginSound_fadeIn_() {
if (opJAISoundHandle_) {
opJAISoundHandle_->fadeIn(field_0x128);
opJAISoundHandle_->unlockIfLocked();
field_0x120 = 1;
}
}
/* 8028E054-8028E094 288994 0040+00 2/2 0/0 0/0 .text
* endSound_fadeOut___Q215JStudio_JAudio214TAdaptor_soundFUl */
void JStudio_JAudio2::TAdaptor_sound::endSound_fadeOut_(u32 u32FadeTime) {
if (opJAISoundHandle_) {
opJAISoundHandle_->stop(u32FadeTime);
JUT_ASSERT(654, (u32FadeTime>0)||!opJAISoundHandle_);
field_0x120 = 0;
}
}
@@ -0,0 +1,68 @@
//
// control
//
#include "JSystem/JStudio/JStudio_JParticle/control.h"
#include "JSystem/JParticle/JPAEmitterManager.h"
#include "JSystem/JGadget/pointer.h"
/* 8028E3A0-8028E400 288CE0 0060+00 1/0 1/1 0/0 .text __dt__Q217JStudio_JParticle13TCreateObjectFv
*/
JStudio_JParticle::TCreateObject::~TCreateObject() {}
/* 8028E400-8028E474 288D40 0074+00 1/0 1/0 0/0 .text
* create__Q217JStudio_JParticle13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object
*/
bool
JStudio_JParticle::TCreateObject::create(JStudio::TObject** ppObject,
JStudio::stb::data::TParse_TBlock_object const& param_2) {
JUT_ASSERT(40, ppObject!=0);
CreateFunc func;
switch (param_2.get_type()) {
case 'JPTC':
func = createObject_JPA_PARTICLE_;
break;
default:
return false;
}
*ppObject = func(param_2, this);
return true;
}
/* 8028E474-8028E4E4 288DB4 0070+00 1/0 0/0 0/0 .text
* emitter_create__Q217JStudio_JParticle13TCreateObjectFUl */
JPABaseEmitter* JStudio_JParticle::TCreateObject::emitter_create(u32 param_1) {
JGeometry::TVec3<f32> local_08;
Vec local_1c = {0.0f, 0.0f, 0.0f};
local_08 = local_1c;
return pJPAEmitterManager_->createSimpleEmitterID(
local_08, param_1 & 0xffff, (param_1 >> 24) & 0xff, (param_1 >> 16) & 0xff, NULL, NULL);
}
/* 8028E4E4-8028E508 288E24 0024+00 1/0 1/0 0/0 .text
* emitter_destroy__Q217JStudio_JParticle13TCreateObjectFP14JPABaseEmitter */
void JStudio_JParticle::TCreateObject::emitter_destroy(JPABaseEmitter* pEmitter) {
pJPAEmitterManager_->forceDeleteEmitter(pEmitter);
}
/* 8028E508-8028E60C 288E48 0104+00 1/1 0/0 0/0 .text
* createObject_JPA_PARTICLE___Q217JStudio_JParticle13TCreateObjectFRCQ47JStudio3stb4data20TParse_TBlock_objectPQ217JStudio_JParticle13TCreateObject
*/
JStudio::TObject* JStudio_JParticle::TCreateObject::createObject_JPA_PARTICLE_(
JStudio::stb::data::TParse_TBlock_object const& param_1,
JStudio_JParticle::TCreateObject* param_2) {
JStudio_JParticle::TAdaptor_particle* adaptor = new JStudio_JParticle::TAdaptor_particle(param_2);
if (adaptor == NULL) {
return NULL;
}
JGadget::TPointer_delete<JStudio_JParticle::TAdaptor_particle> deleteGuard(adaptor);
adaptor->set_bPermit_onExit_notEnd_(param_2->isPermit_onExit_notEnd());
JStudio::TObject_particle* particle =
JStudio::TCreateObject::createFromAdaptor<JStudio_JParticle::TAdaptor_particle>(param_1,
adaptor);
if (particle == NULL) {
return NULL;
}
deleteGuard.set(NULL);
return particle;
}
@@ -0,0 +1,431 @@
//
// object-particle
//
#include "JSystem/JStudio/JStudio_JParticle/object-particle.h"
#include "JSystem/JStudio/JStudio_JStage/control.h"
/* 8028E60C-8028E700 288F4C 00F4+00 0/0 1/1 0/0 .text
* __ct__Q217JStudio_JParticle17TAdaptor_particleFPQ217JStudio_JParticle13TCreateObject */
JStudio_JParticle::TAdaptor_particle::TAdaptor_particle(
JStudio_JParticle::TCreateObject* param_1) :
pCreateObject_(param_1),
pJPAEmitter_(NULL),
field_0x1a8(this) {
field_0x1b4 = 0;
field_0x1b5 = 0;
field_0x1b6 = 0;
field_0x1b7 = 0;
field_0x1b8 = 0;
field_0x1bc = -1;
u32FadeTime_end = 0;
field_0x1c4 = 0;
field_0x1c8 = 0;
field_0x1cc = 0;
field_0x1d0 = NULL;
field_0x1d4 = -1;
field_0x1d8 = 0;
JUT_ASSERT(90, pCreateObject_!=0);
}
/* 8028E760-8028E850 2890A0 00F0+00 1/0 0/0 0/0 .text
* __dt__Q217JStudio_JParticle17TAdaptor_particleFv */
JStudio_JParticle::TAdaptor_particle::~TAdaptor_particle() {
if (pJPAEmitter_ != NULL) {
if (field_0x1b6 == 0) {
pCreateObject_->emitter_destroy(pJPAEmitter_);
} else if (field_0x1b4 != 0) {
pJPAEmitter_->setEmitterCallBackPtr(field_0x1a8.getOld());
pJPAEmitter_->quitImmortalEmitter();
} else {
pCreateObject_->emitter_destroy(pJPAEmitter_);
}
}
}
/* 8028E850-8028E97C 289190 012C+00 1/0 0/0 0/0 .text
* adaptor_do_prepare__Q217JStudio_JParticle17TAdaptor_particleFv */
void JStudio_JParticle::TAdaptor_particle::adaptor_do_prepare() {
static JStudio::TAdaptor::TSetVariableValue_immediate aoData[18] = {
JStudio::TAdaptor::TSetVariableValue_immediate(0, 0.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(1, 0.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(2, 0.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(3, 0.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(4, 0.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(5, 0.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(6, 1.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(7, 1.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(8, 1.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(9, 255.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(10, 255.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(11, 255.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(12, 255.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(13, 255.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(14, 255.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(15, 255.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(16, 255.0f),
JStudio::TAdaptor::TSetVariableValue_immediate(),
};
adaptor_setVariableValue_immediate(aoData);
}
/* 8028E97C-8028E980 2892BC 0004+00 1/0 0/0 0/0 .text
* adaptor_do_end__Q217JStudio_JParticle17TAdaptor_particleFv */
void JStudio_JParticle::TAdaptor_particle::adaptor_do_end() {
}
/* 8028E980-8028EA68 2892C0 00E8+00 1/0 0/0 0/0 .text
* adaptor_do_update__Q217JStudio_JParticle17TAdaptor_particleFUl */
void JStudio_JParticle::TAdaptor_particle::adaptor_do_update(u32 param_1) {
const JStudio::TObject* pObject = adaptor_getObject();
JUT_ASSERT(179, pObject != 0);
JStudio::TControl* pControl = pObject->getControl();
JUT_ASSERT(181, pControl != 0);
if (u32FadeTime_end != 0 && field_0x1c4 < u32FadeTime_end) {
JUT_ASSERT(187, state_isFade_());
JUT_ASSERT(188, pJPAEmitter_ != 0);
field_0x1c4 += param_1;
if (field_0x1c4 >= u32FadeTime_end) {
switch (field_0x1b8) {
case 1:
field_0x1b8 = 2;
break;
case 3:
pCreateObject_->emitter_destroy(pJPAEmitter_);
pJPAEmitter_ = NULL;
field_0x1b8 = 0;
break;
}
u32FadeTime_end = 0;
field_0x1c4 = 0;
}
} else {
JUT_ASSERT(210, !state_isFade_());
}
if (field_0x1b5 != 0 && field_0x1b7 != 0 && pJPAEmitter_ == NULL) {
beginParticle_fadeIn_();
}
}
/* 8028EA68-8028EA7C 2893A8 0014+00 1/0 0/0 0/0 .text
* adaptor_do_PARTICLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARTICLE(
JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) {
if (param_1 == JStudio::data::UNK_0x19) {
JUT_ASSERT(232, uSize==4);
JUT_ASSERT(233, pContent!=0);
field_0x1bc = *(u32*)pContent;
}
}
/* 8028EA7C-8028EAB0 2893BC 0034+00 1/0 0/0 0/0 .text
* adaptor_do_BEGIN__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JParticle::TAdaptor_particle::adaptor_do_BEGIN(JStudio::data::TEOperationData param_1,
const void* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x1:
JUT_ASSERT(253, uSize==0);
beginParticle_();
break;
}
}
/* 8028EAB0-8028EAF8 2893F0 0048+00 1/0 0/0 0/0 .text
* adaptor_do_BEGIN_FADE_IN__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JParticle::TAdaptor_particle::adaptor_do_BEGIN_FADE_IN(
JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x2:
JUT_ASSERT(272, pContent!=0);
JUT_ASSERT(273, uSize==4);
beginParticle_fadeIn_(*(f32*)pContent);
break;
}
}
/* 8028EAF8-8028EB24 289438 002C+00 1/0 0/0 0/0 .text
* adaptor_do_END__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl */
void JStudio_JParticle::TAdaptor_particle::adaptor_do_END(JStudio::data::TEOperationData param_1,
const void* pContent, u32 uSize) {
if (param_1 == JStudio::data::UNK_0x1) {
JUT_ASSERT(294, uSize==0);
endParticle_();
}
}
/* 8028EB24-8028EB6C 289464 0048+00 1/0 0/0 0/0 .text
* adaptor_do_END_FADE_OUT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JParticle::TAdaptor_particle::adaptor_do_END_FADE_OUT(
JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x2:
JUT_ASSERT(336, pContent!=0);
JUT_ASSERT(337, uSize==4);
endParticle_fadeOut_(*(f32*)pContent);
break;
}
}
/* 8028EB6C-8028EBD8 2894AC 006C+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT(
JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x18:
JUT_ASSERT(313, pContent!=0);
JUT_ASSERT(314, uSize==4);
field_0x1d0 = NULL;
const JStage::TSystem* pJSGSystem = pCreateObject_->get_pJSGSystem_();
JUT_ASSERT(345, pJSGSystem!=0);
JStage::TObject* pJSGObject;
if (pJSGSystem->JSGFindObject(&pJSGObject, (const char*)pContent, JStage::OBJECT_UNDEFINED) == 0) {
JUT_ASSERT(354, pJSGObject!=0);
field_0x1d0 = pJSGObject;
}
break;
}
}
/* 8028EBD8-8028EC58 289518 0080+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT_NODE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT_NODE(
JStudio::data::TEOperationData param_1, const void* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x18:
if (field_0x1d0 != NULL) {
JUT_ASSERT(380, pContent!=0);
JUT_ASSERT(381, uSize==4);
field_0x1d4 = field_0x1d0->JSGFindNodeID((const char*)pContent);
if (field_0x1d4 == -1) {
return;
}
}
break;
case JStudio::data::UNK_0x19:
JUT_ASSERT(397, uSize==4);
JUT_ASSERT(396, pContent!=0);
field_0x1d4 = *(u32*)pContent;
break;
}
}
/* 8028EC58-8028EC74 289598 001C+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT_ENABLE__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT_ENABLE(JStudio::data::TEOperationData param_1,
const void* pContent, u32 uSize) {
if (param_1 == JStudio::data::UNK_0x2) {
JUT_ASSERT(417, uSize==4);
JUT_ASSERT(418, pContent!=0);
field_0x1d8 = *(u32*)pContent ? 1 : 0;
}
}
/* 8028EC74-8028EC88 2895B4 0014+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT_FUNCTION__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JParticle::TAdaptor_particle::adaptor_do_PARENT_FUNCTION(JStudio::data::TEOperationData param_1,
const void* pContent, u32 uSize) {
if (param_1 == JStudio::data::UNK_0x2) {
JUT_ASSERT(439, uSize==4);
JUT_ASSERT(439, pContent!=0);
field_0x1cc = *(u32*)pContent;
}
}
/* 8028EC88-8028ECA4 2895C8 001C+00 1/0 0/0 0/0 .text
* adaptor_do_REPEAT__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JParticle::TAdaptor_particle::adaptor_do_REPEAT(JStudio::data::TEOperationData param_1,
const void* pContent, u32 uSize) {
if (param_1 == JStudio::data::UNK_0x2) {
JUT_ASSERT(460, uSize==4);
JUT_ASSERT(461, pContent!=0);
field_0x1b5 = *(u32*)pContent ? 1 : 0;
}
}
/* 8028ECA4-8028ECC0 2895E4 001C+00 1/0 0/0 0/0 .text
* adaptor_do_ON_EXIT_NOT_END__Q217JStudio_JParticle17TAdaptor_particleFQ37JStudio4data15TEOperationDataPCvUl
*/
void JStudio_JParticle::TAdaptor_particle::adaptor_do_ON_EXIT_NOT_END(JStudio::data::TEOperationData param_1,
const void* pContent, u32 uSize) {
if (param_1 == JStudio::data::UNK_0x2) {
JUT_ASSERT(460, uSize==4);
JUT_ASSERT(461, pContent!=0);
field_0x1b6 = *(u32*)pContent ? 1 : 0;
}
}
/* 8028ECC0-8028F060 289600 03A0+00 1/0 0/0 0/0 .text
* execute__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter */
void
JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::execute(JPABaseEmitter* pJPAEmitter) {
JUT_ASSERT(518, pJPAEmitter==pThis_->pJPAEmitter_);
if (pJPAEmitter->isEnableDeleteEmitter()) {
pThis_->pCreateObject_->emitter_destroy(pJPAEmitter);
pThis_->pJPAEmitter_ = NULL;
pThis_->field_0x1b8 = 0;
pThis_->u32FadeTime_end = 0;
pThis_->field_0x1c4 = 0;
return;
}
const JStudio::TObject* pObject = pThis_->adaptor_getObject();
JUT_ASSERT(534, pObject!=0);
JStudio::TControl* pControl = pObject->getControl();
JUT_ASSERT(536, pControl!=0);
TJPAEmitter_stopDrawParticle_ aTStack_21c(pJPAEmitter);
JStudio::TControl::TTransform_translation_rotation_scaling VStack_19c;
JStudio::TControl::TTransform_translation_rotation_scaling aTStack_1c0;
pThis_->adaptor_getVariableValue_Vec(
&VStack_19c.translation,
sauVariableValue_3_TRANSLATION_XYZ);
pThis_->adaptor_getVariableValue_Vec(
&VStack_19c.rotation,
sauVariableValue_3_ROTATION_XYZ);
pThis_->adaptor_getVariableValue_Vec(
&VStack_19c.scaling,
sauVariableValue_3_SCALING_XYZ);
if (pThis_->field_0x1d8 == 0) {
JStudio::TControl::TTransform_translation_rotation_scaling* pVVar9 = &VStack_19c;
switch(pThis_->field_0x1cc) {
case 0:
pVVar9 = pControl->transformOnSet_transform_ifEnabled(&VStack_19c, &aTStack_1c0);
break;
case 1:
break;
}
pJPAEmitter->setGlobalTranslation(pVVar9->translation);
int rotx = 65536.0 * (pVVar9->rotation.x / 360.0);
int roty = 65536.0 * (pVVar9->rotation.y / 360.0);
int rotz = 65536.0 * (pVVar9->rotation.z / 360.0);
pJPAEmitter->setGlobalRotation(JGeometry::TVec3<s16>(rotx, roty, rotz));
pJPAEmitter->setGlobalScale(pVVar9->scaling);
} else {
Mtx afStack_1f0;
if (JStudio_JStage::transform_toGlobalFromLocal(afStack_1f0, VStack_19c, pThis_->field_0x1d0,
pThis_->field_0x1d4) == 0)
{
return;
}
pJPAEmitter->setGlobalSRTMatrix(afStack_1f0);
}
f64 alpha = 1.0;
u32 u32FadeTime_end = pThis_->u32FadeTime_end;
f64 dVar16 = u32FadeTime_end;
f64 dVar15 = pThis_->field_0x1c4;
switch(pThis_->field_0x1b8) {
case 1:
JUT_ASSERT(606, u32FadeTime_end>0);
alpha = dVar15 / dVar16;
break;
case 3:
JUT_ASSERT(611, u32FadeTime_end>0);
alpha = (dVar16 - dVar15) / dVar16;
}
u8 globalAlpha = 255;
GXColor a_Stack_224;
pThis_->adaptor_getVariableValue_GXColor(&a_Stack_224, sauVariableValue_4_COLOR_RGBA);
alpha *= a_Stack_224.a;
if (alpha < 255.0) {
globalAlpha = alpha;
}
pJPAEmitter->setGlobalAlpha(globalAlpha);
aTStack_21c.set(NULL);
if (pOld != NULL) {
pOld->execute(pJPAEmitter);
}
}
/* 8028F060-8028F098 2899A0 0038+00 1/0 0/0 0/0 .text
* executeAfter__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter
*/
void
JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::executeAfter(JPABaseEmitter* pJPAEmitter) {
if (pOld != NULL) {
pOld->executeAfter(pJPAEmitter);
}
}
/* 8028F098-8028F0D0 2899D8 0038+00 1/0 0/0 0/0 .text
* draw__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter */
void
JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::draw(JPABaseEmitter* pJPAEmitter) {
if (pOld != NULL) {
pOld->draw(pJPAEmitter);
}
}
/* 8028F0D0-8028F108 289A10 0038+00 1/0 0/0 0/0 .text
* drawAfter__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JPABaseEmitter */
void
JStudio_JParticle::TAdaptor_particle::TJPACallback_emitter_::drawAfter(JPABaseEmitter* pJPAEmitter) {
if (pOld != NULL) {
pOld->drawAfter(pJPAEmitter);
}
}
/* 8028F108-8028F1C0 289A48 00B8+00 3/3 0/0 0/0 .text
* beginParticle_fadeIn___Q217JStudio_JParticle17TAdaptor_particleFv */
void JStudio_JParticle::TAdaptor_particle::beginParticle_fadeIn_() {
if (pJPAEmitter_ != NULL) {
pCreateObject_->emitter_destroy(pJPAEmitter_);
}
JPABaseEmitter* pEmitter = pCreateObject_->emitter_create(field_0x1bc);
pJPAEmitter_ = pEmitter;
if (pEmitter != NULL) {
field_0x1a8.setOld(pEmitter->getEmitterCallBackPtr());
pEmitter->setEmitterCallBackPtr(&field_0x1a8);
pEmitter->becomeImmortalEmitter();
field_0x1b7 = 1;
field_0x1b8 = 1;
if (field_0x1c8 == 0) {
field_0x1b8 = 2;
}
u32FadeTime_end = field_0x1c8;
field_0x1c4 = 0;
}
}
/* 8028F1C0-8028F2E8 289B00 0128+00 1/1 0/0 0/0 .text
* endParticle_fadeOut___Q217JStudio_JParticle17TAdaptor_particleFUl */
void JStudio_JParticle::TAdaptor_particle::endParticle_fadeOut_(u32 param_1) {
if (pJPAEmitter_ == NULL) {
return;
}
if (param_1 == 0) {
pCreateObject_->emitter_destroy(pJPAEmitter_);
pJPAEmitter_ = NULL;
field_0x1b8 = 0;
u32FadeTime_end = 0;
field_0x1c4 = 0;
return;
}
u8 eState_old = field_0x1b8 & 0xff;
field_0x1b8 = 3;
if (field_0x1c4 == 0) {
u32FadeTime_end = param_1;
return;
}
JUT_ASSERT(735, state_isFade_(eState_old));
u32 u32Denominator = 0;
switch(eState_old) {
case 1:
u32Denominator = field_0x1c4;
break;
case 3:
u32Denominator = u32FadeTime_end - field_0x1c4;
break;
}
JUT_ASSERT(793, u32Denominator!=0);
u32FadeTime_end = ((f64)param_1 * (f64)u32FadeTime_end) / u32Denominator;
field_0x1c4 = u32FadeTime_end - param_1;
}
@@ -0,0 +1,81 @@
//
// Generated By: dol2asm
// Translation Unit: control
//
#include "JSystem/JStudio/JStudio_JStage/control.h"
#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 */
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;
}
/* 80289B60-80289CE4 2844A0 0184+00 1/0 0/0 0/0 .text
* create__Q214JStudio_JStage13TCreateObjectFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object
*/
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;
}
@@ -0,0 +1,734 @@
//
// Generated By: dol2asm
// Translation Unit: object-actor
//
#include "JSystem/JStudio/JStudio_JStage/object-actor.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" void __ct__Q214JStudio_JStage14TAdaptor_actorFPCQ26JStage7TSystemPQ26JStage6TActor();
extern "C" void __dt__Q214JStudio_JStage14TAdaptor_actorFv();
extern "C" void adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_actorFv();
extern "C" void adaptor_do_begin__Q214JStudio_JStage14TAdaptor_actorFv();
extern "C" void adaptor_do_end__Q214JStudio_JStage14TAdaptor_actorFv();
extern "C" void adaptor_do_update__Q214JStudio_JStage14TAdaptor_actorFUl();
extern "C" void adaptor_do_data__Q214JStudio_JStage14TAdaptor_actorFPCvUlPCvUl();
extern "C" void
adaptor_do_SHAPE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_ANIMATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_ANIMATION_MODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_TEXTURE_ANIMATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_TEXTURE_ANIMATION_MODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_PARENT__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_PARENT_NODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_PARENT_ENABLE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_PARENT_FUNCTION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_RELATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_RELATION_NODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_RELATION_ENABLE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
setJSG_ID___Q214JStudio_JStage14TAdaptor_actorFMQ26JStage6TActorFPCvPvUl_vQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void setJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl();
extern "C" void getJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl();
extern "C" void
__cl__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_CFfPQ27JStudio8TAdaptor();
extern "C" void __dt__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_Fv();
extern "C" void func_8028B198();
extern "C" void __ct__Q27JStudio14TVariableValueFv();
extern "C" void func_8028B580(void* _this);
extern "C" void func_8028B5E0(void* _this, f32, JStudio::TAdaptor*);
extern "C" u8 saoVVOutput___Q214JStudio_JStage14TAdaptor_actor[64];
extern "C" u8
saoVVOutput_ANIMATION_FRAME___Q214JStudio_JStage14TAdaptor_actor[144 + 4 /* padding */];
//
// External References:
//
extern "C" void toFunction_outside__Q27JStudio14TFunctionValueFi();
extern "C" void getFromTransformation_SRxyzT__Q27JStudio4mathFP3VecP3VecP3VecPA4_Cf();
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__Q27JStudio14TAdaptor_actorFv();
extern "C" void
transform_toGlobalFromLocal__14JStudio_JStageFPA4_fRCQ37JStudio8TControl39TTransform_translation_rotation_scalingPCQ26JStage7TObjectUl();
extern "C" void
transform_toLocalFromGlobal__14JStudio_JStageFPA4_fRCQ37JStudio8TControl39TTransform_translation_rotation_scalingPCQ26JStage7TObjectUl();
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 __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_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 const sauVariableValue_3_TRANSLATION_XYZ__Q27JStudio14TAdaptor_actor[12];
extern "C" u8 const sauVariableValue_3_ROTATION_XYZ__Q27JStudio14TAdaptor_actor[12];
extern "C" u8 const sauVariableValue_3_SCALING_XYZ__Q27JStudio14TAdaptor_actor[12];
extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */];
extern "C" extern void* __vt__Q27JStudio14TAdaptor_actor[20];
extern "C" extern void* __vt__Q27JStudio8TAdaptor[8];
extern "C" extern void* __vt__Q37JStudio14TVariableValue7TOutput[4];
extern "C" u8 soOutput_none___Q27JStudio14TVariableValue[4 + 4 /* padding */];
//
// Declarations:
//
/* ############################################################################################## */
/* 803C5730-803C573C 022850 000C+00 2/2 0/0 0/0 .data @890 */
SECTION_DATA static u8 lit_890[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00,
};
/* 803C573C-803C5748 02285C 000C+00 1/1 0/0 0/0 .data @899 */
SECTION_DATA static u8 lit_899[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
};
/* 803C5748-803C5754 022868 000C+00 1/1 0/0 0/0 .data @916 */
SECTION_DATA static u8 lit_916[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00,
};
/* 803C5754-803C5760 022874 000C+00 0/1 0/0 0/0 .data @1083 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 lit_1083[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00,
};
#pragma pop
/* 803C5760-803C576C 022880 000C+00 0/1 0/0 0/0 .data @1084 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 lit_1084[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00,
};
#pragma pop
/* 803C576C-803C5778 02288C 000C+00 0/1 0/0 0/0 .data @1089 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 lit_1089[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00,
};
#pragma pop
/* 803C5778-803C5784 022898 000C+00 0/1 0/0 0/0 .data @1090 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 lit_1090[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00,
};
#pragma pop
/* 803C5784-803C5790 0228A4 000C+00 0/1 0/0 0/0 .data @1091 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 lit_1091[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00,
};
#pragma pop
/* 803C5790-803C579C 0228B0 000C+00 0/1 0/0 0/0 .data @1096 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 lit_1096[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00,
};
#pragma pop
/* 803C579C-803C57A8 0228BC 000C+00 0/1 0/0 0/0 .data @1097 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 lit_1097[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
};
#pragma pop
/* 803C57A8-803C57B4 0228C8 000C+00 0/1 0/0 0/0 .data @1098 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 lit_1098[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00,
};
#pragma pop
/* 803C57B4-803C57C4 0228D4 0010+00 1/2 0/0 0/0 .data
* __vt__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_ */
SECTION_DATA extern void* __vt__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)
__cl__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_CFfPQ27JStudio8TAdaptor,
(void*)__dt__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_Fv,
};
/* 803C57C4-803C5864 0228E4 0050+50 2/2 0/0 0/0 .data __vt__Q214JStudio_JStage14TAdaptor_actor */
SECTION_DATA extern void* __vt__Q214JStudio_JStage14TAdaptor_actor[20 + 20 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q214JStudio_JStage14TAdaptor_actorFv,
(void*)adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_actorFv,
(void*)adaptor_do_begin__Q214JStudio_JStage14TAdaptor_actorFv,
(void*)adaptor_do_end__Q214JStudio_JStage14TAdaptor_actorFv,
(void*)adaptor_do_update__Q214JStudio_JStage14TAdaptor_actorFUl,
(void*)adaptor_do_data__Q214JStudio_JStage14TAdaptor_actorFPCvUlPCvUl,
(void*)
adaptor_do_PARENT__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
(void*)
adaptor_do_PARENT_NODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
(void*)
adaptor_do_PARENT_ENABLE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
(void*)
adaptor_do_PARENT_FUNCTION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
(void*)
adaptor_do_RELATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
(void*)
adaptor_do_RELATION_NODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
(void*)
adaptor_do_RELATION_ENABLE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
(void*)
adaptor_do_SHAPE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
(void*)
adaptor_do_ANIMATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
(void*)
adaptor_do_ANIMATION_MODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
(void*)
adaptor_do_TEXTURE_ANIMATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
(void*)
adaptor_do_TEXTURE_ANIMATION_MODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl,
/* padding */
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
};
/* 8028A5F0-8028A6B4 284F30 00C4+00 0/0 1/1 0/0 .text
* __ct__Q214JStudio_JStage14TAdaptor_actorFPCQ26JStage7TSystemPQ26JStage6TActor */
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;
}
/* 8028A6B4-8028A728 284FF4 0074+00 1/0 0/0 0/0 .text __dt__Q214JStudio_JStage14TAdaptor_actorFv
*/
JStudio_JStage::TAdaptor_actor::~TAdaptor_actor() {
adaptor_do_end();
}
/* ############################################################################################## */
/* 80431188-80431194 05DEA8 000C+00 1/1 0/0 0/0 .bss @1087 */
static u8 lit_1087[12];
/* 80431194-804311A0 05DEB4 000C+00 0/1 0/0 0/0 .bss @1088 */
#pragma push
#pragma force_active on
static u8 lit_1088[12];
#pragma pop
/* 804311A0-804311E0 05DEC0 0040+00 2/3 0/0 0/0 .bss
* saoVVOutput___Q214JStudio_JStage14TAdaptor_actor */
JStudio_JStage::TAdaptor_actor::TVVOutputObject JStudio_JStage::TAdaptor_actor::saoVVOutput_[2];
/* 804311E0-804311EC 05DF00 000C+00 0/1 0/0 0/0 .bss @1095 */
#pragma push
#pragma force_active on
static u8 lit_1095[12];
#pragma pop
/* 804311EC-804311F8 05DF0C 000C+00 0/1 0/0 0/0 .bss @1102 */
#pragma push
#pragma force_active on
static u8 lit_1102[12];
#pragma pop
/* 804311F8-80431204 05DF18 000C+00 0/1 0/0 0/0 .bss @1103 */
#pragma push
#pragma force_active on
static u8 lit_1103[12];
#pragma pop
/* 80431204-80431298 05DF24 0090+04 2/3 0/0 0/0 .bss
* saoVVOutput_ANIMATION_FRAME___Q214JStudio_JStage14TAdaptor_actor */
JStudio_JStage::TAdaptor_actor::TVVOutput_ANIMATION_FRAME_ JStudio_JStage::TAdaptor_actor::saoVVOutput_ANIMATION_FRAME_[3];
/* 8028A728-8028A7B4 285068 008C+00 1/0 0/0 0/0 .text
* adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_actorFv */
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++;
}
}
/* 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
void JStudio_JStage::TAdaptor_actor::adaptor_do_begin() {
// NONMATCHING
}
#endif
/* 8028A8D8-8028A92C 285218 0054+00 1/0 0/0 0/0 .text
* adaptor_do_end__Q214JStudio_JStage14TAdaptor_actorFv */
void JStudio_JStage::TAdaptor_actor::adaptor_do_end() {
adaptor_object_end_();
}
/* 8028A92C-8028A974 28526C 0048+00 1/0 0/0 0/0 .text
* adaptor_do_update__Q214JStudio_JStage14TAdaptor_actorFUl */
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();
}
/* 8028A974-8028A998 2852B4 0024+00 1/0 0/0 0/0 .text
* adaptor_do_data__Q214JStudio_JStage14TAdaptor_actorFPCvUlPCvUl */
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);
}
/* 8028A998-8028A9F0 2852D8 0058+00 1/0 0/0 0/0 .text
* adaptor_do_SHAPE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */
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);
}
/* 8028A9F0-8028AA48 285330 0058+00 1/0 0/0 0/0 .text
* adaptor_do_ANIMATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */
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);
}
/* 8028AA48-8028AA5C 285388 0014+00 1/0 0/0 0/0 .text
* adaptor_do_ANIMATION_MODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028AA5C-8028AAB4 28539C 0058+00 1/0 0/0 0/0 .text
* adaptor_do_TEXTURE_ANIMATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl
*/
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);
}
/* 8028AAB4-8028AAC8 2853F4 0014+00 1/0 0/0 0/0 .text
* adaptor_do_TEXTURE_ANIMATION_MODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028AAC8-8028AB0C 285408 0044+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */
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;
}
}
/* 8028AB0C-8028AB68 28544C 005C+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT_NODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028AB68-8028ABF0 2854A8 0088+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT_ENABLE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028ABF0-8028AC04 285530 0014+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT_FUNCTION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028AC04-8028AC48 285544 0044+00 1/0 0/0 0/0 .text
* adaptor_do_RELATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl */
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;
}
}
/* 8028AC48-8028ACA4 285588 005C+00 1/0 0/0 0/0 .text
* adaptor_do_RELATION_NODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028ACA4-8028ACFC 2855E4 0058+00 1/0 0/0 0/0 .text
* adaptor_do_RELATION_ENABLE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028ACFC-8028AD38 28563C 003C+00 3/3 0/0 0/0 .text
* setJSG_ID___Q214JStudio_JStage14TAdaptor_actorFMQ26JStage6TActorFPCvPvUl_vQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028AD38-8028AECC 285678 0194+00 1/1 0/0 0/0 .text
* setJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl */
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);
}
/* 8028AECC-8028B064 28580C 0198+00 1/1 0/0 0/0 .text
* getJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl */
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);
}
/* 8028B064-8028B138 2859A4 00D4+00 1/0 0/0 0/0 .text
* __cl__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_CFfPQ27JStudio8TAdaptor */
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);
}
/* 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
JStudio_JStage::TAdaptor_actor::TVVOutput_ANIMATION_FRAME_::~TVVOutput_ANIMATION_FRAME_() {
// NONMATCHING
}
#endif
/* ############################################################################################## */
/* 803C5864-803C5888 022984 0010+14 2/2 0/0 0/0 .data
* __vt__Q214JStudio_JStage81TVariableValueOutput_object_<Q214JStudio_JStage14TAdaptor_actor,Q26JStage6TActor>
*/
SECTION_DATA extern void* data_803C5864[4 + 5 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)func_8028B5E0,
(void*)func_8028B580,
/* padding */
NULL,
NULL,
NULL,
NULL,
NULL,
};
/* 8028B198-8028B568 285AD8 03D0+00 0/0 1/0 0/0 .text __sinit_object-actor_cpp */
void func_8028B198() {
// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x8028B198, func_8028B198);
#pragma pop
/* 8028B568-8028B580 285EA8 0018+00 1/1 6/6 0/0 .text __ct__Q27JStudio14TVariableValueFv
*/
JStudio::TVariableValue::TVariableValue() {
// NONMATCHING
}
/* 8028B580-8028B5E0 285EC0 0060+00 2/1 0/0 0/0 .text
* __dt__Q214JStudio_JStage81TVariableValueOutput_object_<Q214JStudio_JStage14TAdaptor_actor,Q26JStage6TActor>Fv
*/
extern "C" void func_8028B580(void* _this) {
// NONMATCHING
}
/* 8028B5E0-8028B610 285F20 0030+00 1/0 0/0 0/0 .text
* __cl__Q214JStudio_JStage81TVariableValueOutput_object_<Q214JStudio_JStage14TAdaptor_actor,Q26JStage6TActor>CFfPQ27JStudio8TAdaptor
*/
extern "C" void func_8028B5E0(void* _this, f32 param_0,
JStudio::TAdaptor* param_1) /* const */ {
// NONMATCHING
}
@@ -0,0 +1,53 @@
//
// object-ambientlight
//
#include "JSystem/JStudio/JStudio_JStage/object-ambientlight.h"
/* 8028B610-8028B6AC 285F50 009C+00 0/0 1/1 0/0 .text
* __ct__Q214JStudio_JStage21TAdaptor_ambientLightFPCQ26JStage7TSystemPQ26JStage13TAmbientLight */
JStudio_JStage::TAdaptor_ambientLight::TAdaptor_ambientLight(JStage::TSystem const* param_1,
JStage::TAmbientLight* param_2)
: TAdaptor_object_(param_1, param_2) {}
/* 8028B6AC-8028B720 285FEC 0074+00 1/0 0/0 0/0 .text
* __dt__Q214JStudio_JStage21TAdaptor_ambientLightFv */
JStudio_JStage::TAdaptor_ambientLight::~TAdaptor_ambientLight() {
adaptor_do_end();
}
/* 8028B720-8028B724 286060 0004+00 1/0 0/0 0/0 .text
* adaptor_do_prepare__Q214JStudio_JStage21TAdaptor_ambientLightFv */
void JStudio_JStage::TAdaptor_ambientLight::adaptor_do_prepare() {
}
/* 8028B724-8028B7B0 286064 008C+00 1/0 0/0 0/0 .text
* adaptor_do_begin__Q214JStudio_JStage21TAdaptor_ambientLightFv */
void JStudio_JStage::TAdaptor_ambientLight::adaptor_do_begin() {
adaptor_object_begin_();
GXColor color = get_pJSG_()->JSGGetColor();
adaptor_setVariableValue_GXColor(sauVariableValue_4_COLOR_RGBA, color);
}
/* 8028B7B0-8028B804 2860F0 0054+00 1/0 0/0 0/0 .text
* adaptor_do_end__Q214JStudio_JStage21TAdaptor_ambientLightFv */
void JStudio_JStage::TAdaptor_ambientLight::adaptor_do_end() {
adaptor_object_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 = get_pJSG_();
GXColor color;
adaptor_getVariableValue_GXColor(&color, sauVariableValue_4_COLOR_RGBA);
lightObj->JSGSetColor(color);
pJSGObject_->JSGUpdate();
}
/* 8028B87C-8028B8A0 2861BC 0024+00 1/0 0/0 0/0 .text
* adaptor_do_data__Q214JStudio_JStage21TAdaptor_ambientLightFPCvUlPCvUl */
void JStudio_JStage::TAdaptor_ambientLight::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);
}
@@ -0,0 +1,333 @@
//
// object-camera
//
#include "JSystem/JStudio/JStudio_JStage/object-camera.h"
/* 8028B8A0-8028B960 2861E0 00C0+00 0/0 1/1 0/0 .text
* __ct__Q214JStudio_JStage15TAdaptor_cameraFPCQ26JStage7TSystemPQ26JStage7TCamera */
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;
}
/* 8028B960-8028B9D4 2862A0 0074+00 1/0 0/0 0/0 .text __dt__Q214JStudio_JStage15TAdaptor_cameraFv
*/
JStudio_JStage::TAdaptor_camera::~TAdaptor_camera() {
adaptor_do_end();
}
/* 804312D4-80431378 05DFF4 00A0+04 2/3 0/0 0/0 .bss
* saoVVOutput___Q214JStudio_JStage15TAdaptor_camera */
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 */
void JStudio_JStage::TAdaptor_camera::adaptor_do_prepare() {
TVVOutput* pOutput = saoVVOutput_;
while (!pOutput->isEnd_()) {
pOutput->adaptor_setOutput_(this);
pOutput++;
}
}
/* 8028BA1C-8028BAF8 28635C 00DC+00 1/0 0/0 0/0 .text
* adaptor_do_begin__Q214JStudio_JStage15TAdaptor_cameraFv */
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++;
}
}
/* 8028BAF8-8028BB4C 286438 0054+00 1/0 0/0 0/0 .text
* adaptor_do_end__Q214JStudio_JStage15TAdaptor_cameraFv */
void JStudio_JStage::TAdaptor_camera::adaptor_do_end() {
adaptor_object_end_();
}
/* 8028BB4C-8028BBAC 28648C 0060+00 1/0 0/0 0/0 .text
* adaptor_do_update__Q214JStudio_JStage15TAdaptor_cameraFUl */
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();
}
/* 8028BBAC-8028BBD0 2864EC 0024+00 1/0 0/0 0/0 .text
* adaptor_do_data__Q214JStudio_JStage15TAdaptor_cameraFPCvUlPCvUl */
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);
}
/* 8028BBD0-8028BC14 286510 0044+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl */
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;
}
}
/* 8028BC14-8028BC70 286554 005C+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028BC70-8028BCEC 2865B0 007C+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028BCEC-8028BD00 28662C 0014+00 1/0 0/0 0/0 .text
* adaptor_do_PARENT_FUNCTION__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028BD00-8028BD44 286640 0044+00 1/0 0/0 0/0 .text
* adaptor_do_TARGET_PARENT__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028BD44-8028BDA0 286684 005C+00 1/0 0/0 0/0 .text
* adaptor_do_TARGET_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028BDA0-8028BDBC 2866E0 001C+00 1/0 0/0 0/0 .text
* adaptor_do_TARGET_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl
*/
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;
}
}
/* 8028BDBC-8028BEB8 2866FC 00FC+00 1/1 0/0 0/0 .text
* setJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl */
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);
}
/* 8028BEB8-8028BFBC 2867F8 0104+00 1/1 0/0 0/0 .text
* getJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl */
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);
}
/* 8028BFBC-8028C09C 2868FC 00E0+00 1/1 0/0 0/0 .text
* setJSG_targetPosition___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl */
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);
}
/* 8028C09C-8028C180 2869DC 00E4+00 1/1 0/0 0/0 .text
* getJSG_targetPosition___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl */
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);
}
@@ -0,0 +1,71 @@
//
// object-fog
//
#include "JSystem/JStudio/JStudio_JStage/object-fog.h"
/* 8028C574-8028C610 286EB4 009C+00 0/0 1/1 0/0 .text
* __ct__Q214JStudio_JStage12TAdaptor_fogFPCQ26JStage7TSystemPQ26JStage4TFog */
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 */
JStudio_JStage::TAdaptor_fog::~TAdaptor_fog() {
adaptor_do_end();
}
/* 8043139C-80431400 05E0BC 0060+04 2/3 0/0 0/0 .bss
* saoVVOutput___Q214JStudio_JStage12TAdaptor_fog */
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 */
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++;
}
}
/* 8028C6CC-8028C7B4 28700C 00E8+00 1/0 0/0 0/0 .text
* adaptor_do_begin__Q214JStudio_JStage12TAdaptor_fogFv */
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++;
}
}
/* 8028C7B4-8028C808 2870F4 0054+00 1/0 0/0 0/0 .text
* adaptor_do_end__Q214JStudio_JStage12TAdaptor_fogFv */
void JStudio_JStage::TAdaptor_fog::adaptor_do_end() {
adaptor_object_end_();
}
/* 8028C808-8028C880 287148 0078+00 1/0 0/0 0/0 .text
* adaptor_do_update__Q214JStudio_JStage12TAdaptor_fogFUl */
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();
}
/* 8028C880-8028C8A4 2871C0 0024+00 1/0 0/0 0/0 .text
* adaptor_do_data__Q214JStudio_JStage12TAdaptor_fogFPCvUlPCvUl */
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);
}
@@ -0,0 +1,266 @@
//
// Generated By: dol2asm
// Translation Unit: object-light
//
#include "JSystem/JStudio/JStudio_JStage/object-light.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" void __ct__Q214JStudio_JStage14TAdaptor_lightFPCQ26JStage7TSystemPQ26JStage6TLight();
extern "C" void __dt__Q214JStudio_JStage14TAdaptor_lightFv();
extern "C" void adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_lightFv();
extern "C" void adaptor_do_begin__Q214JStudio_JStage14TAdaptor_lightFv();
extern "C" void adaptor_do_end__Q214JStudio_JStage14TAdaptor_lightFv();
extern "C" void adaptor_do_update__Q214JStudio_JStage14TAdaptor_lightFUl();
extern "C" void adaptor_do_data__Q214JStudio_JStage14TAdaptor_lightFPCvUlPCvUl();
extern "C" void
adaptor_do_FACULTY__Q214JStudio_JStage14TAdaptor_lightFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
adaptor_do_ENABLE__Q214JStudio_JStage14TAdaptor_lightFQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void
__cl__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_CFfPQ27JStudio8TAdaptor();
extern "C" void __dt__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_Fv();
extern "C" void func_8028D2B8();
extern "C" u8 saoVVOutput_direction___Q214JStudio_JStage14TAdaptor_light[72];
//
// 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 adaptor_setVariableValue_GXColor__Q27JStudio8TAdaptorFPCUlRC8_GXColor();
extern "C" void adaptor_getVariableValue_GXColor__Q27JStudio8TAdaptorCFP8_GXColorPCUl();
extern "C" void __dt__Q27JStudio14TAdaptor_lightFv();
extern "C" void adaptor_object_data___Q214JStudio_JStage16TAdaptor_object_FPCvUlPCvUl();
extern "C" void
adaptor_object_ENABLE___Q214JStudio_JStage16TAdaptor_object_FQ37JStudio4data15TEOperationDataPCvUl();
extern "C" void __ct__Q27JStudio14TVariableValueFv();
extern "C" void __dl__FPv();
extern "C" void __register_global_object();
extern "C" void __construct_array();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" u8 const sauVariableValue_4_COLOR_RGBA__Q27JStudio14TAdaptor_light[16];
extern "C" u8 const sauVariableValue_3_POSITION_XYZ__Q27JStudio14TAdaptor_light[12];
extern "C" u8 const sauVariableValue_3_TARGET_POSITION_XYZ__Q27JStudio14TAdaptor_light[12];
extern "C" extern void* __vt__Q27JStudio14TAdaptor_light[10];
extern "C" extern void* __vt__Q27JStudio8TAdaptor[8];
extern "C" extern void* __vt__Q37JStudio14TVariableValue7TOutput[4];
extern "C" u8 soOutput_none___Q27JStudio14TVariableValue[4 + 4 /* padding */];
/* 8028CB50-8028CBF4 287490 00A4+00 0/0 1/1 0/0 .text
* __ct__Q214JStudio_JStage14TAdaptor_lightFPCQ26JStage7TSystemPQ26JStage6TLight */
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;
}
/* 8028CBF4-8028CC68 287534 0074+00 1/0 0/0 0/0 .text __dt__Q214JStudio_JStage14TAdaptor_lightFv
*/
JStudio_JStage::TAdaptor_light::~TAdaptor_light() {
adaptor_do_end();
}
/* 80431448-80431490 05E168 0048+00 1/2 0/0 0/0 .bss
* saoVVOutput_direction___Q214JStudio_JStage14TAdaptor_light */
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 */
void JStudio_JStage::TAdaptor_light::adaptor_do_prepare() {
TVVOutput_direction_* pOutput = saoVVOutput_direction_;
while (!pOutput->isEnd_()) {
pOutput->adaptor_setOutput_(this);
pOutput++;
}
}
/* ############################################################################################## */
/* 804554E8-804554F0 003AE8 0004+04 1/1 0/0 0/0 .sdata2 @846 */
SECTION_SDATA2 static f32 lit_846[1 + 1 /* padding */] = {
0.0f,
/* padding */
0.0f,
};
/* 804554F0-804554F8 003AF0 0008+00 1/1 0/0 0/0 .sdata2 @847 */
SECTION_SDATA2 static f64 lit_847 = 0.5;
/* 804554F8-80455500 003AF8 0008+00 1/1 0/0 0/0 .sdata2 @848 */
SECTION_SDATA2 static f64 lit_848 = 3.0;
/* 80455500-80455508 003B00 0008+00 1/1 0/0 0/0 .sdata2 @849 */
SECTION_SDATA2 static u8 lit_849[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80455508-8045550C 003B08 0004+00 1/1 0/0 0/0 .sdata2 @850 */
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
void JStudio_JStage::TAdaptor_light::adaptor_do_begin() {
// NONMATCHING
}
#endif
/* 8028CF68-8028CFBC 2878A8 0054+00 1/0 0/0 0/0 .text
* adaptor_do_end__Q214JStudio_JStage14TAdaptor_lightFv */
void JStudio_JStage::TAdaptor_light::adaptor_do_end() {
adaptor_object_end_();
}
/* ############################################################################################## */
/* 8045550C-80455510 003B0C 0004+00 1/1 0/0 0/0 .sdata2 @898 */
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
void JStudio_JStage::TAdaptor_light::adaptor_do_update(u32 param_0) {
// NONMATCHING
}
#endif
/* 8028D18C-8028D1B0 287ACC 0024+00 1/0 0/0 0/0 .text
* adaptor_do_data__Q214JStudio_JStage14TAdaptor_lightFPCvUlPCvUl */
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);
}
/* 8028D1B0-8028D228 287AF0 0078+00 1/0 0/0 0/0 .text
* adaptor_do_FACULTY__Q214JStudio_JStage14TAdaptor_lightFQ37JStudio4data15TEOperationDataPCvUl */
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:;
}
/* 8028D228-8028D24C 287B68 0024+00 1/0 0/0 0/0 .text
* adaptor_do_ENABLE__Q214JStudio_JStage14TAdaptor_lightFQ37JStudio4data15TEOperationDataPCvUl */
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);
}
/* 8028D24C-8028D258 287B8C 000C+00 1/0 0/0 0/0 .text
* __cl__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_CFfPQ27JStudio8TAdaptor */
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;
}
@@ -0,0 +1,142 @@
//
// object
//
#include "JSystem/JStudio/JStudio_JStage/object.h"
/* 8028A1F8-8028A290 284B38 0098+00 0/0 2/2 0/0 .text
* transform_toGlobalFromLocal__14JStudio_JStageFPA4_fRCQ37JStudio8TControl39TTransform_translation_rotation_scalingPCQ26JStage7TObjectUl
*/
bool JStudio_JStage::transform_toGlobalFromLocal(
f32 (*param_1)[4], JStudio::TControl::TTransform_translation_rotation_scaling const& param_2,
JStage::TObject const* param_3, u32 param_4) {
if (param_3 == NULL) {
return false;
}
Mtx nodeTransformMtx;
if (!param_3->JSGGetNodeTransformation(param_4, nodeTransformMtx)) {
return false;
}
Mtx amStack_70;
JStudio::math::getTransformation_SRxyzT(amStack_70, param_2.scaling, param_2.rotation,
param_2.translation);
MTXConcat(nodeTransformMtx, amStack_70, param_1);
return true;
}
/* 8028A290-8028A328 284BD0 0098+00 0/0 3/3 0/0 .text
* transform_toGlobalFromLocal__14JStudio_JStageFPA4_fRCQ37JStudio8TControl19TTransform_positionPCQ26JStage7TObjectUl
*/
bool JStudio_JStage::transform_toGlobalFromLocal(
f32 (*param_1)[4], JStudio::TControl::TTransform_position const& param_2,
JStage::TObject const* param_3, u32 param_4) {
if (param_3 == NULL) {
return false;
}
Mtx nodeTransformMtx;
if (!param_3->JSGGetNodeTransformation(param_4, nodeTransformMtx)) {
return false;
}
Mtx amStack_70;
JStudio::math::getTransformation_T(amStack_70, &param_2);
MTXConcat(nodeTransformMtx, amStack_70, param_1);
return true;
}
/* 8028A328-8028A3CC 284C68 00A4+00 0/0 1/1 0/0 .text
* transform_toLocalFromGlobal__14JStudio_JStageFPA4_fRCQ37JStudio8TControl39TTransform_translation_rotation_scalingPCQ26JStage7TObjectUl
*/
bool JStudio_JStage::transform_toLocalFromGlobal(
f32 (*param_1)[4], JStudio::TControl::TTransform_translation_rotation_scaling const& param_2,
JStage::TObject const* param_3, u32 param_4) {
if (param_3 == NULL) {
return false;
}
Mtx nodeTransformMtx;
if (!param_3->JSGGetNodeTransformation(param_4, nodeTransformMtx)) {
return false;
}
Mtx afStack_70;
JStudio::math::getTransformation_SRxyzT(afStack_70, param_2.scaling, param_2.rotation,
param_2.translation);
Mtx auStack_a0;
MTXInverse(nodeTransformMtx, auStack_a0);
MTXConcat(auStack_a0, afStack_70, param_1);
return true;
}
/* 8028A3CC-8028A470 284D0C 00A4+00 0/0 2/2 0/0 .text
* transform_toLocalFromGlobal__14JStudio_JStageFPA4_fRCQ37JStudio8TControl19TTransform_positionPCQ26JStage7TObjectUl
*/
bool JStudio_JStage::transform_toLocalFromGlobal(
f32 (*param_1)[4], JStudio::TControl::TTransform_position const& param_2,
JStage::TObject const* param_3, u32 param_4) {
if (param_3 == NULL) {
return false;
}
Mtx nodeTransformMtx;
if (!param_3->JSGGetNodeTransformation(param_4, nodeTransformMtx)) {
return false;
}
Mtx afStack_70;
JStudio::math::getTransformation_T(afStack_70, &param_2);
Mtx auStack_a0;
MTXInverse(nodeTransformMtx, auStack_a0);
MTXConcat(auStack_a0, afStack_70, param_1);
return true;
}
/* 8028A470-8028A4BC 284DB0 004C+00 0/0 5/5 0/0 .text
* adaptor_object_data___Q214JStudio_JStage16TAdaptor_object_FPCvUlPCvUl */
void JStudio_JStage::TAdaptor_object_::adaptor_object_data_(void const* param_1, u32 param_2,
void const* param_3, u32 param_4) {
int uVar3;
if (param_2 == 0) {
uVar3 = -1;
} else {
uVar3 = *(int*)param_1;
}
pJSGObject_->JSGSetData(uVar3, param_3, param_4);
}
/* 8028A4BC-8028A50C 284DFC 0050+00 0/0 4/4 0/0 .text
* adaptor_object_findJSGObject___Q214JStudio_JStage16TAdaptor_object_FPCc */
JStage::TObject*
JStudio_JStage::TAdaptor_object_::adaptor_object_findJSGObject_(char const* param_1) {
JStage::TObject* pJSGObject;
if (pJSGSystem_->JSGFindObject(&pJSGObject, param_1, JStage::OBJECT_UNDEFINED) == 0) {
JUT_ASSERT(122, pJSGObject != 0);
} else {
return NULL;
}
return pJSGObject;
}
/* 8028A50C-8028A550 284E4C 0044+00 0/0 4/4 0/0 .text
* adaptor_object_findJSGObjectNode___Q214JStudio_JStage16TAdaptor_object_FPCQ26JStage7TObjectPCc */
s32 JStudio_JStage::TAdaptor_object_::adaptor_object_findJSGObjectNode_(
JStage::TObject const* param_1, char const* param_2) {
if (param_1 == NULL) {
return -1;
}
return param_1->JSGFindNodeID(param_2);
}
/* 8028A550-8028A5F0 284E90 00A0+00 0/0 1/1 0/0 .text
* adaptor_object_ENABLE___Q214JStudio_JStage16TAdaptor_object_FQ37JStudio4data15TEOperationDataPCvUl
*/
void
JStudio_JStage::TAdaptor_object_::adaptor_object_ENABLE_(JStudio::data::TEOperationData param_1,
void const* pContent, u32 uSize) {
switch (param_1) {
case JStudio::data::UNK_0x2:
JUT_ASSERT(157, uSize==4);
JUT_ASSERT(158, pContent!=0);
if (*(u32*)pContent != 0) {
pJSGObject_->JSGFEnableFlag(2);
} else {
pJSGObject_->JSGFDisableFlag(2);
}
break;
}
}