mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
J3D setup (#155)
* setup j3d classes * remove asm * fixes * fix newDifferedDisplayList
This commit is contained in:
@@ -7,139 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct _GXColorS10 {};
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct JUTNameTab {
|
||||
/* 802DE9A0 */ JUTNameTab();
|
||||
/* 802DEA58 */ void getIndex(char const*) const;
|
||||
/* 802DEAF8 */ void getName(u16) const;
|
||||
};
|
||||
|
||||
struct J3DTransformInfo {};
|
||||
|
||||
struct J3DTextureSRTInfo {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct J3DMaterialTable {};
|
||||
|
||||
struct J3DAnmVtxColorKey {
|
||||
/* 8032A4E0 */ J3DAnmVtxColorKey();
|
||||
/* 8032A53C */ void getColor(u8, u16, _GXColor*) const;
|
||||
/* 8032BF50 */ ~J3DAnmVtxColorKey();
|
||||
/* 8032BFBC */ s32 getKind() const;
|
||||
};
|
||||
|
||||
struct J3DAnmVtxColorFull {
|
||||
/* 8032A30C */ J3DAnmVtxColorFull();
|
||||
/* 8032A368 */ void getColor(u8, u16, _GXColor*) const;
|
||||
/* 8032BFC4 */ ~J3DAnmVtxColorFull();
|
||||
/* 8032C030 */ s32 getKind() const;
|
||||
};
|
||||
|
||||
struct J3DAnmVtxColor {
|
||||
/* 8032A29C */ J3DAnmVtxColor();
|
||||
/* 8032BC50 */ ~J3DAnmVtxColor();
|
||||
/* 8032C038 */ s32 getKind() const;
|
||||
/* 8032C040 */ void getColor(u8, u16, _GXColor*) const;
|
||||
};
|
||||
|
||||
struct J3DAnmTransformKey {
|
||||
/* 80329A34 */ void calcTransform(f32, u16, J3DTransformInfo*) const;
|
||||
};
|
||||
|
||||
struct J3DAnmTransformFullWithLerp {
|
||||
/* 803291F0 */ void getTransform(u16, J3DTransformInfo*) const;
|
||||
/* 8032C228 */ ~J3DAnmTransformFullWithLerp();
|
||||
/* 8032C2A4 */ s32 getKind() const;
|
||||
};
|
||||
|
||||
struct J3DAnmTransformFull {
|
||||
/* 80328E90 */ void getTransform(u16, J3DTransformInfo*) const;
|
||||
/* 8032C2AC */ ~J3DAnmTransformFull();
|
||||
/* 8032C318 */ s32 getKind() const;
|
||||
};
|
||||
|
||||
struct J3DAnmTransform {
|
||||
/* 80328E40 */ J3DAnmTransform(s16, f32*, s16*, f32*);
|
||||
};
|
||||
|
||||
struct J3DAnmTextureSRTKey {
|
||||
/* 80329E5C */ J3DAnmTextureSRTKey();
|
||||
/* 80329F14 */ void calcTransform(f32, u16, J3DTextureSRTInfo*) const;
|
||||
/* 8032B0C0 */ void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
/* 8032B1D4 */ void searchUpdateMaterialID(J3DModelData*);
|
||||
/* 8032C198 */ ~J3DAnmTextureSRTKey();
|
||||
/* 8032C220 */ s32 getKind() const;
|
||||
};
|
||||
|
||||
struct J3DAnmTexPattern {
|
||||
/* 8032AED8 */ J3DAnmTexPattern();
|
||||
/* 8032AF50 */ void getTexNo(u16, u16*) const;
|
||||
/* 8032B004 */ void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
/* 8032B09C */ void searchUpdateMaterialID(J3DModelData*);
|
||||
/* 8032BD20 */ ~J3DAnmTexPattern();
|
||||
/* 8032BD94 */ s32 getKind() const;
|
||||
};
|
||||
|
||||
struct J3DAnmTevRegKey {
|
||||
/* 8032AE18 */ J3DAnmTevRegKey();
|
||||
/* 8032B1F8 */ void getTevColorReg(u16, _GXColorS10*) const;
|
||||
/* 8032B4BC */ void getTevKonstReg(u16, _GXColor*) const;
|
||||
/* 8032B780 */ void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
/* 8032B87C */ void searchUpdateMaterialID(J3DModelData*);
|
||||
/* 8032BD9C */ ~J3DAnmTevRegKey();
|
||||
/* 8032BE24 */ s32 getKind() const;
|
||||
};
|
||||
|
||||
struct J3DAnmKeyTableBase {};
|
||||
|
||||
struct J3DAnmColorKey {
|
||||
/* 8032AB00 */ J3DAnmColorKey();
|
||||
/* 8032AB54 */ void getColor(u16, _GXColor*) const;
|
||||
/* 8032BE2C */ ~J3DAnmColorKey();
|
||||
/* 8032BEB0 */ s32 getKind() const;
|
||||
};
|
||||
|
||||
struct J3DAnmColorFull {
|
||||
/* 8032A93C */ J3DAnmColorFull();
|
||||
/* 8032A990 */ void getColor(u16, _GXColor*) const;
|
||||
/* 8032BEB8 */ ~J3DAnmColorFull();
|
||||
/* 8032BF3C */ s32 getKind() const;
|
||||
};
|
||||
|
||||
struct J3DAnmColor {
|
||||
/* 8032A828 */ J3DAnmColor();
|
||||
/* 8032A8A4 */ void searchUpdateMaterialID(J3DMaterialTable*);
|
||||
/* 8032BCAC */ ~J3DAnmColor();
|
||||
/* 8032BF44 */ bool getKind() const;
|
||||
/* 8032BF4C */ void getColor(u16, _GXColor*) const;
|
||||
};
|
||||
|
||||
struct J3DAnmClusterKey {
|
||||
/* 8032A218 */ void getWeight(u16) const;
|
||||
/* 8032C044 */ ~J3DAnmClusterKey();
|
||||
/* 8032C0B0 */ s32 getKind() const;
|
||||
};
|
||||
|
||||
struct J3DAnmClusterFull {
|
||||
/* 8032A184 */ void getWeight(u16) const;
|
||||
/* 8032C124 */ ~J3DAnmClusterFull();
|
||||
/* 8032C190 */ s32 getKind() const;
|
||||
};
|
||||
|
||||
struct J3DAnmCluster {
|
||||
/* 8032C0B8 */ ~J3DAnmCluster();
|
||||
/* 8032C114 */ s32 getKind() const;
|
||||
/* 8032C11C */ void getWeight(u16) const;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -783,7 +650,8 @@ extern "C" asm void func_8032BAD4(void* _this, f32 param_0, J3DAnmKeyTableBase*
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmVtxColor::~J3DAnmVtxColor() {
|
||||
extern "C" asm void __dt__14J3DAnmVtxColorFv() {
|
||||
// asm J3DAnmVtxColor::~J3DAnmVtxColor() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__14J3DAnmVtxColorFv.s"
|
||||
}
|
||||
@@ -793,7 +661,8 @@ asm J3DAnmVtxColor::~J3DAnmVtxColor() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmColor::~J3DAnmColor() {
|
||||
extern "C" asm void __dt__11J3DAnmColorFv() {
|
||||
// asm J3DAnmColor::~J3DAnmColor() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__11J3DAnmColorFv.s"
|
||||
}
|
||||
@@ -803,7 +672,8 @@ asm J3DAnmColor::~J3DAnmColor() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmTexPattern::~J3DAnmTexPattern() {
|
||||
extern "C" asm void __dt__16J3DAnmTexPatternFv() {
|
||||
// asm J3DAnmTexPattern::~J3DAnmTexPattern() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__16J3DAnmTexPatternFv.s"
|
||||
}
|
||||
@@ -818,7 +688,8 @@ s32 J3DAnmTexPattern::getKind() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmTevRegKey::~J3DAnmTevRegKey() {
|
||||
extern "C" asm void __dt__15J3DAnmTevRegKeyFv() {
|
||||
// asm J3DAnmTevRegKey::~J3DAnmTevRegKey() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__15J3DAnmTevRegKeyFv.s"
|
||||
}
|
||||
@@ -833,7 +704,8 @@ s32 J3DAnmTevRegKey::getKind() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmColorKey::~J3DAnmColorKey() {
|
||||
extern "C" asm void __dt__14J3DAnmColorKeyFv() {
|
||||
// asm J3DAnmColorKey::~J3DAnmColorKey() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__14J3DAnmColorKeyFv.s"
|
||||
}
|
||||
@@ -848,7 +720,8 @@ s32 J3DAnmColorKey::getKind() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmColorFull::~J3DAnmColorFull() {
|
||||
extern "C" asm void __dt__15J3DAnmColorFullFv() {
|
||||
// asm J3DAnmColorFull::~J3DAnmColorFull() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__15J3DAnmColorFullFv.s"
|
||||
}
|
||||
@@ -873,7 +746,8 @@ void J3DAnmColor::getColor(u16 param_0, _GXColor* param_1) const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmVtxColorKey::~J3DAnmVtxColorKey() {
|
||||
extern "C" asm void __dt__17J3DAnmVtxColorKeyFv() {
|
||||
// asm J3DAnmVtxColorKey::~J3DAnmVtxColorKey() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__17J3DAnmVtxColorKeyFv.s"
|
||||
}
|
||||
@@ -888,7 +762,8 @@ s32 J3DAnmVtxColorKey::getKind() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmVtxColorFull::~J3DAnmVtxColorFull() {
|
||||
extern "C" asm void __dt__18J3DAnmVtxColorFullFv() {
|
||||
// asm J3DAnmVtxColorFull::~J3DAnmVtxColorFull() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__18J3DAnmVtxColorFullFv.s"
|
||||
}
|
||||
@@ -914,7 +789,8 @@ void J3DAnmVtxColor::getColor(u8 param_0, u16 param_1, _GXColor* param_2) const
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmClusterKey::~J3DAnmClusterKey() {
|
||||
extern "C" asm void __dt__16J3DAnmClusterKeyFv() {
|
||||
// asm J3DAnmClusterKey::~J3DAnmClusterKey() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__16J3DAnmClusterKeyFv.s"
|
||||
}
|
||||
@@ -929,7 +805,8 @@ s32 J3DAnmClusterKey::getKind() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmCluster::~J3DAnmCluster() {
|
||||
extern "C" asm void __dt__13J3DAnmClusterFv() {
|
||||
// asm J3DAnmCluster::~J3DAnmCluster() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__13J3DAnmClusterFv.s"
|
||||
}
|
||||
@@ -954,7 +831,8 @@ asm void J3DAnmCluster::getWeight(u16 param_0) const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmClusterFull::~J3DAnmClusterFull() {
|
||||
extern "C" asm void __dt__17J3DAnmClusterFullFv() {
|
||||
// asm J3DAnmClusterFull::~J3DAnmClusterFull() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__17J3DAnmClusterFullFv.s"
|
||||
}
|
||||
@@ -969,7 +847,8 @@ s32 J3DAnmClusterFull::getKind() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmTextureSRTKey::~J3DAnmTextureSRTKey() {
|
||||
extern "C" asm void __dt__19J3DAnmTextureSRTKeyFv() {
|
||||
// asm J3DAnmTextureSRTKey::~J3DAnmTextureSRTKey() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__19J3DAnmTextureSRTKeyFv.s"
|
||||
}
|
||||
@@ -1007,7 +886,8 @@ SECTION_DATA extern void* __vt__19J3DAnmTransformFull[5 + 1 /* padding */] = {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmTransformFullWithLerp::~J3DAnmTransformFullWithLerp() {
|
||||
extern "C" asm void __dt__27J3DAnmTransformFullWithLerpFv() {
|
||||
// asm J3DAnmTransformFullWithLerp::~J3DAnmTransformFullWithLerp() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__27J3DAnmTransformFullWithLerpFv.s"
|
||||
}
|
||||
@@ -1022,7 +902,8 @@ s32 J3DAnmTransformFullWithLerp::getKind() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DAnmTransformFull::~J3DAnmTransformFull() {
|
||||
extern "C" asm void __dt__19J3DAnmTransformFullFv() {
|
||||
// asm J3DAnmTransformFull::~J3DAnmTransformFull() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DAnimation/__dt__19J3DAnmTransformFullFv.s"
|
||||
}
|
||||
|
||||
@@ -19,10 +19,6 @@ struct J3DVertexBuffer {};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
struct J3DCluster {};
|
||||
|
||||
struct J3DClusterKey {};
|
||||
|
||||
struct J3DAnmCluster {};
|
||||
|
||||
struct J3DDeformData {
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphAnimator/J3DJoint.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DMtxBuffer.h"
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
#include "JSystem/JMath/JMath.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -11,54 +14,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct J3DTransformInfo {};
|
||||
|
||||
struct J3DSys {
|
||||
static u8 mCurrentMtx[48];
|
||||
static f32 mCurrentS[3];
|
||||
static f32 mParentS[3];
|
||||
};
|
||||
|
||||
struct J3DMtxCalcJ3DSysInitMaya {
|
||||
/* 8032ECAC */ void init(Vec const&, f32 const (&)[3][4]);
|
||||
};
|
||||
|
||||
struct J3DMtxCalcJ3DSysInitBasic {
|
||||
/* 8032EC28 */ void init(Vec const&, f32 const (&)[3][4]);
|
||||
};
|
||||
|
||||
struct J3DMtxCalcCalcTransformSoftimage {
|
||||
/* 8032EE50 */ void calcTransform(J3DTransformInfo const&);
|
||||
};
|
||||
|
||||
struct J3DMtxCalcCalcTransformMaya {
|
||||
/* 8032EFBC */ void calcTransform(J3DTransformInfo const&);
|
||||
};
|
||||
|
||||
struct J3DMtxCalcCalcTransformBasic {
|
||||
/* 8032ED30 */ void calcTransform(J3DTransformInfo const&);
|
||||
};
|
||||
|
||||
struct J3DMtxCalc {
|
||||
static u8 mMtxBuffer[4];
|
||||
static u8 mJoint[4];
|
||||
};
|
||||
|
||||
struct J3DMaterial {
|
||||
/* 80316AB0 */ void setCurrentMtx();
|
||||
};
|
||||
|
||||
struct J3DJoint {
|
||||
/* 8032F13C */ void appendChild(J3DJoint*);
|
||||
/* 8032F170 */ J3DJoint();
|
||||
/* 8032F254 */ void entryIn();
|
||||
/* 8032F3F8 */ void recursiveCalc();
|
||||
|
||||
static u8 mCurrentMtxCalc[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct J3DDrawBuffer {
|
||||
static u8 entryNum[4 + 4 /* padding */];
|
||||
};
|
||||
@@ -84,16 +39,14 @@ extern "C" u8 mCurrentMtxCalc__8J3DJoint[4 + 4 /* padding */];
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void J3DGetTranslateRotateMtx__FRC16J3DTransformInfoPA4_f();
|
||||
extern "C" void
|
||||
J3DGetTranslateRotateMtx__FRC16J3DTransformInfoPA4_f(J3DTransformInfo const& param_0,
|
||||
f32 (*param_1)[4]);
|
||||
extern "C" void J3DGetTranslateRotateMtx__FsssfffPA4_f();
|
||||
extern "C" void setCurrentMtx__11J3DMaterialFv();
|
||||
extern "C" void JMAMTXApplyScale__FPA4_CfPA4_ffff();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXConcat();
|
||||
extern "C" void JMAMTXApplyScale__FPA4_CfPA4_ffff(const Mtx*, Mtx*, f32, f32, f32);
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" extern u8 const j3dDefaultTransformInfo[32];
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" u8 mCurrentMtx__6J3DSys[48];
|
||||
extern "C" f32 mCurrentS__6J3DSys[3];
|
||||
extern "C" f32 mParentS__6J3DSys[3];
|
||||
@@ -103,95 +56,152 @@ extern "C" u8 entryNum__13J3DDrawBuffer[4 + 4 /* padding */];
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A2068-803A2074 02E6C8 000C+00 1/1 0/0 0/0 .rodata @882 */
|
||||
SECTION_RODATA static u8 const lit_882[12] = {
|
||||
0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803A2068, &lit_882);
|
||||
|
||||
/* 8032EC28-8032ECAC 329568 0084+00 0/0 1/1 0/0 .text
|
||||
* init__25J3DMtxCalcJ3DSysInitBasicFRC3VecRA3_A4_Cf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxCalcJ3DSysInitBasic::init(Vec const& param_0, f32 const (¶m_1)[3][4]) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DJoint/init__25J3DMtxCalcJ3DSysInitBasicFRC3VecRA3_A4_Cf.s"
|
||||
void J3DMtxCalcJ3DSysInitBasic::init(Vec const& param_0, Mtx const& param_1) {
|
||||
J3DSys::mCurrentS = param_0;
|
||||
J3DSys::mParentS = (Vec){1.0f, 1.0f, 1.0f};
|
||||
JMAMTXApplyScale(param_1, J3DSys::mCurrentMtx, J3DSys::mCurrentS.x, J3DSys::mCurrentS.y,
|
||||
J3DSys::mCurrentS.z);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A2074-803A2080 02E6D4 000C+00 1/1 0/0 0/0 .rodata @893 */
|
||||
SECTION_RODATA static u8 const lit_893[12] = {
|
||||
0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803A2074, &lit_893);
|
||||
|
||||
/* 8032ECAC-8032ED30 3295EC 0084+00 0/0 2/2 2/2 .text
|
||||
* init__24J3DMtxCalcJ3DSysInitMayaFRC3VecRA3_A4_Cf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxCalcJ3DSysInitMaya::init(Vec const& param_0, f32 const (¶m_1)[3][4]) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DJoint/init__24J3DMtxCalcJ3DSysInitMayaFRC3VecRA3_A4_Cf.s"
|
||||
void J3DMtxCalcJ3DSysInitMaya::init(Vec const& param_0, Mtx const& param_1) {
|
||||
J3DSys::mParentS = (Vec){1.0f, 1.0f, 1.0f};
|
||||
J3DSys::mCurrentS = param_0;
|
||||
JMAMTXApplyScale(param_1, J3DSys::mCurrentMtx, J3DSys::mCurrentS.x, J3DSys::mCurrentS.y,
|
||||
J3DSys::mCurrentS.z);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804515F0-804515F4 000AF0 0004+00 3/3 1/1 0/0 .sbss mMtxBuffer__10J3DMtxCalc */
|
||||
u8 J3DMtxCalc::mMtxBuffer[4];
|
||||
J3DMtxBuffer* J3DMtxCalc::mMtxBuffer;
|
||||
|
||||
/* 804515F4-804515F8 000AF4 0004+00 4/4 9/9 2/2 .sbss mJoint__10J3DMtxCalc */
|
||||
u8 J3DMtxCalc::mJoint[4];
|
||||
J3DJoint* J3DMtxCalc::mJoint;
|
||||
|
||||
/* 804564A0-804564A4 004AA0 0004+00 3/3 0/0 0/0 .sdata2 @922 */
|
||||
SECTION_SDATA2 static f32 lit_922 = 1.0f;
|
||||
inline s32 checkScaleOne(const Vec& param_0) {
|
||||
if (param_0.x == 1.0f && param_0.y == 1.0f && param_0.z == 1.0f) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8032ED30-8032EE50 329670 0120+00 0/0 1/1 0/0 .text
|
||||
* calcTransform__28J3DMtxCalcCalcTransformBasicFRC16J3DTransformInfo */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxCalcCalcTransformBasic::calcTransform(J3DTransformInfo const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DJoint/calcTransform__28J3DMtxCalcCalcTransformBasicFRC16J3DTransformInfo.s"
|
||||
void J3DMtxCalcCalcTransformBasic::calcTransform(J3DTransformInfo const& transInfo) {
|
||||
J3DMtxBuffer* mtxBuf = J3DMtxCalc::getMtxBuffer();
|
||||
u16 jntNo = J3DMtxCalc::getJoint()->getJntNo();
|
||||
|
||||
MtxP anmMtx = mtxBuf->getAnmMtx(jntNo);
|
||||
|
||||
J3DSys::mCurrentS.x *= transInfo.mScale.x;
|
||||
J3DSys::mCurrentS.y *= transInfo.mScale.y;
|
||||
J3DSys::mCurrentS.z *= transInfo.mScale.z;
|
||||
J3DGetTranslateRotateMtx(transInfo, anmMtx);
|
||||
|
||||
if (!checkScaleOne(J3DSys::mCurrentS)) {
|
||||
mtxBuf->setScaleFlag(jntNo, 0);
|
||||
JMAMTXApplyScale(anmMtx, anmMtx, transInfo.mScale.x, transInfo.mScale.y,
|
||||
transInfo.mScale.z);
|
||||
} else {
|
||||
mtxBuf->setScaleFlag(jntNo, 1);
|
||||
}
|
||||
|
||||
PSMTXConcat(J3DSys::mCurrentMtx, anmMtx, J3DSys::mCurrentMtx);
|
||||
PSMTXCopy(J3DSys::mCurrentMtx, anmMtx);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8032EE50-8032EFBC 329790 016C+00 0/0 1/1 0/0 .text
|
||||
* calcTransform__32J3DMtxCalcCalcTransformSoftimageFRC16J3DTransformInfo */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxCalcCalcTransformSoftimage::calcTransform(J3DTransformInfo const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DJoint/calcTransform__32J3DMtxCalcCalcTransformSoftimageFRC16J3DTransformInfo.s"
|
||||
void J3DMtxCalcCalcTransformSoftimage::calcTransform(J3DTransformInfo const& transInfo) {
|
||||
J3DMtxBuffer* mtxBuf = J3DMtxCalc::getMtxBuffer();
|
||||
u16 jntNo = J3DMtxCalc::getJoint()->getJntNo();
|
||||
|
||||
MtxP anmMtx = mtxBuf->getAnmMtx(jntNo);
|
||||
|
||||
J3DGetTranslateRotateMtx(transInfo.mRotation.x, transInfo.mRotation.y, transInfo.mRotation.z,
|
||||
transInfo.mTranslate.x * J3DSys::mCurrentS.x,
|
||||
transInfo.mTranslate.y * J3DSys::mCurrentS.y,
|
||||
transInfo.mTranslate.z * J3DSys::mCurrentS.z, anmMtx);
|
||||
PSMTXConcat(J3DSys::mCurrentMtx, anmMtx, J3DSys::mCurrentMtx);
|
||||
|
||||
J3DSys::mCurrentS.x *= transInfo.mScale.x;
|
||||
J3DSys::mCurrentS.y *= transInfo.mScale.y;
|
||||
J3DSys::mCurrentS.z *= transInfo.mScale.z;
|
||||
|
||||
if (!checkScaleOne(J3DSys::mCurrentS)) {
|
||||
mtxBuf->setScaleFlag(jntNo, 0);
|
||||
JMAMTXApplyScale(J3DSys::mCurrentMtx, anmMtx, J3DSys::mCurrentS.x, J3DSys::mCurrentS.y,
|
||||
J3DSys::mCurrentS.z);
|
||||
anmMtx[0][3] = J3DSys::mCurrentMtx[0][3];
|
||||
anmMtx[1][3] = J3DSys::mCurrentMtx[1][3];
|
||||
anmMtx[2][3] = J3DSys::mCurrentMtx[2][3];
|
||||
} else {
|
||||
mtxBuf->setScaleFlag(jntNo, 1);
|
||||
PSMTXCopy(J3DSys::mCurrentMtx, anmMtx);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8032EFBC-8032F13C 3298FC 0180+00 0/0 6/6 2/2 .text
|
||||
* calcTransform__27J3DMtxCalcCalcTransformMayaFRC16J3DTransformInfo */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxCalcCalcTransformMaya::calcTransform(J3DTransformInfo const& param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DJoint/calcTransform__27J3DMtxCalcCalcTransformMayaFRC16J3DTransformInfo.s"
|
||||
void J3DMtxCalcCalcTransformMaya::calcTransform(J3DTransformInfo const& transInfo) {
|
||||
J3DJoint* joint = J3DMtxCalc::getJoint();
|
||||
J3DMtxBuffer* mtxBuf = J3DMtxCalc::getMtxBuffer();
|
||||
|
||||
u16 jntNo = joint->getJntNo();
|
||||
|
||||
MtxP anmMtx = mtxBuf->getAnmMtx(jntNo);
|
||||
|
||||
J3DGetTranslateRotateMtx(transInfo, anmMtx);
|
||||
|
||||
if (transInfo.mScale.x == 1.0f && transInfo.mScale.y == 1.0f && transInfo.mScale.z == 1.0f) {
|
||||
mtxBuf->setScaleFlag(jntNo, 1);
|
||||
} else {
|
||||
mtxBuf->setScaleFlag(jntNo, 0);
|
||||
JMAMTXApplyScale(anmMtx, anmMtx, transInfo.mScale.x, transInfo.mScale.y,
|
||||
transInfo.mScale.z);
|
||||
}
|
||||
|
||||
if (joint->getScaleCompensate() == 1) {
|
||||
f32 tmp1 = JMath::fastReciprocal(J3DSys::mParentS.x);
|
||||
f32 tmp2 = JMath::fastReciprocal(J3DSys::mParentS.y);
|
||||
f32 tmp3 = JMath::fastReciprocal(J3DSys::mParentS.z);
|
||||
|
||||
anmMtx[0][0] *= tmp1;
|
||||
anmMtx[0][1] *= tmp1;
|
||||
anmMtx[0][2] *= tmp1;
|
||||
anmMtx[1][0] *= tmp2;
|
||||
anmMtx[1][1] *= tmp2;
|
||||
anmMtx[1][2] *= tmp2;
|
||||
anmMtx[2][0] *= tmp3;
|
||||
anmMtx[2][1] *= tmp3;
|
||||
anmMtx[2][2] *= tmp3;
|
||||
}
|
||||
|
||||
PSMTXConcat(J3DSys::mCurrentMtx, anmMtx, J3DSys::mCurrentMtx);
|
||||
PSMTXCopy(J3DSys::mCurrentMtx, anmMtx);
|
||||
|
||||
J3DSys::mParentS.x = transInfo.mScale.x;
|
||||
J3DSys::mParentS.y = transInfo.mScale.y;
|
||||
J3DSys::mParentS.z = transInfo.mScale.z;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8032F13C-8032F170 329A7C 0034+00 0/0 1/1 0/0 .text appendChild__8J3DJointFP8J3DJoint
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DJoint::appendChild(J3DJoint* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DJoint/appendChild__8J3DJointFP8J3DJoint.s"
|
||||
void J3DJoint::appendChild(J3DJoint* pChild) {
|
||||
if (mChild == NULL) {
|
||||
mChild = pChild;
|
||||
} else {
|
||||
J3DJoint* curChild = mChild;
|
||||
while (curChild->getYounger() != NULL) {
|
||||
curChild = curChild->getYounger();
|
||||
}
|
||||
curChild->setYounger(pChild);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A2080-803A208C 02E6E0 000C+00 1/1 0/0 0/0 .rodata @1257 */
|
||||
@@ -215,6 +225,26 @@ SECTION_SDATA2 static u8 lit_1220[4] = {
|
||||
};
|
||||
|
||||
/* 8032F170-8032F254 329AB0 00E4+00 0/0 1/1 0/0 .text __ct__8J3DJointFv */
|
||||
#ifdef NONMATCHING
|
||||
J3DJoint::J3DJoint() {
|
||||
field_0x0 = NULL;
|
||||
mCallBack = NULL;
|
||||
field_0x8 = NULL;
|
||||
mChild = NULL;
|
||||
mYounger = NULL;
|
||||
mJntNo = 0;
|
||||
mMtxType = 1;
|
||||
mScaleCompensate = false;
|
||||
mTransformInfo = j3dDefaultTransformInfo;
|
||||
field_0x38 = 0.0f;
|
||||
mMtxCalc = NULL;
|
||||
mMesh = NULL;
|
||||
|
||||
Vec init = {0.0f, 0.0f, 0.0f};
|
||||
mMin = init;
|
||||
mMax = init;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -223,6 +253,7 @@ asm J3DJoint::J3DJoint() {
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DJoint/__ct__8J3DJointFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8032F254-8032F3F8 329B94 01A4+00 0/0 1/1 0/0 .text entryIn__8J3DJointFv */
|
||||
#pragma push
|
||||
@@ -236,7 +267,7 @@ asm void J3DJoint::entryIn() {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804515F8-80451600 000AF8 0004+04 1/1 1/1 0/0 .sbss mCurrentMtxCalc__8J3DJoint */
|
||||
u8 J3DJoint::mCurrentMtxCalc[4 + 4 /* padding */];
|
||||
J3DMtxCalc* J3DJoint::mCurrentMtxCalc;
|
||||
|
||||
/* 8032F3F8-8032F5A8 329D38 01B0+00 0/0 1/1 0/0 .text recursiveCalc__8J3DJointFv */
|
||||
#pragma push
|
||||
|
||||
@@ -7,47 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct J3DShapeTable {};
|
||||
|
||||
struct J3DMtxBuffer {};
|
||||
|
||||
struct J3DMtxCalc {
|
||||
/* 80325D1C */ void setMtxBuffer(J3DMtxBuffer*);
|
||||
|
||||
static u8 mMtxBuffer[4];
|
||||
};
|
||||
|
||||
struct J3DModelHierarchy {};
|
||||
|
||||
struct J3DMaterialTable {};
|
||||
|
||||
struct J3DJoint {
|
||||
/* 8032F13C */ void appendChild(J3DJoint*);
|
||||
/* 8032F3F8 */ void recursiveCalc();
|
||||
|
||||
static u8 mCurrentMtxCalc[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct J3DJointTree {
|
||||
/* 80325A18 */ J3DJointTree();
|
||||
/* 80325A9C */ void makeHierarchy(J3DJoint*, J3DModelHierarchy const**, J3DMaterialTable*,
|
||||
J3DShapeTable*);
|
||||
/* 80325C00 */ void findImportantMtxIndex();
|
||||
/* 80325CAC */ void calc(J3DMtxBuffer*, Vec const&, f32 const (&)[3][4]);
|
||||
/* 80325D24 */ ~J3DJointTree();
|
||||
};
|
||||
|
||||
struct J3DDrawMtxData {
|
||||
/* 803115E0 */ J3DDrawMtxData();
|
||||
/* 803115F4 */ ~J3DDrawMtxData();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -1,156 +1,122 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: J3DMaterialAnm
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct _GXColorS10 {};
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct J3DTextureSRTInfo {};
|
||||
|
||||
struct J3DTexNoAnm {};
|
||||
|
||||
struct J3DTexMtxAnm {};
|
||||
|
||||
struct J3DTevKColorAnm {};
|
||||
|
||||
struct J3DTevColorAnm {};
|
||||
|
||||
struct J3DMaterial {};
|
||||
|
||||
struct J3DMatColorAnm {};
|
||||
|
||||
struct J3DMaterialAnm {
|
||||
/* 800A4820 */ ~J3DMaterialAnm();
|
||||
/* 8032C320 */ void initialize();
|
||||
/* 8032C3C4 */ void calc(J3DMaterial*) const;
|
||||
/* 8032C5A4 */ void setMatColorAnm(int, J3DMatColorAnm*);
|
||||
/* 8032C5E4 */ void setTexMtxAnm(int, J3DTexMtxAnm*);
|
||||
/* 8032C624 */ void setTexNoAnm(int, J3DTexNoAnm*);
|
||||
/* 8032C664 */ void setTevColorAnm(int, J3DTevColorAnm*);
|
||||
/* 8032C6A4 */ void setTevKColorAnm(int, J3DTevKColorAnm*);
|
||||
};
|
||||
|
||||
struct J3DAnmTextureSRTKey {
|
||||
/* 80329F14 */ void calcTransform(f32, u16, J3DTextureSRTInfo*) const;
|
||||
};
|
||||
|
||||
struct J3DAnmTevRegKey {
|
||||
/* 8032B1F8 */ void getTevColorReg(u16, _GXColorS10*) const;
|
||||
/* 8032B4BC */ void getTevKonstReg(u16, _GXColor*) const;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void initialize__14J3DMaterialAnmFv();
|
||||
extern "C" void calc__14J3DMaterialAnmCFP11J3DMaterial();
|
||||
extern "C" void setMatColorAnm__14J3DMaterialAnmFiP14J3DMatColorAnm();
|
||||
extern "C" void setTexMtxAnm__14J3DMaterialAnmFiP12J3DTexMtxAnm();
|
||||
extern "C" void setTexNoAnm__14J3DMaterialAnmFiP11J3DTexNoAnm();
|
||||
extern "C" void setTevColorAnm__14J3DMaterialAnmFiP14J3DTevColorAnm();
|
||||
extern "C" void setTevKColorAnm__14J3DMaterialAnmFiP15J3DTevKColorAnm();
|
||||
extern "C" extern void* __vt__14J3DMaterialAnm[4];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __dt__14J3DMaterialAnmFv();
|
||||
extern "C" void calcTransform__19J3DAnmTextureSRTKeyCFfUsP17J3DTextureSRTInfo();
|
||||
extern "C" void getTevColorReg__15J3DAnmTevRegKeyCFUsP11_GXColorS10();
|
||||
extern "C" void getTevKonstReg__15J3DAnmTevRegKeyCFUsP8_GXColor();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _restgpr_27();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8032C320-8032C3C4 326C60 00A4+00 0/0 5/5 72/72 .text initialize__14J3DMaterialAnmFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialAnm::initialize() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMaterialAnm/initialize__14J3DMaterialAnmFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
void J3DMaterialAnm::initialize() {
|
||||
for (int i = 0; i < ARRAY_SIZE(mMatColorAnm); i++) {
|
||||
mMatColorAnm[i].setAnmFlag(false);
|
||||
}
|
||||
|
||||
/* 8032C3C4-8032C5A4 326D04 01E0+00 1/0 4/4 2/2 .text calc__14J3DMaterialAnmCFP11J3DMaterial */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialAnm::calc(J3DMaterial* param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMaterialAnm/calc__14J3DMaterialAnmCFP11J3DMaterial.s"
|
||||
}
|
||||
#pragma pop
|
||||
for (int i = 0; i < ARRAY_SIZE(mTexNoAnm); i++) {
|
||||
mTexNoAnm[i].setAnmFlag(false);
|
||||
}
|
||||
|
||||
/* 8032C5A4-8032C5E4 326EE4 0040+00 0/0 2/2 0/0 .text
|
||||
* setMatColorAnm__14J3DMaterialAnmFiP14J3DMatColorAnm */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialAnm::setMatColorAnm(int param_0, J3DMatColorAnm* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMaterialAnm/setMatColorAnm__14J3DMaterialAnmFiP14J3DMatColorAnm.s"
|
||||
}
|
||||
#pragma pop
|
||||
for (int i = 0; i < ARRAY_SIZE(mTevColorAnm); i++) {
|
||||
mTevColorAnm[i].setAnmFlag(false);
|
||||
}
|
||||
|
||||
/* 8032C5E4-8032C624 326F24 0040+00 0/0 3/3 0/0 .text
|
||||
* setTexMtxAnm__14J3DMaterialAnmFiP12J3DTexMtxAnm */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialAnm::setTexMtxAnm(int param_0, J3DTexMtxAnm* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMaterialAnm/setTexMtxAnm__14J3DMaterialAnmFiP12J3DTexMtxAnm.s"
|
||||
}
|
||||
#pragma pop
|
||||
for (int i = 0; i < ARRAY_SIZE(mTevKColorAnm); i++) {
|
||||
mTevKColorAnm[i].setAnmFlag(false);
|
||||
}
|
||||
|
||||
/* 8032C624-8032C664 326F64 0040+00 0/0 2/2 0/0 .text
|
||||
* setTexNoAnm__14J3DMaterialAnmFiP11J3DTexNoAnm */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialAnm::setTexNoAnm(int param_0, J3DTexNoAnm* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMaterialAnm/setTexNoAnm__14J3DMaterialAnmFiP11J3DTexNoAnm.s"
|
||||
for (int i = 0; i < ARRAY_SIZE(mTexMtxAnm); i++) {
|
||||
mTexMtxAnm[i].setAnmFlag(false);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8032C664-8032C6A4 326FA4 0040+00 0/0 3/3 0/0 .text
|
||||
* setTevColorAnm__14J3DMaterialAnmFiP14J3DTevColorAnm */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialAnm::setTevColorAnm(int param_0, J3DTevColorAnm* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMaterialAnm/setTevColorAnm__14J3DMaterialAnmFiP14J3DTevColorAnm.s"
|
||||
}
|
||||
#pragma pop
|
||||
void J3DMaterialAnm::calc(J3DMaterial* pMat) const {
|
||||
for (u32 i = 0; i < ARRAY_SIZE(mMatColorAnm); i++) {
|
||||
if (mMatColorAnm[i].getAnmFlag()) {
|
||||
_GXColor* color = pMat->getColorBlock()->getMatColor(i);
|
||||
mMatColorAnm[i].calc(color);
|
||||
}
|
||||
}
|
||||
|
||||
/* 8032C6A4-8032C6E4 326FE4 0040+00 0/0 3/3 0/0 .text
|
||||
* setTevKColorAnm__14J3DMaterialAnmFiP15J3DTevKColorAnm */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialAnm::setTevKColorAnm(int param_0, J3DTevKColorAnm* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMaterialAnm/setTevKColorAnm__14J3DMaterialAnmFiP15J3DTevKColorAnm.s"
|
||||
u16 tmp;
|
||||
for (u32 i = 0; i < ARRAY_SIZE(mTexNoAnm); i++) {
|
||||
if (mTexNoAnm[i].getAnmFlag()) {
|
||||
mTexNoAnm[i].calc(&tmp);
|
||||
pMat->getTevBlock()->setTexNo(i, tmp);
|
||||
}
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < 3; i++) {
|
||||
if (mTevColorAnm[i].getAnmFlag()) {
|
||||
_GXColorS10* color = pMat->getTevBlock()->getTevColor(i);
|
||||
mTevColorAnm[i].calc(color);
|
||||
}
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < ARRAY_SIZE(mTevKColorAnm); i++) {
|
||||
if (mTevKColorAnm[i].getAnmFlag()) {
|
||||
_GXColor* color = pMat->getTevBlock()->getTevKColor(i);
|
||||
mTevKColorAnm[i].calc(color);
|
||||
}
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < ARRAY_SIZE(mTexMtxAnm); i++) {
|
||||
if (mTexMtxAnm[i].getAnmFlag()) {
|
||||
J3DTexMtx* texMtx = pMat->getTexGenBlock()->getTexMtx(i);
|
||||
mTexMtxAnm[i].calc(&texMtx->getTexMtxInfo().field_0x10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void J3DMaterialAnm::setMatColorAnm(int idx, J3DMatColorAnm* p_matColorAnm) {
|
||||
if (p_matColorAnm == NULL) {
|
||||
mMatColorAnm[idx].setAnmFlag(false);
|
||||
} else {
|
||||
mMatColorAnm[idx] = *p_matColorAnm;
|
||||
}
|
||||
}
|
||||
|
||||
void J3DMaterialAnm::setTexMtxAnm(int idx, J3DTexMtxAnm* p_texMtxAnm) {
|
||||
if (p_texMtxAnm == NULL) {
|
||||
mTexMtxAnm[idx].setAnmFlag(false);
|
||||
} else {
|
||||
mTexMtxAnm[idx] = *p_texMtxAnm;
|
||||
}
|
||||
}
|
||||
|
||||
void J3DMaterialAnm::setTexNoAnm(int idx, J3DTexNoAnm* p_texNoAnm) {
|
||||
if (p_texNoAnm == NULL) {
|
||||
mTexNoAnm[idx].setAnmFlag(false);
|
||||
} else {
|
||||
mTexNoAnm[idx] = *p_texNoAnm;
|
||||
}
|
||||
}
|
||||
|
||||
void J3DMaterialAnm::setTevColorAnm(int idx, J3DTevColorAnm* p_tevColorAnm) {
|
||||
if (p_tevColorAnm == NULL) {
|
||||
mTevColorAnm[idx].setAnmFlag(false);
|
||||
} else {
|
||||
mTevColorAnm[idx] = *p_tevColorAnm;
|
||||
}
|
||||
}
|
||||
|
||||
void J3DMaterialAnm::setTevKColorAnm(int idx, J3DTevKColorAnm* p_tevKColorAnm) {
|
||||
if (p_tevKColorAnm == NULL) {
|
||||
mTevKColorAnm[idx].setAnmFlag(false);
|
||||
} else {
|
||||
mTevKColorAnm[idx] = *p_tevKColorAnm;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CEE60-803CEE70 02BF80 0010+00 0/0 10/10 74/74 .data __vt__14J3DMaterialAnm */
|
||||
|
||||
@@ -4,58 +4,11 @@
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAttach.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||
#include "JSystem/J3DGraphBase/J3DTevs.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J3DTexNoAnm {};
|
||||
|
||||
struct J3DTexMtxInfo {
|
||||
/* 80325718 */ void operator=(J3DTexMtxInfo const&);
|
||||
};
|
||||
|
||||
struct J3DTexMtxAnm {};
|
||||
|
||||
struct J3DTevKColorAnm {};
|
||||
|
||||
struct J3DTevColorAnm {};
|
||||
|
||||
struct J3DAnmTextureSRTKey {};
|
||||
|
||||
struct J3DAnmTexPattern {};
|
||||
|
||||
struct J3DAnmTevRegKey {};
|
||||
|
||||
struct J3DAnmColor {};
|
||||
|
||||
struct J3DMaterialTable {
|
||||
/* 8032F5A8 */ void clear();
|
||||
/* 8032F5D0 */ J3DMaterialTable();
|
||||
/* 8032F604 */ ~J3DMaterialTable();
|
||||
/* 8032F64C */ void removeMatColorAnimator(J3DAnmColor*);
|
||||
/* 8032F6F8 */ void removeTexNoAnimator(J3DAnmTexPattern*);
|
||||
/* 8032F7B4 */ void removeTexMtxAnimator(J3DAnmTextureSRTKey*);
|
||||
/* 8032F880 */ void removeTevRegAnimator(J3DAnmTevRegKey*);
|
||||
/* 8032F9C0 */ void createTexMtxForAnimator(J3DAnmTextureSRTKey*);
|
||||
/* 8032FAF4 */ void entryMatColorAnimator(J3DAnmColor*);
|
||||
/* 8032FBC8 */ void entryTexNoAnimator(J3DAnmTexPattern*);
|
||||
/* 8032FCC4 */ void entryTexMtxAnimator(J3DAnmTextureSRTKey*);
|
||||
/* 8032FE70 */ void entryTevRegAnimator(J3DAnmTevRegKey*);
|
||||
};
|
||||
|
||||
struct J3DMatColorAnm {};
|
||||
|
||||
struct J3DMaterialAnm {
|
||||
/* 8032C5A4 */ void setMatColorAnm(int, J3DMatColorAnm*);
|
||||
/* 8032C5E4 */ void setTexMtxAnm(int, J3DTexMtxAnm*);
|
||||
/* 8032C624 */ void setTexNoAnm(int, J3DTexNoAnm*);
|
||||
/* 8032C664 */ void setTevColorAnm(int, J3DTevColorAnm*);
|
||||
/* 8032C6A4 */ void setTevKColorAnm(int, J3DTevKColorAnm*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -101,14 +54,16 @@ extern "C" extern void* __vt__11J3DTexNoAnm[3];
|
||||
//
|
||||
|
||||
/* 8032F5A8-8032F5D0 329EE8 0028+00 0/0 1/1 0/0 .text clear__16J3DMaterialTableFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialTable::clear() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMaterialAttach/clear__16J3DMaterialTableFv.s"
|
||||
void J3DMaterialTable::clear() {
|
||||
mMaterialNum = 0;
|
||||
mUniqueMatNum = 0;
|
||||
mMaterialNodePointer = NULL;
|
||||
mMaterialName = NULL;
|
||||
field_0x10 = 0;
|
||||
mTexture = NULL;
|
||||
mTextureName = NULL;
|
||||
field_0x1c = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CEE80-803CEE90 02BFA0 000C+04 2/2 0/0 0/0 .data __vt__16J3DMaterialTable */
|
||||
@@ -121,35 +76,50 @@ SECTION_DATA extern void* __vt__16J3DMaterialTable[3 + 1 /* padding */] = {
|
||||
};
|
||||
|
||||
/* 8032F5D0-8032F604 329F10 0034+00 0/0 2/2 0/0 .text __ct__16J3DMaterialTableFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DMaterialTable::J3DMaterialTable() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMaterialAttach/__ct__16J3DMaterialTableFv.s"
|
||||
J3DMaterialTable::J3DMaterialTable() {
|
||||
mMaterialNum = 0;
|
||||
mUniqueMatNum = 0;
|
||||
mMaterialNodePointer = NULL;
|
||||
mMaterialName = NULL;
|
||||
field_0x10 = 0;
|
||||
mTexture = NULL;
|
||||
mTextureName = NULL;
|
||||
field_0x1c = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8032F604-8032F64C 329F44 0048+00 1/0 1/1 0/0 .text __dt__16J3DMaterialTableFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DMaterialTable::~J3DMaterialTable() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMaterialAttach/__dt__16J3DMaterialTableFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
J3DMaterialTable::~J3DMaterialTable() {}
|
||||
|
||||
/* 8032F64C-8032F6F8 329F8C 00AC+00 0/0 1/1 5/5 .text
|
||||
* removeMatColorAnimator__16J3DMaterialTableFP11J3DAnmColor */
|
||||
#ifdef NONMATCHING
|
||||
bool J3DMaterialTable::removeMatColorAnimator(J3DAnmColor* pAnmColor) {
|
||||
bool ret = false;
|
||||
u16 updateMatNum = pAnmColor->getUpdateMaterialNum();
|
||||
for (u16 i = 0; i < updateMatNum; i++) {
|
||||
if (pAnmColor->isValidUpdateMaterialID(i)) {
|
||||
u16 updateMatID = pAnmColor->getUpdateMaterialID(i);
|
||||
J3DMaterial* materialNode = getMaterialNodePointer(i);
|
||||
|
||||
if (materialNode->getMaterialAnm() == NULL) {
|
||||
ret = true;
|
||||
} else {
|
||||
materialNode->getMaterialAnm()->setMatColorAnm(0, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterialTable::removeMatColorAnimator(J3DAnmColor* param_0) {
|
||||
asm bool J3DMaterialTable::removeMatColorAnimator(J3DAnmColor* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMaterialAttach/removeMatColorAnimator__16J3DMaterialTableFP11J3DAnmColor.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8032F6F8-8032F7B4 32A038 00BC+00 0/0 5/5 10/10 .text
|
||||
* removeTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern */
|
||||
|
||||
@@ -4,62 +4,10 @@
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphAnimator/J3DModel.h"
|
||||
#include "JSystem/J3DGraphBase/J3DTransform.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J3DVtxColorCalc {
|
||||
/* 8032E180 */ void calc(J3DModel*);
|
||||
};
|
||||
|
||||
struct J3DVertexData {};
|
||||
|
||||
struct J3DVertexBuffer {
|
||||
/* 80310F78 */ void setVertexData(J3DVertexData*);
|
||||
/* 80311030 */ ~J3DVertexBuffer();
|
||||
/* 803112D0 */ void copyLocalVtxArray(u32);
|
||||
/* 80311478 */ void allocTransformedVtxPosArray();
|
||||
/* 8031152C */ void allocTransformedVtxNrmArray();
|
||||
};
|
||||
|
||||
struct J3DShapePacket {
|
||||
/* 80312B20 */ J3DShapePacket();
|
||||
/* 80312B74 */ ~J3DShapePacket();
|
||||
/* 80312DBC */ void newDifferedDisplayList(u32);
|
||||
};
|
||||
|
||||
struct J3DShape {
|
||||
/* 80314DA8 */ void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]);
|
||||
};
|
||||
|
||||
struct J3DMaterial {
|
||||
/* 80316290 */ void countDLSize();
|
||||
/* 80316E90 */ void newSharedDisplayList(u32);
|
||||
/* 80316F24 */ void newSingleSharedDisplayList(u32);
|
||||
};
|
||||
|
||||
struct J3DMatPacket {
|
||||
/* 80312948 */ J3DMatPacket();
|
||||
/* 803129A4 */ ~J3DMatPacket();
|
||||
/* 80312A04 */ void addShapePacket(J3DShapePacket*);
|
||||
};
|
||||
|
||||
struct J3DJoint {
|
||||
/* 8032F254 */ void entryIn();
|
||||
};
|
||||
|
||||
struct J3DDrawPacket {
|
||||
/* 8031280C */ void newDisplayList(u32);
|
||||
/* 80312898 */ void newSingleDisplayList(u32);
|
||||
};
|
||||
|
||||
struct J3DDisplayListObj {
|
||||
/* 8031256C */ void single_To_Double();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -146,9 +94,6 @@ extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 const j3dDefaultScale[12];
|
||||
extern "C" extern u8 const j3dDefaultMtx[48];
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -163,14 +108,29 @@ SECTION_SDATA2 static f32 lit_896[1 + 1 /* padding */] = {
|
||||
};
|
||||
|
||||
/* 80327100-80327184 321A40 0084+00 0/0 3/3 0/0 .text initialize__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::initialize() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/initialize__8J3DModelFv.s"
|
||||
void J3DModel::initialize() {
|
||||
mModelData = NULL;
|
||||
mFlags = 0;
|
||||
field_0x0c = 0;
|
||||
field_0x10 = 0;
|
||||
mUserArea = 0;
|
||||
|
||||
mBaseScale.x = 1.0f;
|
||||
mBaseScale.y = 1.0f;
|
||||
mBaseScale.z = 1.0f;
|
||||
|
||||
PSMTXIdentity(mBaseTransformMtx);
|
||||
PSMTXIdentity(mInternalView);
|
||||
|
||||
mMtxBuffer = NULL;
|
||||
mMatPacket = NULL;
|
||||
mShapePacket = NULL;
|
||||
mDeformData = NULL;
|
||||
mSkinDeform = NULL;
|
||||
mVtxColorCalc = NULL;
|
||||
field_0xd4 = 0;
|
||||
field_0xd8 = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CED20-803CED44 02BE40 0024+00 1/1 3/3 0/0 .data __vt__8J3DModel */
|
||||
@@ -195,32 +155,95 @@ SECTION_DATA extern void* __vt__12J3DMtxBuffer[3] = {
|
||||
|
||||
/* 80327184-80327300 321AC4 017C+00 0/0 3/3 0/0 .text
|
||||
* entryModelData__8J3DModelFP12J3DModelDataUlUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::entryModelData(J3DModelData* param_0, u32 param_1, u32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/entryModelData__8J3DModelFP12J3DModelDataUlUl.s"
|
||||
s32 J3DModel::entryModelData(J3DModelData* p_modelData, u32 param_1, u32 param_2) {
|
||||
mModelData = p_modelData;
|
||||
mMtxBuffer = new J3DMtxBuffer();
|
||||
|
||||
if (mMtxBuffer == NULL) {
|
||||
return 4;
|
||||
}
|
||||
|
||||
switch (mMtxBuffer->create(p_modelData, param_2)) {
|
||||
case 0:
|
||||
switch (createShapePacket(p_modelData)) {
|
||||
case 0:
|
||||
switch (createMatPacket(p_modelData, param_1)) {
|
||||
case 0:
|
||||
mVertexBuffer.setVertexData(&p_modelData->getVertexData());
|
||||
prepareShapePackets();
|
||||
|
||||
if (param_1 & 0x1) {
|
||||
onFlag(0x1);
|
||||
}
|
||||
if (param_1 & 0x2) {
|
||||
onFlag(0x2);
|
||||
}
|
||||
if (param_1 & 0x10) {
|
||||
onFlag(0x10);
|
||||
}
|
||||
if (param_1 & 0x20000) {
|
||||
onFlag(0x20000);
|
||||
}
|
||||
if (param_1 & 0x40000) {
|
||||
onFlag(0x40000);
|
||||
}
|
||||
if (param_1 & 0x80000) {
|
||||
onFlag(0x80000);
|
||||
}
|
||||
if (param_1 & J3DMdlFlag_SkinPosCpu) {
|
||||
onFlag(J3DMdlFlag_SkinPosCpu);
|
||||
}
|
||||
if (param_1 & J3DMdlFlag_SkinNrmCpu) {
|
||||
onFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80327300-803273CC 321C40 00CC+00 1/1 0/0 0/0 .text createShapePacket__8J3DModelFP12J3DModelData
|
||||
*/
|
||||
// probably some wrong member types
|
||||
#ifdef NONMATCHING
|
||||
s32 J3DModel::createShapePacket(J3DModelData* p_modelData) {
|
||||
if (p_modelData->getShapeNum() != 0) {
|
||||
u16 shapeNum = p_modelData->getShapeNum();
|
||||
|
||||
J3DShapePacket* packet = new J3DShapePacket[shapeNum];
|
||||
mShapePacket = &packet;
|
||||
|
||||
if (mShapePacket == NULL) {
|
||||
return 4;
|
||||
}
|
||||
|
||||
for (int i = 0; i < p_modelData->getShapeNum(); i++) {
|
||||
J3DShape* shapeNode = p_modelData->getShapeNodePointer(i);
|
||||
mShapePacket[i]->setShape(shapeNode);
|
||||
mShapePacket[i]->setModel(this);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::createShapePacket(J3DModelData* param_0) {
|
||||
asm s32 J3DModel::createShapePacket(J3DModelData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/createShapePacket__8J3DModelFP12J3DModelData.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803273CC-803275FC 321D0C 0230+00 1/1 0/0 0/0 .text createMatPacket__8J3DModelFP12J3DModelDataUl
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::createMatPacket(J3DModelData* param_0, u32 param_1) {
|
||||
asm s32 J3DModel::createMatPacket(J3DModelData* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/createMatPacket__8J3DModelFP12J3DModelDataUl.s"
|
||||
}
|
||||
@@ -288,52 +311,101 @@ asm void J3DModel::diff() {
|
||||
|
||||
/* 80327A2C-80327AA0 32236C 0074+00 0/0 1/1 2/2 .text setDeformData__8J3DModelFP13J3DDeformDataUl
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::setDeformData(J3DDeformData* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/setDeformData__8J3DModelFP13J3DDeformDataUl.s"
|
||||
s32 J3DModel::setDeformData(J3DDeformData* p_deformData, u32 param_1) {
|
||||
mDeformData = p_deformData;
|
||||
|
||||
if (p_deformData == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (mVertexBuffer.copyLocalVtxArray(param_1)) {
|
||||
case 0:
|
||||
if (param_1 & 4) {
|
||||
p_deformData->offAllFlag(1);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80327AA0-80327BD4 3223E0 0134+00 0/0 0/0 2/2 .text setSkinDeform__8J3DModelFP13J3DSkinDeformUl
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
s32 J3DModel::setSkinDeform(J3DSkinDeform* p_skinDeform, u32 param_1) {
|
||||
mSkinDeform = p_skinDeform;
|
||||
|
||||
if (p_skinDeform == NULL) {
|
||||
offFlag(J3DMdlFlag_SkinPosCpu);
|
||||
offFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
return 5;
|
||||
} else {
|
||||
mSkinDeform->initMtxIndexArray(mModelData);
|
||||
if (mModelData->checkFlag(0x100)) {
|
||||
mSkinDeform->changeFastSkinDL(mModelData);
|
||||
param_1 = 0;
|
||||
mSkinDeform->transformVtxPosNrm(mModelData);
|
||||
mSkinDeform->initSkinInfo(mModelData);
|
||||
}
|
||||
p_skinDeform = NULL;
|
||||
|
||||
if ((~param_1 & 2)) {
|
||||
if (mVertexBuffer.allocTransformedVtxPosArray()) {
|
||||
offFlag(J3DMdlFlag_SkinPosCpu);
|
||||
return 0;
|
||||
}
|
||||
onFlag(J3DMdlFlag_SkinPosCpu);
|
||||
} else {
|
||||
offFlag(J3DMdlFlag_SkinPosCpu);
|
||||
}
|
||||
|
||||
if ((~param_1 & 4)) {
|
||||
if (mVertexBuffer.allocTransformedVtxNrmArray()) {
|
||||
onFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
}
|
||||
offFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
} else {
|
||||
offFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::setSkinDeform(J3DSkinDeform* param_0, u32 param_1) {
|
||||
asm s32 J3DModel::setSkinDeform(J3DSkinDeform* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/setSkinDeform__8J3DModelFP13J3DSkinDeformUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80327BD4-80327C58 322514 0084+00 1/1 0/0 2/2 .text calcAnmMtx__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::calcAnmMtx() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/calcAnmMtx__8J3DModelFv.s"
|
||||
void J3DModel::calcAnmMtx() {
|
||||
j3dSys.setModel(this);
|
||||
|
||||
if (checkFlag(2)) {
|
||||
getModelData()->getJointTree().calc(mMtxBuffer, j3dDefaultScale, j3dDefaultMtx);
|
||||
} else {
|
||||
getModelData()->getJointTree().calc(mMtxBuffer, mBaseScale, mBaseTransformMtx);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80327C58-80327CA4 322598 004C+00 1/1 1/1 1/1 .text calcWeightEnvelopeMtx__8J3DModelFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::calcWeightEnvelopeMtx() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/calcWeightEnvelopeMtx__8J3DModelFv.s"
|
||||
void J3DModel::calcWeightEnvelopeMtx() {
|
||||
if (getModelData()->getWEvlpMtxNum() != 0 && !checkFlag(0x10)) {
|
||||
if (!getModelData()->checkFlag(0x100)) {
|
||||
mMtxBuffer->calcWeightEnvelopeMtx();
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80327CA4-80327CF0 3225E4 004C+00 1/0 0/0 0/0 .text update__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::update() {
|
||||
extern "C" asm void update__8J3DModelFv() {
|
||||
// asm void J3DModel::update() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/update__8J3DModelFv.s"
|
||||
}
|
||||
@@ -370,14 +442,9 @@ asm void J3DModel::viewCalc() {
|
||||
#pragma pop
|
||||
|
||||
/* 80328190-803281B4 322AD0 0024+00 1/1 0/0 0/0 .text calcNrmMtx__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::calcNrmMtx() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/calcNrmMtx__8J3DModelFv.s"
|
||||
void J3DModel::calcNrmMtx() {
|
||||
mMtxBuffer->calcNrmMtx();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803281B4-803282B8 322AF4 0104+00 1/1 0/0 0/0 .text calcBumpMtx__8J3DModelFv */
|
||||
#pragma push
|
||||
@@ -390,14 +457,11 @@ asm void J3DModel::calcBumpMtx() {
|
||||
#pragma pop
|
||||
|
||||
/* 803282B8-803282EC 322BF8 0034+00 1/1 0/0 0/0 .text calcBBoardMtx__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::calcBBoardMtx() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/calcBBoardMtx__8J3DModelFv.s"
|
||||
void J3DModel::calcBBoardMtx() {
|
||||
if (mModelData->checkBBoardFlag()) {
|
||||
mMtxBuffer->calcBBoardMtx();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803282EC-80328350 322C2C 0064+00 2/2 0/0 0/0 .text prepareShapePackets__8J3DModelFv */
|
||||
#pragma push
|
||||
@@ -410,20 +474,14 @@ asm void J3DModel::prepareShapePackets() {
|
||||
#pragma pop
|
||||
|
||||
/* 80328350-803283B4 322C90 0064+00 1/0 0/0 0/0 .text __dt__8J3DModelFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DModel::~J3DModel() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/__dt__8J3DModelFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
J3DModel::~J3DModel() {}
|
||||
|
||||
/* 803283B4-803283FC 322CF4 0048+00 1/0 0/0 0/0 .text __dt__12J3DMtxBufferFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DMtxBuffer::~J3DMtxBuffer() {
|
||||
extern "C" asm void __dt__12J3DMtxBufferFv() {
|
||||
// asm J3DMtxBuffer::~J3DMtxBuffer() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/__dt__12J3DMtxBufferFv.s"
|
||||
}
|
||||
|
||||
@@ -4,40 +4,11 @@
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphAnimator/J3DModelData.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J3DVertexData {
|
||||
/* 80310EF8 */ J3DVertexData();
|
||||
};
|
||||
|
||||
struct J3DShapeTable {
|
||||
/* 80326134 */ ~J3DShapeTable();
|
||||
};
|
||||
|
||||
struct J3DMaterialTable {
|
||||
/* 8032F5D0 */ J3DMaterialTable();
|
||||
/* 8032F604 */ ~J3DMaterialTable();
|
||||
};
|
||||
|
||||
struct J3DMaterial {
|
||||
/* 80316290 */ void countDLSize();
|
||||
/* 80316E90 */ void newSharedDisplayList(u32);
|
||||
/* 80316F24 */ void newSingleSharedDisplayList(u32);
|
||||
};
|
||||
|
||||
struct J3DJointTree {
|
||||
/* 80325A18 */ J3DJointTree();
|
||||
};
|
||||
|
||||
struct J3DDrawMtxData {
|
||||
/* 803115F4 */ ~J3DDrawMtxData();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -66,32 +37,23 @@ extern "C" void newSingleSharedDisplayList__11J3DMaterialFUl();
|
||||
extern "C" void __ct__12J3DJointTreeFv();
|
||||
extern "C" void __ct__16J3DMaterialTableFv();
|
||||
extern "C" void __dt__16J3DMaterialTableFv();
|
||||
extern "C" void OSDisableInterrupts();
|
||||
extern "C" void OSRestoreInterrupts();
|
||||
extern "C" void OSDisableScheduler();
|
||||
extern "C" void OSEnableScheduler();
|
||||
extern "C" void GDInitGDLObj();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__12J3DJointTree[4 + 1 /* padding */];
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" extern u8 __GDCurrentDL[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80325D88-80325DA0 3206C8 0018+00 1/1 2/2 0/0 .text clear__12J3DModelDataFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModelData::clear() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModelData/clear__12J3DModelDataFv.s"
|
||||
void J3DModelData::clear() {
|
||||
field_0x4 = 0;
|
||||
mFlags = 0;
|
||||
field_0xc = 0;
|
||||
field_0xe = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CED08-803CED14 02BE28 000C+00 3/3 0/0 0/0 .data __vt__13J3DShapeTable */
|
||||
@@ -109,89 +71,129 @@ SECTION_DATA extern void* __vt__12J3DModelData[3] = {
|
||||
};
|
||||
|
||||
/* 80325DA0-80325E14 3206E0 0074+00 0/0 2/2 0/0 .text __ct__12J3DModelDataFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DModelData::J3DModelData() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModelData/__ct__12J3DModelDataFv.s"
|
||||
J3DModelData::J3DModelData() {
|
||||
clear();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80325E14-80325EC8 320754 00B4+00 0/0 2/2 0/0 .text newSharedDisplayList__12J3DModelDataFUl */
|
||||
#ifdef NONMATCHING
|
||||
s32 J3DModelData::newSharedDisplayList(u32 param_0) {
|
||||
u16 matNum = getMaterialNum();
|
||||
|
||||
for (u16 i = 0; i < matNum; i++) {
|
||||
if ((param_0 & 0x40000)) {
|
||||
J3DMaterial* matNode = getMaterialNodePointer(i);
|
||||
u32 dl_size = matNode->countDLSize();
|
||||
switch (matNode->newSingleSharedDisplayList(dl_size)) {
|
||||
case 0:
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
} else {
|
||||
J3DMaterial* matNode = getMaterialNodePointer(i);
|
||||
u32 dl_size = matNode->countDLSize();
|
||||
switch (matNode->newSharedDisplayList(dl_size)) {
|
||||
case 0:
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModelData::newSharedDisplayList(u32 param_0) {
|
||||
asm s32 J3DModelData::newSharedDisplayList(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModelData/newSharedDisplayList__12J3DModelDataFUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804515E8-804515EC 000AE8 0004+00 1/1 0/0 0/0 .sbss sInterruptFlag$965 */
|
||||
static u8 sInterruptFlag[4];
|
||||
static s32 sInterruptFlag;
|
||||
|
||||
/* 804515EC-804515F0 000AEC 0004+00 1/1 0/0 0/0 .sbss None */
|
||||
static u8 data_804515EC[4];
|
||||
static s8 sInitInterruptFlag;
|
||||
|
||||
/* 80325EC8-80325F94 320808 00CC+00 0/0 1/1 0/0 .text indexToPtr__12J3DModelDataFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModelData::indexToPtr() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModelData/indexToPtr__12J3DModelDataFv.s"
|
||||
void J3DModelData::indexToPtr() {
|
||||
J3DTexture* tex = getTexture();
|
||||
j3dSys.setTexture(tex);
|
||||
|
||||
if (!sInitInterruptFlag) {
|
||||
sInterruptFlag = OSDisableInterrupts();
|
||||
sInitInterruptFlag = true;
|
||||
}
|
||||
OSDisableScheduler();
|
||||
|
||||
GDLObj gdl_obj;
|
||||
u16 matNum = getMaterialNum();
|
||||
for (u16 i = 0; i < matNum; i++) {
|
||||
J3DMaterial* matNode = getMaterialNodePointer(i);
|
||||
J3DDisplayListObj* dl_obj = matNode->getSharedDisplayListObj();
|
||||
|
||||
GDInitGDLObj(&gdl_obj, dl_obj->getDisplayList(0), dl_obj->getDisplayListSize());
|
||||
GDSetCurrent(&gdl_obj);
|
||||
matNode->getTevBlock()->indexToPtr();
|
||||
}
|
||||
GDSetCurrent(NULL);
|
||||
OSEnableScheduler();
|
||||
OSRestoreInterrupts(sInterruptFlag);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80325F94-8032600C 3208D4 0078+00 0/0 2/2 0/0 .text makeSharedDL__12J3DModelDataFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModelData::makeSharedDL() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModelData/makeSharedDL__12J3DModelDataFv.s"
|
||||
void J3DModelData::makeSharedDL() {
|
||||
J3DTexture* tex = getTexture();
|
||||
j3dSys.setTexture(tex);
|
||||
|
||||
u16 matNum = getMaterialNum();
|
||||
for (u16 i = 0; i < matNum; i++) {
|
||||
getMaterialNodePointer(i)->makeSharedDisplayList();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8032600C-803260CC 32094C 00C0+00 0/0 3/3 7/7 .text simpleCalcMaterial__12J3DModelDataFUsPA4_f
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModelData::simpleCalcMaterial(u16 param_0, f32 (*param_1)[4]) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModelData/simpleCalcMaterial__12J3DModelDataFUsPA4_f.s"
|
||||
void J3DModelData::simpleCalcMaterial(u16 idx, Mtx param_1) {
|
||||
syncJ3DSysFlags();
|
||||
|
||||
J3DJoint* jointNode = getJointNodePointer(idx);
|
||||
for (J3DMaterial* mat = jointNode->getMesh(); mat != NULL; mat = mat->getNext()) {
|
||||
if (mat->getMaterialAnm() != NULL) {
|
||||
mat->getMaterialAnm()->calc(mat);
|
||||
}
|
||||
mat->calc(param_1);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803260CC-803260F8 320A0C 002C+00 0/0 1/1 0/0 .text syncJ3DSysPointers__12J3DModelDataCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModelData::syncJ3DSysPointers() const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModelData/syncJ3DSysPointers__12J3DModelDataCFv.s"
|
||||
void J3DModelData::syncJ3DSysPointers() const {
|
||||
j3dSys.setTexture(getTexture());
|
||||
j3dSys.setVtxPos(getVtxPosArray());
|
||||
j3dSys.setVtxNrm(getVtxNrmArray());
|
||||
j3dSys.setVtxCol(getVtxColorArray(0));
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803260F8-80326134 320A38 003C+00 1/1 5/5 0/0 .text syncJ3DSysFlags__12J3DModelDataCFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModelData::syncJ3DSysFlags() const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModelData/syncJ3DSysFlags__12J3DModelDataCFv.s"
|
||||
void J3DModelData::syncJ3DSysFlags() const {
|
||||
if (checkFlag(0x20)) {
|
||||
j3dSys.onFlag(0x40000000);
|
||||
} else {
|
||||
j3dSys.offFlag(0x40000000);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80326134-8032617C 320A74 0048+00 1/0 0/0 0/0 .text __dt__13J3DShapeTableFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DShapeTable::~J3DShapeTable() {
|
||||
extern "C" asm void __dt__13J3DShapeTableFv() {
|
||||
// asm J3DShapeTable::~J3DShapeTable() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModelData/__dt__13J3DShapeTableFv.s"
|
||||
}
|
||||
|
||||
@@ -7,37 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct J3DShape {
|
||||
/* 80314E28 */ void countBumpMtxNum() const;
|
||||
};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct J3DMtxBuffer {
|
||||
/* 80326214 */ void initialize();
|
||||
/* 80326258 */ void create(J3DModelData*, u32);
|
||||
/* 80326364 */ void createAnmMtx(J3DModelData*);
|
||||
/* 803263F0 */ void createWeightEnvelopeMtx(J3DModelData*);
|
||||
/* 8032648C */ void setNoUseDrawMtx();
|
||||
/* 803264B8 */ void createDoubleDrawMtx(J3DModelData*, u32);
|
||||
/* 80326664 */ void createBumpMtxArray(J3DModelData*, u32);
|
||||
/* 803268D4 */ void calcWeightEnvelopeMtx();
|
||||
/* 80326ACC */ void calcDrawMtx(u32, Vec const&, f32 const (&)[3][4]);
|
||||
/* 80326D3C */ void calcNrmMtx();
|
||||
/* 80326EF0 */ void calcBBoardMtx();
|
||||
|
||||
static u8 sNoUseDrawMtx[48];
|
||||
static u8 sNoUseNrmMtx[36 + 4 /* padding */];
|
||||
static void* sNoUseDrawMtxPtr;
|
||||
static void* sNoUseNrmMtxPtr;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -70,8 +39,6 @@ extern "C" void J3DCalcYBBoardMtx__FPA4_f();
|
||||
extern "C" void J3DPSCalcInverseTranspose__FPA4_fPA3_f();
|
||||
extern "C" void J3DPSMtxArrayConcat__FPA4_fPA4_fPA4_fUl();
|
||||
extern "C" void countBumpMtxNum__8J3DShapeCFv();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXConcat();
|
||||
extern "C" void _savegpr_19();
|
||||
extern "C" void _savegpr_24();
|
||||
extern "C" void _savegpr_27();
|
||||
@@ -82,7 +49,6 @@ extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -102,7 +68,7 @@ asm void J3DMtxBuffer::initialize() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxBuffer::create(J3DModelData* param_0, u32 param_1) {
|
||||
asm s32 J3DMtxBuffer::create(J3DModelData* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/create__12J3DMtxBufferFP12J3DModelDataUl.s"
|
||||
}
|
||||
@@ -132,16 +98,16 @@ asm void J3DMtxBuffer::createWeightEnvelopeMtx(J3DModelData* param_0) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804371C0-804371F0 063EE0 0030+00 1/0 0/0 0/0 .bss sNoUseDrawMtx__12J3DMtxBuffer */
|
||||
u8 J3DMtxBuffer::sNoUseDrawMtx[48];
|
||||
Mtx J3DMtxBuffer::sNoUseDrawMtx;
|
||||
|
||||
/* 804371F0-80437218 063F10 0024+04 1/0 0/0 0/0 .bss sNoUseNrmMtx__12J3DMtxBuffer */
|
||||
u8 J3DMtxBuffer::sNoUseNrmMtx[36 + 4 /* padding */];
|
||||
Mtx33 J3DMtxBuffer::sNoUseNrmMtx;
|
||||
|
||||
/* 80450970-80450974 -00001 0004+00 1/1 0/0 0/0 .sdata sNoUseDrawMtxPtr__12J3DMtxBuffer */
|
||||
SECTION_SDATA void* J3DMtxBuffer::sNoUseDrawMtxPtr = (void*)&J3DMtxBuffer::sNoUseDrawMtx;
|
||||
Mtx* J3DMtxBuffer::sNoUseDrawMtxPtr = &J3DMtxBuffer::sNoUseDrawMtx;
|
||||
|
||||
/* 80450974-80450978 -00001 0004+00 1/1 0/0 0/0 .sdata sNoUseNrmMtxPtr__12J3DMtxBuffer */
|
||||
SECTION_SDATA void* J3DMtxBuffer::sNoUseNrmMtxPtr = (void*)&J3DMtxBuffer::sNoUseNrmMtx;
|
||||
Mtx33* J3DMtxBuffer::sNoUseNrmMtxPtr = &J3DMtxBuffer::sNoUseNrmMtx;
|
||||
|
||||
/* 8032648C-803264B8 320DCC 002C+00 1/1 0/0 0/0 .text setNoUseDrawMtx__12J3DMtxBufferFv
|
||||
*/
|
||||
|
||||
@@ -1,93 +1,40 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: J3DShapeTable
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphAnimator/J3DShapeTable.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J3DVertexData {};
|
||||
|
||||
struct J3DDrawMtxData {};
|
||||
|
||||
struct J3DShapeTable {
|
||||
/* 803258A0 */ void hide();
|
||||
/* 803258D8 */ void show();
|
||||
/* 80325910 */ void initShapeNodes(J3DDrawMtxData*, J3DVertexData*);
|
||||
/* 8032597C */ void sortVcdVatCmd();
|
||||
};
|
||||
|
||||
struct J3DShape {
|
||||
/* 80314F5C */ void isSameVcdVatCmd(J3DShape*);
|
||||
/* 80315260 */ void makeVcdVatCmd();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void hide__13J3DShapeTableFv();
|
||||
extern "C" void show__13J3DShapeTableFv();
|
||||
extern "C" void initShapeNodes__13J3DShapeTableFP14J3DDrawMtxDataP13J3DVertexData();
|
||||
extern "C" void sortVcdVatCmd__13J3DShapeTableFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void isSameVcdVatCmd__8J3DShapeFP8J3DShape();
|
||||
extern "C" void makeVcdVatCmd__8J3DShapeFv();
|
||||
extern "C" void _savegpr_25();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _restgpr_25();
|
||||
extern "C" void _restgpr_27();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 803258A0-803258D8 3201E0 0038+00 0/0 0/0 6/6 .text hide__13J3DShapeTableFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShapeTable::hide() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DShapeTable/hide__13J3DShapeTableFv.s"
|
||||
void J3DShapeTable::hide() {
|
||||
u16 shapeNum = mShapeNum;
|
||||
for (u16 i = 0; i < shapeNum; i++) {
|
||||
mShapeNodePointer[i]->onFlag(1);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803258D8-80325910 320218 0038+00 0/0 0/0 6/6 .text show__13J3DShapeTableFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShapeTable::show() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DShapeTable/show__13J3DShapeTableFv.s"
|
||||
void J3DShapeTable::show() {
|
||||
u16 shapeNum = mShapeNum;
|
||||
for (u16 i = 0; i < shapeNum; i++) {
|
||||
mShapeNodePointer[i]->offFlag(1);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80325910-8032597C 320250 006C+00 0/0 2/2 0/0 .text
|
||||
* initShapeNodes__13J3DShapeTableFP14J3DDrawMtxDataP13J3DVertexData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShapeTable::initShapeNodes(J3DDrawMtxData* param_0, J3DVertexData* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DShapeTable/initShapeNodes__13J3DShapeTableFP14J3DDrawMtxDataP13J3DVertexData.s"
|
||||
}
|
||||
#pragma pop
|
||||
void J3DShapeTable::initShapeNodes(J3DDrawMtxData* pMtxData, J3DVertexData* pVtxData) {
|
||||
u16 shapeNum = mShapeNum;
|
||||
for (u16 i = 0; i < shapeNum; i++) {
|
||||
J3DShape* shapeNode = mShapeNodePointer[i];
|
||||
|
||||
/* 8032597C-80325A18 3202BC 009C+00 0/0 2/2 0/0 .text sortVcdVatCmd__13J3DShapeTableFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShapeTable::sortVcdVatCmd() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DShapeTable/sortVcdVatCmd__13J3DShapeTableFv.s"
|
||||
shapeNode->setDrawMtxDataPointer(pMtxData);
|
||||
shapeNode->setVertexDataPointer(pVtxData);
|
||||
shapeNode->makeVcdVatCmd();
|
||||
}
|
||||
}
|
||||
|
||||
void J3DShapeTable::sortVcdVatCmd() {
|
||||
u16 shapeNum = mShapeNum;
|
||||
for (u16 next = 0; next < shapeNum; next++) {
|
||||
for (u16 prev = 0; prev < next; prev++) {
|
||||
if (mShapeNodePointer[next]->isSameVcdVatCmd(mShapeNodePointer[prev])) {
|
||||
void* nodeVatCmd = mShapeNodePointer[prev]->getVcdVatCmd();
|
||||
mShapeNodePointer[next]->setVcdVatCmd(nodeVatCmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -11,53 +11,8 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
struct J3DVtxColorCalc {
|
||||
/* 8032E180 */ void calc(J3DModel*);
|
||||
};
|
||||
|
||||
struct J3DVertexBuffer {};
|
||||
|
||||
struct J3DSkinNList {
|
||||
/* 8032C6E4 */ J3DSkinNList();
|
||||
/* 8032C85C */ void calcSkin_VtxPosF32(f32 (*)[4], void*, void*);
|
||||
/* 8032C8E4 */ void calcSkin_VtxNrmF32(f32 (*)[4], void*, void*);
|
||||
};
|
||||
|
||||
struct J3DMtxBuffer {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct J3DSkinDeform {
|
||||
/* 8032C96C */ J3DSkinDeform();
|
||||
/* 8032C9B0 */ void initSkinInfo(J3DModelData*);
|
||||
/* 8032CF44 */ void initMtxIndexArray(J3DModelData*);
|
||||
/* 8032D378 */ void changeFastSkinDL(J3DModelData*);
|
||||
/* 8032D5C4 */ void calcNrmMtx(J3DMtxBuffer*);
|
||||
/* 8032D738 */ void transformVtxPosNrm(J3DModelData*);
|
||||
/* 8032D87C */ void calcAnmInvJointMtx(J3DMtxBuffer*);
|
||||
/* 8032D8F4 */ void deformFastVtxPos_F32(J3DVertexBuffer*, J3DMtxBuffer*) const;
|
||||
/* 8032DA1C */ void deformFastVtxNrm_F32(J3DVertexBuffer*, J3DMtxBuffer*) const;
|
||||
/* 8032DB50 */ void deformVtxPos_F32(J3DVertexBuffer*, J3DMtxBuffer*) const;
|
||||
/* 8032DC74 */ void deformVtxPos_S16(J3DVertexBuffer*, J3DMtxBuffer*) const;
|
||||
/* 8032DDB8 */ void deformVtxNrm_F32(J3DVertexBuffer*) const;
|
||||
/* 8032DEBC */ void deformVtxNrm_S16(J3DVertexBuffer*) const;
|
||||
/* 8032DFDC */ void deform(J3DModel*);
|
||||
/* 8032E064 */ void deform(J3DVertexBuffer*, J3DMtxBuffer*);
|
||||
/* 8032E1B0 */ ~J3DSkinDeform();
|
||||
|
||||
static u8 sWorkArea_WEvlpMixMtx[4096];
|
||||
static u8 sWorkArea_WEvlpMixWeight[4096];
|
||||
static u8 sWorkArea_MtxReg[2048 + 8 /* padding */];
|
||||
};
|
||||
|
||||
struct J3DShape {
|
||||
/* 80315260 */ void makeVcdVatCmd();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -102,10 +57,6 @@ extern "C" void J3DGQRSetup7__FUlUlUlUl();
|
||||
extern "C" void J3DPSCalcInverseTranspose__FPA4_fPA3_f();
|
||||
extern "C" void makeVcdVatCmd__8J3DShapeFv();
|
||||
extern "C" void DCStoreRange();
|
||||
extern "C" void PSMTXConcat();
|
||||
extern "C" void PSMTXInverse();
|
||||
extern "C" void PSMTXMultVec();
|
||||
extern "C" void PSMTXMultVecSR();
|
||||
extern "C" void __construct_new_array();
|
||||
extern "C" void __save_gpr();
|
||||
extern "C" void _savegpr_17();
|
||||
|
||||
Reference in New Issue
Block a user