1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
//
// 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() {}
|