// // Generated By: dol2asm // Translation Unit: J3DJointTree // #include "JSystem/J3DGraphAnimator/J3DJointTree.h" #include "dol2asm.h" #include "dolphin/types.h" // // Forward References: // extern "C" void __ct__12J3DJointTreeFv(); extern "C" void makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable(); extern "C" void findImportantMtxIndex__12J3DJointTreeFv(); extern "C" void calc__12J3DJointTreeFP12J3DMtxBufferRC3VecRA3_A4_Cf(); extern "C" void setMtxBuffer__10J3DMtxCalcFP12J3DMtxBuffer(); extern "C" void __dt__12J3DJointTreeFv(); // // External References: // extern "C" void __dl__FPv(); extern "C" void __ct__14J3DDrawMtxDataFv(); extern "C" void __dt__14J3DDrawMtxDataFv(); extern "C" void appendChild__8J3DJointFP8J3DJoint(); extern "C" void recursiveCalc__8J3DJointFv(); extern "C" void _savegpr_23(); extern "C" void _restgpr_23(); extern "C" u8 mMtxBuffer__10J3DMtxCalc[4]; extern "C" u8 mCurrentMtxCalc__8J3DJoint[4 + 4 /* padding */]; // // Declarations: // /* ############################################################################################## */ /* 803CECA8-803CECF4 -00001 004C+00 1/1 0/0 0/0 .data @871 */ SECTION_DATA static void* lit_871[19] = { (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0x90), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0x60), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0x84), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xE4), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0x94), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xB0), (void*)(((char*) makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable) + 0xCC), }; /* 80325A18-80325A9C 320358 0084+00 0/0 1/1 0/0 .text __ct__12J3DJointTreeFv */ J3DJointTree::J3DJointTree() : mHierarchy(NULL), mFlags(0), mModelDataType(0), mRootNode(NULL), mBasicMtxCalc(NULL), mJointNodePointer(NULL), mJointNum(0), mWEvlpMtxNum(0), mWEvlpMixMtxNum(0), mWEvlpMixIndex(0), mWEvlpMixWeight(0), mInvJointMtx(NULL), mWEvlpImportantMtxIdx(0), field_0x40(0), mJointName(NULL) {} /* 80325A9C-80325C00 3203DC 0164+00 1/0 2/2 0/0 .text * makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void J3DJointTree::makeHierarchy(J3DJoint* param_0, J3DModelHierarchy const** param_1, J3DMaterialTable* param_2, J3DShapeTable* param_3) { nofralloc #include "asm/JSystem/J3DGraphAnimator/J3DJointTree/func_80325A9C.s" } #pragma pop /* ############################################################################################## */ /* 80456418-80456420 004A18 0004+04 1/1 0/0 0/0 .sdata2 @903 */ SECTION_SDATA2 static f32 lit_903[1 + 1 /* padding */] = { -1.0f / 10.0f, /* padding */ 0.0f, }; /* 80325C00-80325CAC 320540 00AC+00 0/0 2/2 0/0 .text findImportantMtxIndex__12J3DJointTreeFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void J3DJointTree::findImportantMtxIndex() { nofralloc #include "asm/JSystem/J3DGraphAnimator/J3DJointTree/findImportantMtxIndex__12J3DJointTreeFv.s" } #pragma pop /* 80325CAC-80325D1C 3205EC 0070+00 1/0 0/0 0/0 .text * calc__12J3DJointTreeFP12J3DMtxBufferRC3VecRA3_A4_Cf */ void J3DJointTree::calc(J3DMtxBuffer* pMtxBuffer, Vec const& scale, f32 const (&mtx)[3][4]) { getBasicMtxCalc()->init(scale, (Mtx*)mtx); J3DMtxCalc::setMtxBuffer(pMtxBuffer); J3DJoint* root = getRootNode(); if (root == NULL) return; root->setCurrentMtxCalc(getBasicMtxCalc()); root->recursiveCalc(); } /* 80325D1C-80325D24 32065C 0008+00 1/1 0/0 0/0 .text setMtxBuffer__10J3DMtxCalcFP12J3DMtxBuffer */ void J3DMtxCalc::setMtxBuffer(J3DMtxBuffer* mtxBuffer) { J3DMtxCalc::mMtxBuffer = mtxBuffer; } /* 80325D24-80325D88 320664 0064+00 1/0 0/0 0/0 .text __dt__12J3DJointTreeFv */ J3DJointTree::~J3DJointTree() {}