mirror of https://github.com/zeldaret/tp.git
1241 lines
51 KiB
C++
1241 lines
51 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: J3DModelLoader
|
|
//
|
|
|
|
#include "JSystem/J3DGraphLoader/J3DModelLoader.h"
|
|
#include "JSystem/J3DGraphLoader/J3DJointFactory.h"
|
|
#include "JSystem/J3DGraphLoader/J3DMaterialFactory.h"
|
|
#include "JSystem/J3DGraphLoader/J3DMaterialFactory_v21.h"
|
|
#include "JSystem/J3DGraphLoader/J3DShapeFactory.h"
|
|
#include "JSystem/J3DGraphAnimator/J3DJointTree.h"
|
|
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
|
|
#include "JSystem/J3DGraphAnimator/J3DMaterialAttach.h"
|
|
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
|
#include "JSystem/JUtility/JUTNameTab.h"
|
|
#include "JSystem/JKernel/JKRHeap.h"
|
|
#include "JSystem/JSupport/JSupport.h"
|
|
#include "dolphin/os.h"
|
|
#include "dol2asm.h"
|
|
|
|
//
|
|
// Types:
|
|
//
|
|
|
|
struct J3DAnmTransform {};
|
|
|
|
//
|
|
// Forward References:
|
|
//
|
|
|
|
extern "C" void __ct__14J3DModelLoaderFv();
|
|
extern "C" void load__22J3DModelLoaderDataBaseFPCvUl();
|
|
extern "C" void load__14J3DModelLoaderFPCvUl();
|
|
extern "C" void loadMaterialTable__14J3DModelLoaderFPCv();
|
|
extern "C" void loadBinaryDisplayList__14J3DModelLoaderFPCvUl();
|
|
extern "C" void setupBBoardInfo__14J3DModelLoaderFv();
|
|
extern "C" void readInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl();
|
|
extern "C" static void getFmtType__FP17_GXVtxAttrFmtList7_GXAttr();
|
|
extern "C" void readVertex__14J3DModelLoaderFPC14J3DVertexBlock();
|
|
extern "C" void readEnvelop__14J3DModelLoaderFPC16J3DEnvelopeBlock();
|
|
extern "C" void readDraw__14J3DModelLoaderFPC12J3DDrawBlock();
|
|
extern "C" void readJoint__14J3DModelLoaderFPC13J3DJointBlock();
|
|
extern "C" void readMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl();
|
|
extern "C" void readMaterial_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul();
|
|
extern "C" void readShape__14J3DModelLoaderFPC13J3DShapeBlockUl();
|
|
extern "C" void readTexture__14J3DModelLoaderFPC15J3DTextureBlock();
|
|
extern "C" void readMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl();
|
|
extern "C" void readMaterialTable_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul();
|
|
extern "C" void readTextureTable__14J3DModelLoaderFPC15J3DTextureBlock();
|
|
extern "C" void readPatchedMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl();
|
|
extern "C" void readMaterialDL__14J3DModelLoaderFPC18J3DMaterialDLBlockUl();
|
|
extern "C" void modifyMaterial__14J3DModelLoaderFUl();
|
|
extern "C" void __dt__18J3DModelLoader_v26Fv();
|
|
extern "C" void __dt__18J3DModelLoader_v21Fv();
|
|
extern "C" void __dt__14J3DModelLoaderFv();
|
|
extern "C" void readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul();
|
|
extern "C" void readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl();
|
|
extern "C" void readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul();
|
|
extern "C" void readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl();
|
|
extern "C" bool calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl();
|
|
extern "C" bool calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl();
|
|
extern "C" void func_803364B8(void* _this);
|
|
extern "C" void func_80336524(void* _this, Vec const&, f32 const (&)[3][4]);
|
|
extern "C" void func_8033656C(void* _this);
|
|
extern "C" void func_80336594(void* _this);
|
|
extern "C" void func_80336600(void* _this, Vec const&, f32 const (&)[3][4]);
|
|
extern "C" void func_80336628(void* _this);
|
|
extern "C" void __ct__11J3DMaterialFv();
|
|
extern "C" void __dt__10J3DTextureFv();
|
|
extern "C" ResTIMG* func_803366EC(void const*, void const*);
|
|
extern "C" Mtx* func_80336704(void const*, void const*);
|
|
extern "C" void* func_8033671C(void const*, void const*);
|
|
extern "C" _GXVtxAttrFmtList* func_80336734(void const*, void const*);
|
|
extern "C" J3DModelHierarchy* func_8033674C(void const*, void const*);
|
|
extern "C" J3DShapeInitData* func_80336764(void const*, void const*);
|
|
extern "C" u16* func_8033677C(void const*, void const*);
|
|
extern "C" extern char const* const J3DModelLoader__stringBase0;
|
|
|
|
//
|
|
// External References:
|
|
//
|
|
|
|
extern "C" void setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform();
|
|
extern "C" void setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform();
|
|
extern "C" bool getAnmTransform__10J3DMtxCalcFUc();
|
|
extern "C" bool getAnmTransform__10J3DMtxCalcFv();
|
|
extern "C" void setWeight__10J3DMtxCalcFUcf();
|
|
extern "C" void getWeight__10J3DMtxCalcCFUc();
|
|
extern "C" void getTotalFreeSize__7JKRHeapFv();
|
|
extern "C" void* __nw__FUl();
|
|
extern "C" void* __nwa__FUl();
|
|
extern "C" void* __nwa__FUli();
|
|
extern "C" void __dl__FPv();
|
|
extern "C" void __ct__10JUTNameTabFPC7ResNTAB();
|
|
extern "C" u8* func_802F4260(void const*, void const*);
|
|
extern "C" u16* func_802F42C0(void const*, void const*);
|
|
extern "C" ResNTAB* func_8030A530(void const*, void const*);
|
|
extern "C" f32* func_8030A560(void const*, void const*);
|
|
extern "C" void initialize__11J3DMaterialFv();
|
|
extern "C" void initShapeNodes__13J3DShapeTableFP14J3DDrawMtxDataP13J3DVertexData();
|
|
extern "C" void sortVcdVatCmd__13J3DShapeTableFv();
|
|
extern "C" void
|
|
makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable();
|
|
extern "C" void findImportantMtxIndex__12J3DJointTreeFv();
|
|
extern "C" void clear__12J3DModelDataFv();
|
|
extern "C" void __ct__12J3DModelDataFv();
|
|
extern "C" void indexToPtr__12J3DModelDataFv();
|
|
extern "C" void init__25J3DMtxCalcJ3DSysInitBasicFRC3VecRA3_A4_Cf();
|
|
extern "C" void calcTransform__28J3DMtxCalcCalcTransformBasicFRC16J3DTransformInfo();
|
|
extern "C" void calcTransform__32J3DMtxCalcCalcTransformSoftimageFRC16J3DTransformInfo();
|
|
extern "C" void clear__16J3DMaterialTableFv();
|
|
extern "C" void __ct__16J3DMaterialTableFv();
|
|
extern "C" void __ct__18J3DMaterialFactoryFRC16J3DMaterialBlock();
|
|
extern "C" void __ct__18J3DMaterialFactoryFRC18J3DMaterialDLBlock();
|
|
extern "C" void countUniqueMaterials__18J3DMaterialFactoryFv();
|
|
extern "C" void
|
|
create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl();
|
|
extern "C" void modifyPatchedCurrentMtx__18J3DMaterialFactoryCFP11J3DMateriali();
|
|
extern "C" void __dt__11J3DMaterialFv();
|
|
extern "C" void __ct__22J3DMaterialFactory_v21FRC20J3DMaterialBlock_v21();
|
|
extern "C" void countUniqueMaterials__22J3DMaterialFactory_v21Fv();
|
|
extern "C" void create__22J3DMaterialFactory_v21CFP11J3DMaterialiUl();
|
|
extern "C" void countMaterialNum__14J3DModelLoaderFPCv();
|
|
extern "C" void calcLoadSize__14J3DModelLoaderFPCvUl();
|
|
extern "C" void calcLoadMaterialTableSize__14J3DModelLoaderFPCv();
|
|
extern "C" void calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl();
|
|
extern "C" void calcSizeMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl();
|
|
extern "C" void calcSizeMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl();
|
|
extern "C" void __ct__15J3DJointFactoryFRC13J3DJointBlock();
|
|
extern "C" void create__15J3DJointFactoryFi();
|
|
extern "C" void __ct__15J3DShapeFactoryFRC13J3DShapeBlock();
|
|
extern "C" void create__15J3DShapeFactoryFiUlP14_GXVtxDescList();
|
|
extern "C" void allocVcdVatCmdBuffer__15J3DShapeFactoryFUl();
|
|
extern "C" void __construct_new_array();
|
|
extern "C" void _savegpr_24();
|
|
extern "C" void _savegpr_25();
|
|
extern "C" void _savegpr_27();
|
|
extern "C" void _savegpr_28();
|
|
extern "C" void _savegpr_29();
|
|
extern "C" void _restgpr_24();
|
|
extern "C" void _restgpr_25();
|
|
extern "C" void _restgpr_27();
|
|
extern "C" void _restgpr_28();
|
|
extern "C" void _restgpr_29();
|
|
extern "C" extern void* data_803A3360[11];
|
|
extern "C" extern void* __vt__19J3DMtxCalcNoAnmBase[11];
|
|
extern "C" extern void* __vt__10J3DMtxCalc[11 + 1 /* padding */];
|
|
extern "C" extern void* __vt__11J3DMaterial[12];
|
|
extern "C" u8 mCurrentMtx__6J3DSys[48];
|
|
extern "C" f32 mCurrentS__6J3DSys[3];
|
|
extern "C" u8 sCurrentHeap__7JKRHeap[4];
|
|
extern "C" u8 mJoint__10J3DMtxCalc[4];
|
|
|
|
//
|
|
// Declarations:
|
|
//
|
|
|
|
/* ############################################################################################## */
|
|
/* 803CF108-803CF14C 02C228 0044+00 2/2 0/0 0/0 .data __vt__18J3DModelLoader_v21 */
|
|
SECTION_DATA extern void* __vt__18J3DModelLoader_v21[17] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)load__14J3DModelLoaderFPCvUl,
|
|
(void*)loadMaterialTable__14J3DModelLoaderFPCv,
|
|
(void*)loadBinaryDisplayList__14J3DModelLoaderFPCvUl,
|
|
(void*)calcLoadSize__14J3DModelLoaderFPCvUl,
|
|
(void*)calcLoadMaterialTableSize__14J3DModelLoaderFPCv,
|
|
(void*)calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl,
|
|
(void*)countMaterialNum__14J3DModelLoaderFPCv,
|
|
(void*)setupBBoardInfo__14J3DModelLoaderFv,
|
|
(void*)__dt__18J3DModelLoader_v21Fv,
|
|
(void*)readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
|
(void*)readMaterial_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul,
|
|
(void*)readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
|
(void*)readMaterialTable_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul,
|
|
(void*)calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
|
(void*)calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
|
};
|
|
|
|
/* 803CF14C-803CF190 02C26C 0044+00 2/2 0/0 0/0 .data __vt__18J3DModelLoader_v26 */
|
|
SECTION_DATA extern void* __vt__18J3DModelLoader_v26[17] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)load__14J3DModelLoaderFPCvUl,
|
|
(void*)loadMaterialTable__14J3DModelLoaderFPCv,
|
|
(void*)loadBinaryDisplayList__14J3DModelLoaderFPCvUl,
|
|
(void*)calcLoadSize__14J3DModelLoaderFPCvUl,
|
|
(void*)calcLoadMaterialTableSize__14J3DModelLoaderFPCv,
|
|
(void*)calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl,
|
|
(void*)countMaterialNum__14J3DModelLoaderFPCv,
|
|
(void*)setupBBoardInfo__14J3DModelLoaderFv,
|
|
(void*)__dt__18J3DModelLoader_v26Fv,
|
|
(void*)readMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl,
|
|
(void*)readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul,
|
|
(void*)readMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl,
|
|
(void*)readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul,
|
|
(void*)calcSizeMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl,
|
|
(void*)calcSizeMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl,
|
|
};
|
|
|
|
/* 803CF190-803CF1BC 02C2B0 002C+00 2/2 0/0 0/0 .data
|
|
* __vt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage> */
|
|
SECTION_DATA extern void* data_803CF190[11] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)func_803364B8,
|
|
(void*)setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform,
|
|
(void*)getAnmTransform__10J3DMtxCalcFv,
|
|
(void*)setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform,
|
|
(void*)getAnmTransform__10J3DMtxCalcFUc,
|
|
(void*)setWeight__10J3DMtxCalcFUcf,
|
|
(void*)getWeight__10J3DMtxCalcCFUc,
|
|
(void*)func_80336524,
|
|
(void*)func_8033656C,
|
|
};
|
|
|
|
/* 803CF1BC-803CF1E8 02C2DC 002C+00 2/2 0/0 0/0 .data
|
|
* __vt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic> */
|
|
SECTION_DATA extern void* data_803CF1BC[11] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)func_80336594,
|
|
(void*)setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform,
|
|
(void*)getAnmTransform__10J3DMtxCalcFv,
|
|
(void*)setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform,
|
|
(void*)getAnmTransform__10J3DMtxCalcFUc,
|
|
(void*)setWeight__10J3DMtxCalcFUcf,
|
|
(void*)getWeight__10J3DMtxCalcCFUc,
|
|
(void*)func_80336600,
|
|
(void*)func_80336628,
|
|
};
|
|
|
|
/* 803CF1E8-803CF1F4 02C308 000C+00 4/4 0/0 0/0 .data __vt__10J3DTexture */
|
|
SECTION_DATA extern void* __vt__10J3DTexture[3] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)__dt__10J3DTextureFv,
|
|
};
|
|
|
|
/* 803CF1F4-803CF238 02C314 0044+00 5/5 0/0 0/0 .data __vt__14J3DModelLoader */
|
|
SECTION_DATA extern void* __vt__14J3DModelLoader[17] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)load__14J3DModelLoaderFPCvUl,
|
|
(void*)loadMaterialTable__14J3DModelLoaderFPCv,
|
|
(void*)loadBinaryDisplayList__14J3DModelLoaderFPCvUl,
|
|
(void*)calcLoadSize__14J3DModelLoaderFPCvUl,
|
|
(void*)calcLoadMaterialTableSize__14J3DModelLoaderFPCv,
|
|
(void*)calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl,
|
|
(void*)countMaterialNum__14J3DModelLoaderFPCv,
|
|
(void*)setupBBoardInfo__14J3DModelLoaderFv,
|
|
(void*)__dt__14J3DModelLoaderFv,
|
|
(void*)readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
|
(void*)readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul,
|
|
(void*)readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
|
(void*)readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul,
|
|
(void*)calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
|
(void*)calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl,
|
|
};
|
|
|
|
/* 8033468C-803346BC 32EFCC 0030+00 1/1 0/0 0/0 .text __ct__14J3DModelLoaderFv */
|
|
#ifdef NONMATCHING
|
|
// matches once vtable ordering is correct
|
|
J3DModelLoader::J3DModelLoader() :
|
|
mpModelData(NULL),
|
|
mpMaterialTable(NULL),
|
|
mpShapeBlock(NULL),
|
|
mpMaterialBlock(NULL),
|
|
mpModelHierarchy(NULL),
|
|
field_0x18(0),
|
|
mEnvelopeSize(0) {
|
|
/* empty function */
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm J3DModelLoader::J3DModelLoader() {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/__ct__14J3DModelLoaderFv.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 803346BC-803347E0 32EFFC 0124+00 0/0 4/4 0/0 .text load__22J3DModelLoaderDataBaseFPCvUl */
|
|
#ifdef NONMATCHING
|
|
// matches once vtable ordering is correct
|
|
J3DModelData* J3DModelLoaderDataBase::load(void const* i_data, u32 i_flags) {
|
|
if (i_data == NULL) {
|
|
return NULL;
|
|
}
|
|
if (*(u32*)i_data == 'J3D1' && *(u32*)((u32)i_data + 4) == 'bmd1') {
|
|
return NULL;
|
|
}
|
|
if (*(u32*)i_data == 'J3D2' && *(u32*)((u32)i_data + 4) == 'bmd2') {
|
|
J3DModelLoader_v21 loader;
|
|
return loader.load(i_data, i_flags);
|
|
}
|
|
if (*(u32*)i_data == 'J3D2' && *(u32*)((u32)i_data + 4) == 'bmd3') {
|
|
J3DModelLoader_v26 loader;
|
|
return loader.load(i_data, i_flags);
|
|
}
|
|
return NULL;
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm J3DModelData* J3DModelLoaderDataBase::load(void const* param_0, u32 param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/load__22J3DModelLoaderDataBaseFPCvUl.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* ############################################################################################## */
|
|
/* 803A20B0-803A20B0 02E710 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DEAD static char const* const stringBase_803A20B0 = "Unknown data block\n";
|
|
#pragma pop
|
|
|
|
/* 803347E0-80334ABC 32F120 02DC+00 4/1 0/0 0/0 .text load__14J3DModelLoaderFPCvUl */
|
|
// Matches with virtual functions
|
|
#ifdef NONMATCHING
|
|
J3DModelData* J3DModelLoader::load(void const* i_data, u32 i_flags) {
|
|
JKRGetCurrentHeap()->getTotalFreeSize();
|
|
mpModelData = new J3DModelData();
|
|
mpModelData->clear();
|
|
mpModelData->mpRawData = i_data;
|
|
mpModelData->setModelDataType(0);
|
|
mpMaterialTable = &mpModelData->mMaterialTable;
|
|
J3DModelFileData const* data = (J3DModelFileData*)i_data;
|
|
J3DModelBlock const* block = data->mBlocks;
|
|
for (u32 block_no = 0; block_no < data->mBlockNum; block_no++) {
|
|
switch (block->mBlockType) {
|
|
case 'INF1':
|
|
readInformation((J3DModelInfoBlock*)block, (s32)i_flags);
|
|
break;
|
|
case 'VTX1':
|
|
readVertex((J3DVertexBlock*)block);
|
|
break;
|
|
case 'EVP1':
|
|
readEnvelop((J3DEnvelopeBlock*)block);
|
|
break;
|
|
case 'DRW1':
|
|
readDraw((J3DDrawBlock*)block);
|
|
break;
|
|
case 'JNT1':
|
|
readJoint((J3DJointBlock*)block);
|
|
break;
|
|
case 'MAT3':
|
|
readMaterial((J3DMaterialBlock*)block, (s32)i_flags);
|
|
break;
|
|
case 'MAT2':
|
|
readMaterial_v21((J3DMaterialBlock_v21*)block, (s32)i_flags);
|
|
break;
|
|
case 'SHP1':
|
|
readShape((J3DShapeBlock*)block, (s32)i_flags);
|
|
break;
|
|
case 'TEX1':
|
|
readTexture((J3DTextureBlock*)block);
|
|
break;
|
|
default:
|
|
OSReport("Unknown data block\n");
|
|
break;
|
|
}
|
|
block = (J3DModelBlock*)((u32)block + block->mBlockSize);
|
|
}
|
|
J3DModelHierarchy const* hierarchy = mpModelData->getHierarchy();
|
|
mpModelData->makeHierarchy(NULL, &hierarchy);
|
|
mpModelData->getShapeTable()->sortVcdVatCmd();
|
|
mpModelData->getJointTree().findImportantMtxIndex();
|
|
setupBBoardInfo();
|
|
if (mpModelData->getFlag() & 0x100) {
|
|
for (u16 shape_no = 0; shape_no < mpModelData->getShapeNum(); shape_no++) {
|
|
mpModelData->getShapeNodePointer(shape_no)->onFlag(0x200);
|
|
}
|
|
}
|
|
return mpModelData;
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm J3DModelData* J3DModelLoader::load(void const* param_0, u32 param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/load__14J3DModelLoaderFPCvUl.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 80334ABC-80334C20 32F3FC 0164+00 3/0 0/0 0/0 .text loadMaterialTable__14J3DModelLoaderFPCv */
|
|
#ifdef NONMATCHING
|
|
// weak fn ordering
|
|
J3DMaterialTable* J3DModelLoader::loadMaterialTable(void const* i_data) {
|
|
mpMaterialTable = new J3DMaterialTable();
|
|
mpMaterialTable->clear();
|
|
J3DModelFileData const* data = (J3DModelFileData*)i_data;
|
|
J3DModelBlock const* block = data->mBlocks;
|
|
for (u32 block_no = 0; block_no < data->mBlockNum; block_no++) {
|
|
switch (block->mBlockType) {
|
|
case 'MAT3':
|
|
readMaterialTable((J3DMaterialBlock*)block, 0x51100000);
|
|
break;
|
|
case 'MAT2':
|
|
readMaterialTable_v21((J3DMaterialBlock_v21*)block, 0x51100000);
|
|
break;
|
|
case 'TEX1':
|
|
readTextureTable((J3DTextureBlock*)block);
|
|
break;
|
|
default:
|
|
OSReport("Unknown data block\n");
|
|
break;
|
|
}
|
|
block = (J3DModelBlock*)((u32)block + block->mBlockSize);
|
|
}
|
|
if (mpMaterialTable->mTexture == NULL) {
|
|
mpMaterialTable->mTexture = new J3DTexture(0, NULL);
|
|
}
|
|
return mpMaterialTable;
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm J3DMaterialTable* J3DModelLoader::loadMaterialTable(void const* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/loadMaterialTable__14J3DModelLoaderFPCv.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 80334C20-80334EE0 32F560 02C0+00 3/0 0/0 0/0 .text
|
|
* loadBinaryDisplayList__14J3DModelLoaderFPCvUl */
|
|
// Matches with virtual functions
|
|
#ifdef NONMATCHING
|
|
J3DModelData* J3DModelLoader::loadBinaryDisplayList(void const* i_data, u32 i_flags) {
|
|
mpModelData = new J3DModelData();
|
|
mpModelData->clear();
|
|
mpModelData->mpRawData = i_data;
|
|
mpModelData->setModelDataType(1);
|
|
mpMaterialTable = &mpModelData->mMaterialTable;
|
|
J3DModelFileData const* data = (J3DModelFileData*)i_data;
|
|
J3DModelBlock const* block = data->mBlocks;
|
|
for (u32 block_no = 0; block_no < data->mBlockNum; block_no++) {
|
|
switch (block->mBlockType) {
|
|
case 'INF1':
|
|
s32 flags2 = i_flags;
|
|
readInformation((J3DModelInfoBlock*)block, flags2);
|
|
break;
|
|
case 'VTX1':
|
|
readVertex((J3DVertexBlock*)block);
|
|
break;
|
|
case 'EVP1':
|
|
readEnvelop((J3DEnvelopeBlock*)block);
|
|
break;
|
|
case 'DRW1':
|
|
readDraw((J3DDrawBlock*)block);
|
|
break;
|
|
case 'JNT1':
|
|
readJoint((J3DJointBlock*)block);
|
|
break;
|
|
case 'SHP1':
|
|
readShape((J3DShapeBlock*)block, i_flags);
|
|
break;
|
|
case 'TEX1':
|
|
readTexture((J3DTextureBlock*)block);
|
|
break;
|
|
case 'MDL3':
|
|
readMaterialDL((J3DMaterialDLBlock*)block, i_flags);
|
|
modifyMaterial(i_flags);
|
|
break;
|
|
case 'MAT3':
|
|
s32 flags = 0x50100000;
|
|
flags |= (i_flags & 0x3000000);
|
|
mpMaterialBlock = (J3DMaterialBlock*)block;
|
|
if (((u32)i_flags & 0x3000) == 0) {
|
|
readMaterial((J3DMaterialBlock*)block, flags);
|
|
} else if (((u32)i_flags & 0x3000) == 0x2000) {
|
|
readPatchedMaterial((J3DMaterialBlock*)block, flags);
|
|
}
|
|
break;
|
|
default:
|
|
OSReport("Unknown data block\n");
|
|
break;
|
|
}
|
|
block = (J3DModelBlock*)((u32)block + block->mBlockSize);
|
|
}
|
|
J3DModelHierarchy const* hierarchy = mpModelData->getHierarchy();
|
|
mpModelData->makeHierarchy(NULL, &hierarchy);
|
|
mpModelData->getShapeTable()->sortVcdVatCmd();
|
|
mpModelData->getJointTree().findImportantMtxIndex();
|
|
setupBBoardInfo();
|
|
mpModelData->indexToPtr();
|
|
return mpModelData;
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm J3DModelData* J3DModelLoader::loadBinaryDisplayList(void const* param_0, u32 param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/loadBinaryDisplayList__14J3DModelLoaderFPCvUl.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* ############################################################################################## */
|
|
/* 803A20B0-803A20B0 02E710 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DEAD static char const* const stringBase_803A20C4 = "WRONG SHAPE MATRIX TYPE (__FILE__)\n";
|
|
#pragma pop
|
|
|
|
/* 80334EE0-80335048 32F820 0168+00 3/0 0/0 0/0 .text setupBBoardInfo__14J3DModelLoaderFv
|
|
*/
|
|
void J3DModelLoader::setupBBoardInfo() {
|
|
for (u16 i = 0; i < mpModelData->getJointNum(); i++) {
|
|
J3DMaterial* mesh = mpModelData->getJointNodePointer(i)->getMesh();
|
|
if (mesh != NULL) {
|
|
u16 shape_index = mesh->getShape()->getIndex();
|
|
// u16* index_table = JSUConvertOffsetToPtr<u16>(mpShapeBlock, mpShapeBlock->mpIndexTable);
|
|
u16* index_table = func_8033677C(mpShapeBlock, mpShapeBlock->mpIndexTable);
|
|
J3DShapeInitData* shape_init_data =
|
|
// JSUConvertOffsetToPtr<J3DShapeInitData>(mpShapeBlock,
|
|
// mpShapeBlock->mpShapeInitData);
|
|
func_80336764(mpShapeBlock, mpShapeBlock->mpShapeInitData);
|
|
J3DJoint* joint;
|
|
switch (shape_init_data[index_table[shape_index]].mShapeMtxType) {
|
|
case 0:
|
|
joint = mpModelData->getJointNodePointer(i);
|
|
joint->setMtxType(0);
|
|
break;
|
|
case 1:
|
|
joint = mpModelData->getJointNodePointer(i);
|
|
joint->setMtxType(1);
|
|
mpModelData->mbHasBillboard = true;
|
|
break;
|
|
case 2:
|
|
joint = mpModelData->getJointNodePointer(i);
|
|
joint->setMtxType(2);
|
|
mpModelData->mbHasBillboard = true;
|
|
break;
|
|
case 3:
|
|
joint = mpModelData->getJointNodePointer(i);
|
|
joint->setMtxType(0);
|
|
break;
|
|
default:
|
|
OSReport("WRONG SHAPE MATRIX TYPE (__FILE__)\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80335048-803351A4 32F988 015C+00 2/2 0/0 0/0 .text
|
|
* readInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl */
|
|
#ifdef NONMATCHING
|
|
// will match once generics located correctly
|
|
void J3DModelLoader::readInformation(J3DModelInfoBlock const* i_block, u32 i_flags) {
|
|
mpModelData->mFlags = i_flags | i_block->mFlags;
|
|
mpModelData->getJointTree().setFlag(mpModelData->mFlags);
|
|
J3DMtxCalc* mtx_calc = NULL;
|
|
switch (mpModelData->mFlags & 0xf) {
|
|
case 0:
|
|
mtx_calc = new J3DMtxCalcNoAnm<J3DMtxCalcCalcTransformBasic,J3DMtxCalcJ3DSysInitBasic>();
|
|
break;
|
|
case 1:
|
|
mtx_calc = new J3DMtxCalcNoAnm<J3DMtxCalcCalcTransformSoftimage,J3DMtxCalcJ3DSysInitSoftimage>();
|
|
break;
|
|
case 2:
|
|
mtx_calc = new J3DMtxCalcNoAnm<J3DMtxCalcCalcTransformMaya,J3DMtxCalcJ3DSysInitMaya>();
|
|
break;
|
|
}
|
|
mpModelData->setBasicMtxCalc(mtx_calc);
|
|
mpModelData->getVertexData().mPacketNum = i_block->mPacketNum;
|
|
mpModelData->getVertexData().mVtxNum = i_block->mVtxNum;
|
|
mpModelData->setHierarchy(JSUConvertOffsetToPtr<J3DModelHierarchy>(i_block, i_block->mpHierarchy));
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DModelLoader::readInformation(J3DModelInfoBlock const* i_block, u32 i_flags) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/readInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 803351A4-803351D0 32FAE4 002C+00 1/1 0/0 0/0 .text getFmtType__FP17_GXVtxAttrFmtList7_GXAttr */
|
|
static _GXCompType getFmtType(_GXVtxAttrFmtList* i_fmtList, _GXAttr i_attr) {
|
|
for (; i_fmtList->mAttrib != GX_VA_NULL; i_fmtList++) {
|
|
if (i_fmtList->mAttrib == i_attr) {
|
|
return i_fmtList->mCompType;
|
|
}
|
|
}
|
|
return GX_F32;
|
|
}
|
|
|
|
/* 803351D0-803353F0 32FB10 0220+00 2/2 0/0 0/0 .text
|
|
* readVertex__14J3DModelLoaderFPC14J3DVertexBlock */
|
|
void J3DModelLoader::readVertex(J3DVertexBlock const* i_block) {
|
|
J3DVertexData& vertex_data = mpModelData->getVertexData();
|
|
vertex_data.mVtxAttrFmtList =
|
|
// JSUConvertOffsetToPtr<GXVtxAttrFmtList>(i_block, i_block->mpVtxAttrFmtList);
|
|
func_80336734(i_block, i_block->mpVtxAttrFmtList);
|
|
// vertex_data.mVtxPosArray = JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxPosArray);
|
|
vertex_data.mVtxPosArray = func_8033671C(i_block, i_block->mpVtxPosArray);
|
|
// vertex_data.mVtxNrmArray = JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxNrmArray);
|
|
vertex_data.mVtxNrmArray = func_8033671C(i_block, i_block->mpVtxNrmArray);
|
|
// vertex_data.mVtxNBTArray = JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxNBTArray);
|
|
vertex_data.mVtxNBTArray = func_8033671C(i_block, i_block->mpVtxNBTArray);
|
|
for (int i = 0; i < 2; i++) {
|
|
vertex_data.mVtxColorArray[i] =
|
|
// (GXColor*)JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxColorArray[i]);
|
|
(GXColor*)func_8033671C(i_block, i_block->mpVtxColorArray[i]);
|
|
}
|
|
for (int i = 0; i < 8; i++) {
|
|
vertex_data.mVtxTexCoordArray[i] =
|
|
// JSUConvertOffsetToPtr<void>(i_block, i_block->mpVtxTexCoordArray[i]);
|
|
func_8033671C(i_block, i_block->mpVtxTexCoordArray[i]);
|
|
}
|
|
|
|
_GXCompType nrm_type = getFmtType(vertex_data.mVtxAttrFmtList, GX_VA_NRM);
|
|
u32 nrm_size = nrm_type == GX_F32 ? 12 : 6;
|
|
|
|
void* nrm_end = NULL;
|
|
if (vertex_data.mVtxNBTArray != NULL) {
|
|
nrm_end = vertex_data.mVtxNBTArray;
|
|
} else if (vertex_data.mVtxColorArray[0] != NULL) {
|
|
nrm_end = vertex_data.mVtxColorArray[0];
|
|
} else if (vertex_data.mVtxTexCoordArray[0] != NULL) {
|
|
nrm_end = vertex_data.mVtxTexCoordArray[0];
|
|
}
|
|
|
|
if (vertex_data.mVtxNrmArray == NULL) {
|
|
vertex_data.mNrmNum = 0;
|
|
} else if (nrm_end != NULL) {
|
|
vertex_data.mNrmNum = ((u32)nrm_end - (u32)vertex_data.mVtxNrmArray) / nrm_size + 1;
|
|
} else {
|
|
vertex_data.mNrmNum = (i_block->mBlockSize - (u32)i_block->mpVtxNrmArray) / nrm_size + 1;
|
|
}
|
|
|
|
void* color0_end = NULL;
|
|
if (vertex_data.mVtxColorArray[1] != NULL) {
|
|
color0_end = vertex_data.mVtxColorArray[1];
|
|
} else if (vertex_data.mVtxTexCoordArray[0] != NULL) {
|
|
color0_end = vertex_data.mVtxTexCoordArray[0];
|
|
}
|
|
|
|
if (vertex_data.mVtxColorArray[0] == NULL) {
|
|
vertex_data.mColNum = 0;
|
|
} else if (color0_end != NULL) {
|
|
vertex_data.mColNum = ((u32)color0_end - (u32)vertex_data.mVtxColorArray[0]) / 4 + 1;
|
|
} else {
|
|
vertex_data.mColNum = (i_block->mBlockSize - (u32)i_block->mpVtxColorArray[0]) / 4 + 1;
|
|
}
|
|
|
|
if (vertex_data.mVtxTexCoordArray[0] == NULL) {
|
|
vertex_data.mTexCoordNum = 0;
|
|
} else {
|
|
vertex_data.mTexCoordNum = (i_block->mBlockSize - (u32)i_block->mpVtxTexCoordArray[0]) / 8 + 1;
|
|
}
|
|
}
|
|
|
|
/* 803353F0-80335480 32FD30 0090+00 2/2 0/0 0/0 .text
|
|
* readEnvelop__14J3DModelLoaderFPC16J3DEnvelopeBlock */
|
|
void J3DModelLoader::readEnvelop(J3DEnvelopeBlock const* i_block) {
|
|
mpModelData->getJointTree().mWEvlpMtxNum = i_block->mWEvlpMtxNum;
|
|
mpModelData->getJointTree().mWEvlpMixMtxNum =
|
|
JSUConvertOffsetToPtr<u8>(i_block, i_block->mpWEvlpMixMtxNum);
|
|
mpModelData->getJointTree().mWEvlpMixIndex =
|
|
JSUConvertOffsetToPtr<u16>(i_block, i_block->mpWEvlpMixIndex);
|
|
mpModelData->getJointTree().mWEvlpMixWeight =
|
|
// JSUConvertOffsetToPtr<f32>(i_block, i_block->mpWEvlpMixWeight);
|
|
func_8030A560(i_block, i_block->mpWEvlpMixWeight);
|
|
mpModelData->getJointTree().mInvJointMtx =
|
|
// JSUConvertOffsetToPtr<Mtx>(i_block, i_block->mpInvJointMtx);
|
|
func_80336704(i_block, i_block->mpInvJointMtx);
|
|
}
|
|
|
|
/* 80335480-80335530 32FDC0 00B0+00 2/2 0/0 0/0 .text readDraw__14J3DModelLoaderFPC12J3DDrawBlock
|
|
*/
|
|
void J3DModelLoader::readDraw(J3DDrawBlock const* i_block) {
|
|
J3DJointTree& joint_tree = mpModelData->getJointTree();
|
|
joint_tree.mDrawMtxData.mEntryNum = i_block->mMtxNum - mpModelData->getJointTree().mWEvlpMtxNum;
|
|
joint_tree.mDrawMtxData.mDrawMtxFlag = JSUConvertOffsetToPtr<u8>(i_block, i_block->mpDrawMtxFlag);
|
|
joint_tree.mDrawMtxData.mDrawMtxIndex = JSUConvertOffsetToPtr<u16>(i_block, i_block->mpDrawMtxIndex);
|
|
u16 i;
|
|
for (i = 0; i < joint_tree.mDrawMtxData.mEntryNum; i++) {
|
|
if (joint_tree.mDrawMtxData.mDrawMtxFlag[i] == 1) {
|
|
break;
|
|
}
|
|
}
|
|
joint_tree.mDrawMtxData.mDrawFullWgtMtxNum = i;
|
|
mpModelData->getJointTree().mWEvlpImportantMtxIdx = new u16[joint_tree.mDrawMtxData.mEntryNum];
|
|
|
|
}
|
|
|
|
/* 80335530-80335614 32FE70 00E4+00 2/2 0/0 0/0 .text
|
|
* readJoint__14J3DModelLoaderFPC13J3DJointBlock */
|
|
void J3DModelLoader::readJoint(J3DJointBlock const* i_block) {
|
|
J3DJointFactory factory(*i_block);
|
|
mpModelData->getJointTree().mJointNum = i_block->mJointNum;
|
|
if (i_block->mpNameTable != NULL) {
|
|
mpModelData->getJointTree().mJointName =
|
|
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
|
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
|
} else {
|
|
mpModelData->getJointTree().mJointName = NULL;
|
|
}
|
|
mpModelData->getJointTree().mJointNodePointer =
|
|
new J3DJoint*[mpModelData->getJointTree().mJointNum];
|
|
for (u16 i = 0; i < mpModelData->getJointTree().getJointNum(); i++) {
|
|
mpModelData->getJointTree().mJointNodePointer[i] = factory.create(i);
|
|
}
|
|
}
|
|
|
|
/* 80335614-80335890 32FF54 027C+00 1/0 0/0 0/0 .text
|
|
* readMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl */
|
|
void J3DModelLoader_v26::readMaterial(J3DMaterialBlock const* i_block, u32 i_flags) {
|
|
J3DMaterialFactory factory(*i_block);
|
|
mpMaterialTable->mMaterialNum = i_block->mMaterialNum;
|
|
mpMaterialTable->mUniqueMatNum = factory.countUniqueMaterials();
|
|
if (i_block->mpNameTable != NULL) {
|
|
mpMaterialTable->mMaterialName =
|
|
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
|
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
|
} else {
|
|
mpMaterialTable->mMaterialName = NULL;
|
|
}
|
|
mpMaterialTable->mMaterialNodePointer = new J3DMaterial*[mpMaterialTable->mMaterialNum];
|
|
if (i_flags & 0x200000) {
|
|
mpMaterialTable->field_0x10 = new (0x20) J3DMaterial[mpMaterialTable->mUniqueMatNum];
|
|
} else {
|
|
mpMaterialTable->field_0x10 = NULL;
|
|
}
|
|
if (i_flags & 0x200000) {
|
|
for (u16 i = 0; i < mpMaterialTable->mUniqueMatNum; i++) {
|
|
factory.create(&mpMaterialTable->field_0x10[i],
|
|
J3DMaterialFactory::MATERIAL_TYPE_NORMAL, i, i_flags);
|
|
mpMaterialTable->field_0x10[i].mDiffFlag = (u32)&mpMaterialTable->field_0x10[i] >> 4;
|
|
}
|
|
}
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i] =
|
|
factory.create(NULL, J3DMaterialFactory::MATERIAL_TYPE_NORMAL, i, i_flags);
|
|
}
|
|
if (i_flags & 0x200000) {
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i]->mDiffFlag =
|
|
(u32)&mpMaterialTable->field_0x10[factory.getMaterialID(i)] >> 4;
|
|
mpMaterialTable->mMaterialNodePointer[i]->mpOrigMaterial =
|
|
&mpMaterialTable->field_0x10[factory.getMaterialID(i)];
|
|
}
|
|
} else {
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i]->mDiffFlag =
|
|
((u32)mpMaterialTable->mMaterialNodePointer >> 4) + factory.getMaterialID(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80335890-80335AF4 3301D0 0264+00 1/0 0/0 0/0 .text
|
|
* readMaterial_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul */
|
|
void J3DModelLoader_v21::readMaterial_v21(J3DMaterialBlock_v21 const* i_block, u32 i_flags) {
|
|
J3DMaterialFactory_v21 factory(*i_block);
|
|
mpMaterialTable->mMaterialNum = i_block->mMaterialNum;
|
|
mpMaterialTable->mUniqueMatNum = factory.countUniqueMaterials();
|
|
if (i_block->mpNameTable != NULL) {
|
|
mpMaterialTable->mMaterialName =
|
|
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
|
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
|
} else {
|
|
mpMaterialTable->mMaterialName = NULL;
|
|
}
|
|
mpMaterialTable->mMaterialNodePointer = new J3DMaterial*[mpMaterialTable->mMaterialNum];
|
|
if (i_flags & 0x200000) {
|
|
mpMaterialTable->field_0x10 = new (0x20) J3DMaterial[mpMaterialTable->mUniqueMatNum];
|
|
} else {
|
|
mpMaterialTable->field_0x10 = NULL;
|
|
}
|
|
if (i_flags & 0x200000) {
|
|
for (u16 i = 0; i < mpMaterialTable->mUniqueMatNum; i++) {
|
|
factory.create(&mpMaterialTable->field_0x10[i], i, i_flags);
|
|
mpMaterialTable->field_0x10[i].mDiffFlag = (u32)&mpMaterialTable->field_0x10[i] >> 4;
|
|
}
|
|
}
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i] = factory.create(NULL, i, i_flags);
|
|
}
|
|
if (i_flags & 0x200000) {
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i]->mDiffFlag =
|
|
(u32)&mpMaterialTable->field_0x10[factory.getMaterialID(i)] >> 4;
|
|
mpMaterialTable->mMaterialNodePointer[i]->mpOrigMaterial =
|
|
&mpMaterialTable->field_0x10[factory.getMaterialID(i)];
|
|
}
|
|
} else {
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i]->mDiffFlag = 0xc0000000;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80335AF4-80335C18 330434 0124+00 2/2 0/0 0/0 .text
|
|
* readShape__14J3DModelLoaderFPC13J3DShapeBlockUl */
|
|
void J3DModelLoader::readShape(J3DShapeBlock const* i_block, u32 i_flags) {
|
|
mpShapeBlock = i_block;
|
|
J3DShapeTable* shape_table = mpModelData->getShapeTable();
|
|
J3DShapeFactory factory(*i_block);
|
|
shape_table->mShapeNum = i_block->mShapeNum;
|
|
if (i_block->mpNameTable != NULL) {
|
|
shape_table->mShapeName =
|
|
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
|
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
|
} else {
|
|
shape_table->mShapeName = NULL;
|
|
}
|
|
shape_table->mShapeNodePointer = new J3DShape*[shape_table->mShapeNum];
|
|
factory.allocVcdVatCmdBuffer(shape_table->mShapeNum);
|
|
J3DModelHierarchy const* hierarchy_entry = mpModelData->getHierarchy();
|
|
GXVtxDescList* vtx_desc_list = NULL;
|
|
for (; hierarchy_entry->mType != 0; hierarchy_entry++) {
|
|
if (hierarchy_entry->mType == 0x12) {
|
|
shape_table->mShapeNodePointer[hierarchy_entry->mValue] =
|
|
factory.create(hierarchy_entry->mValue, i_flags, vtx_desc_list);
|
|
vtx_desc_list = factory.getVtxDescList(hierarchy_entry->mValue);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80335C18-80335CE4 330558 00CC+00 2/2 0/0 0/0 .text
|
|
* readTexture__14J3DModelLoaderFPC15J3DTextureBlock */
|
|
#ifdef NONMATCHING
|
|
// weak fn ordering
|
|
void J3DModelLoader::readTexture(J3DTextureBlock const* i_block) {
|
|
u16 texture_num = i_block->mTextureNum;
|
|
// ResTIMG* texture_res = JSUConvertOffsetToPtr<ResTIMG>(i_block, i_block->mpTextureRes);
|
|
ResTIMG* texture_res = func_803366EC(i_block, i_block->mpTextureRes);
|
|
if (i_block->mpNameTable != NULL) {
|
|
mpMaterialTable->mTextureName =
|
|
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
|
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
|
} else {
|
|
mpMaterialTable->mTextureName = NULL;
|
|
}
|
|
mpMaterialTable->mTexture = new J3DTexture(texture_num, texture_res);
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DModelLoader::readTexture(J3DTextureBlock const* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/readTexture__14J3DModelLoaderFPC15J3DTextureBlock.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 80335CE4-80335E20 330624 013C+00 1/0 0/0 0/0 .text
|
|
* readMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl */
|
|
void J3DModelLoader_v26::readMaterialTable(J3DMaterialBlock const* i_block, u32 i_flags) {
|
|
J3DMaterialFactory factory(*i_block);
|
|
mpMaterialTable->mMaterialNum = i_block->mMaterialNum;
|
|
if (i_block->mpNameTable != NULL) {
|
|
mpMaterialTable->mMaterialName =
|
|
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
|
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
|
} else {
|
|
mpMaterialTable->mMaterialName = NULL;
|
|
}
|
|
mpMaterialTable->mMaterialNodePointer = new J3DMaterial*[mpMaterialTable->mMaterialNum];
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i] =
|
|
factory.create(NULL, J3DMaterialFactory::MATERIAL_TYPE_NORMAL, i, i_flags);
|
|
}
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i]->mDiffFlag =
|
|
(u32)mpMaterialTable->mMaterialNodePointer + factory.getMaterialID(i);
|
|
}
|
|
}
|
|
|
|
/* 80335E20-80335F5C 330760 013C+00 1/0 0/0 0/0 .text
|
|
* readMaterialTable_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul */
|
|
void J3DModelLoader_v21::readMaterialTable_v21(J3DMaterialBlock_v21 const* i_block, u32 i_flags) {
|
|
J3DMaterialFactory_v21 factory(*i_block);
|
|
mpMaterialTable->mMaterialNum = i_block->mMaterialNum;
|
|
if (i_block->mpNameTable != NULL) {
|
|
mpMaterialTable->mMaterialName =
|
|
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
|
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
|
} else {
|
|
mpMaterialTable->mMaterialName = NULL;
|
|
}
|
|
mpMaterialTable->mMaterialNodePointer = new J3DMaterial*[mpMaterialTable->mMaterialNum];
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i] =
|
|
factory.create(NULL, i, i_flags);
|
|
}
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i]->mDiffFlag =
|
|
((u32)mpMaterialTable->mMaterialNodePointer >> 4) + factory.getMaterialID(i);
|
|
}
|
|
}
|
|
|
|
/* 80335F5C-80336028 33089C 00CC+00 1/1 0/0 0/0 .text
|
|
* readTextureTable__14J3DModelLoaderFPC15J3DTextureBlock */
|
|
#ifdef NONMATCHING
|
|
// weak fn ordering
|
|
void J3DModelLoader::readTextureTable(J3DTextureBlock const* i_block) {
|
|
u16 texture_num = i_block->mTextureNum;
|
|
// ResTIMG* texture_res = JSUConvertOffsetToPtr<ResTIMG>(i_block, i_block->mpTextureRes);
|
|
ResTIMG* texture_res = func_803366EC(i_block, i_block->mpTextureRes);
|
|
if (i_block->mpNameTable != NULL) {
|
|
mpMaterialTable->mTextureName =
|
|
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
|
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
|
} else {
|
|
mpMaterialTable->mTextureName = NULL;
|
|
}
|
|
mpMaterialTable->mTexture = new J3DTexture(texture_num, texture_res);
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J3DModelLoader::readTextureTable(J3DTextureBlock const* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/readTextureTable__14J3DModelLoaderFPC15J3DTextureBlock.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 80336028-80336168 330968 0140+00 1/1 0/0 0/0 .text
|
|
* readPatchedMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl */
|
|
void J3DModelLoader::readPatchedMaterial(J3DMaterialBlock const* i_block, u32 i_flags) {
|
|
J3DMaterialFactory factory(*i_block);
|
|
mpMaterialTable->mMaterialNum = i_block->mMaterialNum;
|
|
mpMaterialTable->mUniqueMatNum = factory.countUniqueMaterials();
|
|
if (i_block->mpNameTable != NULL) {
|
|
mpMaterialTable->mMaterialName =
|
|
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
|
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
|
} else {
|
|
mpMaterialTable->mMaterialName = NULL;
|
|
}
|
|
mpMaterialTable->mMaterialNodePointer = new J3DMaterial*[mpMaterialTable->mMaterialNum];
|
|
mpMaterialTable->field_0x10 = NULL;
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i] =
|
|
factory.create(NULL, J3DMaterialFactory::MATERIAL_TYPE_PATCHED, i, i_flags);
|
|
mpMaterialTable->mMaterialNodePointer[i]->mDiffFlag =
|
|
((u32)mpMaterialTable->mMaterialNodePointer >> 4) + factory.getMaterialID(i);
|
|
}
|
|
}
|
|
|
|
/* 80336168-8033631C 330AA8 01B4+00 1/1 0/0 0/0 .text
|
|
* readMaterialDL__14J3DModelLoaderFPC18J3DMaterialDLBlockUl */
|
|
void J3DModelLoader::readMaterialDL(J3DMaterialDLBlock const* i_block, u32 i_flags) {
|
|
J3DMaterialFactory factory(*i_block);
|
|
s32 flags;
|
|
if (mpMaterialTable->mMaterialNum == 0) {
|
|
mpMaterialTable->field_0x1c = 1;
|
|
mpMaterialTable->mMaterialNum = i_block->mMaterialNum;
|
|
mpMaterialTable->mUniqueMatNum = i_block->mMaterialNum;
|
|
if (i_block->mpNameTable != NULL) {
|
|
mpMaterialTable->mMaterialName =
|
|
// new JUTNameTab(JSUConvertOffsetToPtr<ResNTAB>(i_block, i_block->mpNameTable));
|
|
new JUTNameTab(func_8030A530(i_block, i_block->mpNameTable));
|
|
} else {
|
|
mpMaterialTable->mMaterialName = NULL;
|
|
}
|
|
mpMaterialTable->mMaterialNodePointer = new J3DMaterial*[mpMaterialTable->mMaterialNum];
|
|
mpMaterialTable->field_0x10 = NULL;
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
flags = i_flags;
|
|
mpMaterialTable->mMaterialNodePointer[i] =
|
|
factory.create(NULL, J3DMaterialFactory::MATERIAL_TYPE_LOCKED, i, flags);
|
|
}
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
mpMaterialTable->mMaterialNodePointer[i]->mDiffFlag = 0xc0000000;
|
|
}
|
|
} else {
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
flags = i_flags;
|
|
mpMaterialTable->mMaterialNodePointer[i] =
|
|
factory.create(mpMaterialTable->mMaterialNodePointer[i],
|
|
J3DMaterialFactory::MATERIAL_TYPE_LOCKED, i, flags);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8033631C-80336398 330C5C 007C+00 1/1 0/0 0/0 .text modifyMaterial__14J3DModelLoaderFUl
|
|
*/
|
|
void J3DModelLoader::modifyMaterial(u32 i_flags) {
|
|
if (i_flags & 0x2000) {
|
|
J3DMaterialFactory factory(*mpMaterialBlock);
|
|
for (u16 i = 0; i < mpMaterialTable->mMaterialNum; i++) {
|
|
factory.modifyPatchedCurrentMtx(mpMaterialTable->mMaterialNodePointer[i], i);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80336398-803363F4 330CD8 005C+00 1/0 0/0 0/0 .text __dt__18J3DModelLoader_v26Fv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
// asm J3DModelLoader_v26::~J3DModelLoader_v26() {
|
|
extern "C" asm void __dt__18J3DModelLoader_v26Fv() {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/__dt__18J3DModelLoader_v26Fv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 803363F4-80336450 330D34 005C+00 1/0 0/0 0/0 .text __dt__18J3DModelLoader_v21Fv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
// asm J3DModelLoader_v21::~J3DModelLoader_v21() {
|
|
extern "C" asm void __dt__18J3DModelLoader_v21Fv() {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/__dt__18J3DModelLoader_v21Fv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80336450-80336498 330D90 0048+00 1/0 0/0 0/0 .text __dt__14J3DModelLoaderFv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm J3DModelLoader::~J3DModelLoader() {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/__dt__14J3DModelLoaderFv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80336498-8033649C 330DD8 0004+00 2/0 0/0 0/0 .text
|
|
* readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul */
|
|
void J3DModelLoader::readMaterial_v21(J3DMaterialBlock_v21 const* param_0, u32 param_1) {
|
|
/* empty function */
|
|
}
|
|
|
|
/* 8033649C-803364A0 330DDC 0004+00 2/0 0/0 0/0 .text
|
|
* readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl */
|
|
void J3DModelLoader::readMaterial(J3DMaterialBlock const* param_0, u32 param_1) {
|
|
/* empty function */
|
|
}
|
|
|
|
/* 803364A0-803364A4 330DE0 0004+00 2/0 0/0 0/0 .text
|
|
* readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul */
|
|
void J3DModelLoader::readMaterialTable_v21(J3DMaterialBlock_v21 const* param_0, u32 param_1) {
|
|
/* empty function */
|
|
}
|
|
|
|
/* 803364A4-803364A8 330DE4 0004+00 2/0 0/0 0/0 .text
|
|
* readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl */
|
|
void J3DModelLoader::readMaterialTable(J3DMaterialBlock const* param_0, u32 param_1) {
|
|
/* empty function */
|
|
}
|
|
|
|
/* 803364A8-803364B0 330DE8 0008+00 2/0 0/0 0/0 .text
|
|
* calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl */
|
|
u32 J3DModelLoader::calcSizeMaterial(J3DMaterialBlock const* param_0, u32 param_1) {
|
|
return false;
|
|
}
|
|
|
|
/* 803364B0-803364B8 330DF0 0008+00 2/0 0/0 0/0 .text
|
|
* calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl */
|
|
u32 J3DModelLoader::calcSizeMaterialTable(J3DMaterialBlock const* param_0, u32 param_1) {
|
|
return false;
|
|
}
|
|
|
|
/* 803364B8-80336524 330DF8 006C+00 1/0 0/0 0/0 .text
|
|
* __dt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm void func_803364B8(void* _this) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_803364B8.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80336524-8033656C 330E64 0048+00 1/0 0/0 0/0 .text
|
|
* init__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>FRC3VecRA3_A4_Cf
|
|
*/
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm void func_80336524(void* _this, Vec const& param_0, f32 const (¶m_1)[3][4]) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_80336524.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 8033656C-80336594 330EAC 0028+00 1/0 0/0 0/0 .text
|
|
* calc__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm void func_8033656C(void* _this) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_8033656C.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80336594-80336600 330ED4 006C+00 1/0 0/0 0/0 .text
|
|
* __dt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm void func_80336594(void* _this) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_80336594.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80336600-80336628 330F40 0028+00 1/0 0/0 0/0 .text
|
|
* init__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>FRC3VecRA3_A4_Cf
|
|
*/
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm void func_80336600(void* _this, Vec const& param_0, f32 const (¶m_1)[3][4]) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_80336600.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80336628-80336650 330F68 0028+00 1/0 0/0 0/0 .text
|
|
* calc__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm void func_80336628(void* _this) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_80336628.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80336650-803366A4 330F90 0054+00 2/2 0/0 0/0 .text __ct__11J3DMaterialFv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
// asm J3DMaterial::J3DMaterial() {
|
|
extern "C" asm void __ct__11J3DMaterialFv() {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/__ct__11J3DMaterialFv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 803366A4-803366EC 330FE4 0048+00 1/0 0/0 0/0 .text __dt__10J3DTextureFv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
// asm J3DTexture::~J3DTexture() {
|
|
extern "C" asm void __dt__10J3DTextureFv() {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/__dt__10J3DTextureFv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 803366EC-80336704 33102C 0018+00 2/2 0/0 0/0 .text JSUConvertOffsetToPtr<7ResTIMG>__FPCvPCv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm ResTIMG* func_803366EC(void const* param_0, void const* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_803366EC.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80336704-8033671C 331044 0018+00 1/1 0/0 0/0 .text JSUConvertOffsetToPtr<A3_A4_f>__FPCvPCv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm Mtx* func_80336704(void const* param_0, void const* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_80336704.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 8033671C-80336734 33105C 0018+00 1/1 0/0 0/0 .text JSUConvertOffsetToPtr<v>__FPCvPCv
|
|
*/
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm void* func_8033671C(void const* param_0, void const* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_8033671C.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80336734-8033674C 331074 0018+00 1/1 0/0 0/0 .text
|
|
* JSUConvertOffsetToPtr<17_GXVtxAttrFmtList>__FPCvPCv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm _GXVtxAttrFmtList* func_80336734(void const* param_0, void const* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_80336734.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 8033674C-80336764 33108C 0018+00 1/1 1/1 0/0 .text
|
|
* JSUConvertOffsetToPtr<17J3DModelHierarchy>__FPCvPCv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm J3DModelHierarchy* func_8033674C(void const* param_0, void const* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_8033674C.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 80336764-8033677C 3310A4 0018+00 1/1 1/1 0/0 .text
|
|
* JSUConvertOffsetToPtr<16J3DShapeInitData>__FPCvUl */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm J3DShapeInitData* func_80336764(void const* param_0, void const* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_80336764.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 8033677C-80336794 3310BC 0018+00 1/1 2/2 0/0 .text JSUConvertOffsetToPtr<Us>__FPCvUl
|
|
*/
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm u16* func_8033677C(void const* param_0, void const* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J3DGraphLoader/J3DModelLoader/func_8033677C.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 803A20B0-803A20B0 02E710 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|