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();
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,315 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct _GXCullMode {};
|
||||
|
||||
struct J3DZMode {};
|
||||
|
||||
struct J3DTexMtx {};
|
||||
|
||||
struct J3DTexGenBlockPatched {
|
||||
/* 80317180 */ ~J3DTexGenBlockPatched();
|
||||
/* 80317644 */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DTexGenBlockBasic {
|
||||
/* 803176A4 */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DTexGenBlock4 {
|
||||
/* 80317674 */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DNBTScale {};
|
||||
|
||||
struct J3DTexCoord {
|
||||
/* 8000E464 */ J3DTexCoord();
|
||||
};
|
||||
|
||||
struct J3DTexGenBlock {
|
||||
/* 8000DFD8 */ bool getTexMtx(u32);
|
||||
/* 8000DFE0 */ bool getTexCoord(u32);
|
||||
/* 8000DFE8 */ bool getTexGenNum() const;
|
||||
/* 8000E0CC */ void setTexCoord(u32, J3DTexCoord const*);
|
||||
/* 8031741C */ void setTexGenNum(u32 const*);
|
||||
/* 8000E0D0 */ void setTexGenNum(u32);
|
||||
/* 8003AB2C */ void setTexMtx(u32, J3DTexMtx*);
|
||||
/* 803171DC */ ~J3DTexGenBlock();
|
||||
/* 803172FC */ bool countDLSize();
|
||||
/* 80317334 */ bool getNBTScale();
|
||||
/* 80317354 */ void reset(J3DTexGenBlock*);
|
||||
/* 80317420 */ void setNBTScale(J3DNBTScale);
|
||||
/* 80317424 */ void setNBTScale(J3DNBTScale const*);
|
||||
/* 80317428 */ bool getTexMtxOffset() const;
|
||||
/* 80317430 */ void setTexMtxOffset(u32);
|
||||
};
|
||||
|
||||
struct J3DTevSwapModeTable {
|
||||
/* 8000E134 */ J3DTevSwapModeTable();
|
||||
};
|
||||
|
||||
struct J3DTevStage {
|
||||
/* 8000E230 */ J3DTevStage();
|
||||
};
|
||||
|
||||
struct J3DTevOrder {
|
||||
/* 8000E140 */ J3DTevOrder();
|
||||
};
|
||||
|
||||
struct J3DTevBlock4 {
|
||||
/* 803178EC */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DTevBlock2 {
|
||||
/* 80317810 */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DTevBlock16 {
|
||||
/* 80317A00 */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DTevBlock1 {
|
||||
/* 803177E8 */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DTevBlock {
|
||||
/* 80317224 */ ~J3DTevBlock();
|
||||
/* 8031730C */ bool countDLSize();
|
||||
/* 80317330 */ void load();
|
||||
/* 80317350 */ void reset(J3DTevBlock*);
|
||||
};
|
||||
|
||||
struct J3DPatchedMaterial {
|
||||
/* 80316FB8 */ void initialize();
|
||||
/* 80316FD8 */ void makeDisplayList();
|
||||
/* 80316FDC */ void makeSharedDisplayList();
|
||||
/* 80316FE0 */ void load();
|
||||
/* 80316FFC */ void loadSharedDL();
|
||||
/* 8031703C */ void reset();
|
||||
/* 80317040 */ void change();
|
||||
};
|
||||
|
||||
struct J3DPEBlockFull {
|
||||
/* 80317B58 */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DPEBlockFogOff {
|
||||
/* 80317B34 */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DFog {};
|
||||
|
||||
struct J3DAlphaComp {};
|
||||
|
||||
struct J3DBlend {};
|
||||
|
||||
struct J3DPEBlock {
|
||||
/* 8000DBCC */ void patch();
|
||||
/* 8000DF3C */ bool getZCompLoc() const;
|
||||
/* 8000DF44 */ bool getZMode();
|
||||
/* 8000DF4C */ bool getBlend();
|
||||
/* 8000DF54 */ bool getAlphaComp();
|
||||
/* 8000DF5C */ bool getFog();
|
||||
/* 8000E010 */ void setZCompLoc(u8);
|
||||
/* 80317378 */ void setZCompLoc(u8 const*);
|
||||
/* 8000E014 */ void setZMode(J3DZMode);
|
||||
/* 80317374 */ void setZMode(J3DZMode const*);
|
||||
/* 8000E018 */ void setBlend(J3DBlend const&);
|
||||
/* 80317370 */ void setBlend(J3DBlend const*);
|
||||
/* 8000E01C */ void setAlphaComp(J3DAlphaComp const&);
|
||||
/* 8031736C */ void setAlphaComp(J3DAlphaComp const*);
|
||||
/* 803172B4 */ ~J3DPEBlock();
|
||||
/* 8031731C */ bool countDLSize();
|
||||
/* 80317344 */ void diff(u32);
|
||||
/* 80317348 */ void reset(J3DPEBlock*);
|
||||
/* 8031735C */ void diffFog();
|
||||
/* 80317360 */ void diffBlend();
|
||||
/* 80317364 */ void setFog(J3DFog*);
|
||||
/* 80317368 */ void setFog(J3DFog);
|
||||
/* 80317380 */ void setDither(u8 const*);
|
||||
/* 8031737C */ void setDither(u8);
|
||||
/* 80317384 */ bool getDither() const;
|
||||
/* 8031738C */ bool getFogOffset() const;
|
||||
/* 80317394 */ void setFogOffset(u32);
|
||||
};
|
||||
|
||||
struct J3DDisplayListObj {
|
||||
/* 80312488 */ void newDisplayList(u32);
|
||||
/* 80312508 */ void newSingleDisplayList(u32);
|
||||
/* 80312618 */ void callDL() const;
|
||||
/* 80312644 */ void beginDL();
|
||||
/* 80312698 */ void endDL();
|
||||
/* 803126F4 */ void beginPatch();
|
||||
/* 80312714 */ void endPatch();
|
||||
};
|
||||
|
||||
struct J3DMaterial {
|
||||
/* 803157A0 */ void createColorBlock(u32);
|
||||
/* 803159A0 */ void createTexGenBlock(u32);
|
||||
/* 80315B04 */ void createTevBlock(int);
|
||||
/* 80315E78 */ void createIndBlock(int);
|
||||
/* 80315F60 */ void createPEBlock(u32, u32);
|
||||
/* 80316100 */ void calcSizeColorBlock(u32);
|
||||
/* 80316150 */ void calcSizeTexGenBlock(u32);
|
||||
/* 8031617C */ void calcSizeTevBlock(int);
|
||||
/* 803161C4 */ void calcSizeIndBlock(int);
|
||||
/* 803161D8 */ void calcSizePEBlock(u32, u32);
|
||||
/* 80316240 */ void initialize();
|
||||
/* 80316290 */ void countDLSize();
|
||||
/* 80316344 */ void makeDisplayList_private(J3DDisplayListObj*);
|
||||
/* 80316620 */ void makeDisplayList();
|
||||
/* 80316668 */ void makeSharedDisplayList();
|
||||
/* 8031668C */ void load();
|
||||
/* 803166DC */ void loadSharedDL();
|
||||
/* 80316740 */ void patch();
|
||||
/* 803167D8 */ void diff(u32);
|
||||
/* 803169DC */ void calc(f32 const (*)[4]);
|
||||
/* 80316A54 */ void calcDiffTexMtx(f32 const (*)[4]);
|
||||
/* 80316AB0 */ void setCurrentMtx();
|
||||
/* 80316AC8 */ void calcCurrentMtx();
|
||||
/* 80316D68 */ void copy(J3DMaterial*);
|
||||
/* 80316E14 */ void reset();
|
||||
/* 80316E70 */ void change();
|
||||
/* 80316E90 */ void newSharedDisplayList(u32);
|
||||
/* 80316F24 */ void newSingleSharedDisplayList(u32);
|
||||
};
|
||||
|
||||
struct J3DMatPacket {
|
||||
/* 80312A24 */ void beginDiff();
|
||||
/* 80312A4C */ void endDiff();
|
||||
};
|
||||
|
||||
struct J3DLockedMaterial {
|
||||
/* 80317044 */ void initialize();
|
||||
/* 80317064 */ void makeDisplayList();
|
||||
/* 80317068 */ void makeSharedDisplayList();
|
||||
/* 8031706C */ void load();
|
||||
/* 80317088 */ void loadSharedDL();
|
||||
/* 803170C8 */ void patch();
|
||||
/* 803170CC */ void diff(u32);
|
||||
/* 803170D0 */ void calc(f32 const (*)[4]);
|
||||
/* 803170D4 */ void reset();
|
||||
/* 803170D8 */ void change();
|
||||
};
|
||||
|
||||
struct J3DLightObj {};
|
||||
|
||||
struct J3DIndTexOrder {
|
||||
/* 8000E128 */ J3DIndTexOrder();
|
||||
};
|
||||
|
||||
struct J3DIndTexMtx {
|
||||
/* 8000E064 */ ~J3DIndTexMtx();
|
||||
/* 8000E0F0 */ J3DIndTexMtx();
|
||||
};
|
||||
|
||||
struct J3DIndTexCoordScale {
|
||||
/* 8000E024 */ ~J3DIndTexCoordScale();
|
||||
/* 8000E0E4 */ J3DIndTexCoordScale();
|
||||
};
|
||||
|
||||
struct J3DIndTevStage {
|
||||
/* 8000E14C */ J3DIndTevStage();
|
||||
};
|
||||
|
||||
struct J3DIndBlock {
|
||||
/* 8000DF64 */ bool getIndTexCoordScale(u32);
|
||||
/* 8000DF6C */ bool getIndTexMtx(u32);
|
||||
/* 8000DF74 */ bool getIndTexOrder(u32);
|
||||
/* 8000DF7C */ bool getIndTexStageNum() const;
|
||||
/* 8000E020 */ void setIndTexCoordScale(u32, J3DIndTexCoordScale);
|
||||
/* 80317418 */ void setIndTexCoordScale(u32, J3DIndTexCoordScale const*);
|
||||
/* 8000E060 */ void setIndTexMtx(u32, J3DIndTexMtx);
|
||||
/* 80317414 */ void setIndTexMtx(u32, J3DIndTexMtx const*);
|
||||
/* 8000E0A0 */ void setIndTexStageNum(u8);
|
||||
/* 8031726C */ ~J3DIndBlock();
|
||||
/* 80317314 */ bool countDLSize();
|
||||
/* 8031734C */ void reset(J3DIndBlock*);
|
||||
/* 8031740C */ void setIndTexOrder(u32, J3DIndTexOrder const*);
|
||||
/* 80317410 */ void setIndTexOrder(u32, J3DIndTexOrder);
|
||||
};
|
||||
|
||||
struct J3DIndBlockNull {
|
||||
/* 80317398 */ void diff(u32);
|
||||
/* 8031739C */ void load();
|
||||
/* 803173A0 */ void reset(J3DIndBlock*);
|
||||
/* 803173A4 */ void getType();
|
||||
/* 803173B0 */ ~J3DIndBlockNull();
|
||||
};
|
||||
|
||||
struct J3DIndBlockFull {
|
||||
/* 80317B28 */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DGXColorS10 {
|
||||
/* 8000E460 */ J3DGXColorS10();
|
||||
};
|
||||
|
||||
struct J3DGXColor {
|
||||
/* 8000E538 */ J3DGXColor();
|
||||
};
|
||||
|
||||
struct J3DFogInfo {
|
||||
/* 80325800 */ void operator=(J3DFogInfo const&);
|
||||
};
|
||||
|
||||
struct J3DColorChan {
|
||||
/* 8000E47C */ J3DColorChan();
|
||||
};
|
||||
|
||||
struct J3DColorBlockLightOn {
|
||||
/* 80317580 */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DColorBlockLightOff {
|
||||
/* 803170DC */ ~J3DColorBlockLightOff();
|
||||
/* 8031747C */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DColorBlockAmbientOn {
|
||||
/* 803174DC */ void initialize();
|
||||
};
|
||||
|
||||
struct J3DColorBlock {
|
||||
/* 8000DBD0 */ void patchLight();
|
||||
/* 8000DFF0 */ bool getAmbColor(u32);
|
||||
/* 8000DFF8 */ bool getColorChan(u32);
|
||||
/* 8000E000 */ bool getMatColor(u32);
|
||||
/* 8000E008 */ bool getColorChanNum() const;
|
||||
/* 801A4C0C */ void setAmbColor(u32, J3DGXColor const*);
|
||||
/* 8000E0D4 */ void setAmbColor(u32, J3DGXColor);
|
||||
/* 80317450 */ void setColorChan(u32, J3DColorChan const*);
|
||||
/* 8000E0D8 */ void setColorChan(u32, J3DColorChan const&);
|
||||
/* 80317448 */ void setMatColor(u32, J3DGXColor const*);
|
||||
/* 8000E0DC */ void setMatColor(u32, J3DGXColor);
|
||||
/* 8031744C */ void setColorChanNum(u8 const*);
|
||||
/* 8000E0E0 */ void setColorChanNum(u8);
|
||||
/* 801A4C08 */ void setLight(u32, J3DLightObj*);
|
||||
/* 80317138 */ ~J3DColorBlock();
|
||||
/* 80317304 */ bool countDLSize();
|
||||
/* 80317324 */ void load();
|
||||
/* 80317328 */ s32 getCullMode() const;
|
||||
/* 8031733C */ void patch();
|
||||
/* 80317340 */ void diff(u32);
|
||||
/* 80317358 */ void reset(J3DColorBlock*);
|
||||
/* 80317434 */ void patchMatColor();
|
||||
/* 80317438 */ void diffAmbColor();
|
||||
/* 8031743C */ void diffMatColor();
|
||||
/* 80317440 */ void diffColorChan();
|
||||
/* 80317444 */ void diffLightObj(u32);
|
||||
/* 80317454 */ bool getLight(u32);
|
||||
/* 8031745C */ void setCullMode(u8);
|
||||
/* 80317460 */ void setCullMode(u8 const*);
|
||||
/* 80317464 */ bool getMatColorOffset() const;
|
||||
/* 8031746C */ bool getColorChanOffset() const;
|
||||
/* 80317474 */ void setMatColorOffset(u32);
|
||||
/* 80317478 */ void setColorChanOffset(u32);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -386,7 +77,7 @@ extern "C" void diff__13J3DColorBlockFUl();
|
||||
extern "C" void diff__10J3DPEBlockFUl();
|
||||
extern "C" void reset__10J3DPEBlockFP10J3DPEBlock();
|
||||
extern "C" void reset__11J3DIndBlockFP11J3DIndBlock();
|
||||
extern "C" void reset__11J3DTevBlockFP11J3DTevBlock();
|
||||
extern "C" void reset__11J3DTevBlockFP11J3DTevBlock(J3DTevBlock* param_0);
|
||||
extern "C" void reset__14J3DTexGenBlockFP14J3DTexGenBlock();
|
||||
extern "C" void reset__13J3DColorBlockFP13J3DColorBlock();
|
||||
extern "C" void diffFog__10J3DPEBlockFv();
|
||||
@@ -539,8 +230,6 @@ extern "C" extern void* __vt__13J3DPEBlockOpa[31];
|
||||
extern "C" extern void* __vt__15J3DIndBlockFull[19];
|
||||
extern "C" extern void* __vt__11J3DTevBlock[55];
|
||||
extern "C" extern void* __vt__21J3DColorBlockLightOff[36 + 1 /* padding */];
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" extern u8 __GDCurrentDL[4];
|
||||
extern "C" extern u32 j3dDefaultBlendInfo;
|
||||
extern "C" extern u16 j3dDefaultAlphaCmpID;
|
||||
extern "C" extern u16 j3dDefaultZModeID[1 + 1 /* padding */];
|
||||
@@ -870,7 +559,7 @@ asm void J3DMaterial::initialize() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterial::countDLSize() {
|
||||
asm u32 J3DMaterial::countDLSize() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMaterial/countDLSize__11J3DMaterialFv.s"
|
||||
}
|
||||
@@ -951,7 +640,8 @@ asm void J3DMaterial::diff(u32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterial::calc(f32 const (*param_0)[4]) {
|
||||
extern "C" asm void calc__11J3DMaterialFPA4_Cf() {
|
||||
// asm void J3DMaterial::calc(f32 const (*param_0)[4]) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMaterial/calc__11J3DMaterialFPA4_Cf.s"
|
||||
}
|
||||
@@ -1022,7 +712,7 @@ asm void J3DMaterial::change() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterial::newSharedDisplayList(u32 param_0) {
|
||||
asm s32 J3DMaterial::newSharedDisplayList(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMaterial/newSharedDisplayList__11J3DMaterialFUl.s"
|
||||
}
|
||||
@@ -1033,7 +723,7 @@ asm void J3DMaterial::newSharedDisplayList(u32 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMaterial::newSingleSharedDisplayList(u32 param_0) {
|
||||
asm s32 J3DMaterial::newSingleSharedDisplayList(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DMaterial/newSingleSharedDisplayList__11J3DMaterialFUl.s"
|
||||
}
|
||||
@@ -1051,7 +741,7 @@ asm void J3DPatchedMaterial::initialize() {
|
||||
#pragma pop
|
||||
|
||||
/* 80316FD8-80316FDC 311918 0004+00 1/0 0/0 0/0 .text makeDisplayList__18J3DPatchedMaterialFv */
|
||||
void J3DPatchedMaterial::makeDisplayList() {
|
||||
extern "C" asm void makeDisplayList__18J3DPatchedMaterialFv() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
@@ -1145,7 +835,7 @@ void J3DLockedMaterial::diff(u32 param_0) {
|
||||
}
|
||||
|
||||
/* 803170D0-803170D4 311A10 0004+00 1/0 0/0 0/0 .text calc__17J3DLockedMaterialFPA4_Cf */
|
||||
void J3DLockedMaterial::calc(f32 const (*param_0)[4]) {
|
||||
extern "C" asm void calc__17J3DLockedMaterialFPA4_Cf() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
@@ -1255,7 +945,7 @@ bool J3DPEBlock::countDLSize() {
|
||||
}
|
||||
|
||||
/* 80317324-80317328 311C64 0004+00 1/0 1/0 0/0 .text load__13J3DColorBlockFv */
|
||||
void J3DColorBlock::load() {
|
||||
extern "C" void load__13J3DColorBlockFv() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
@@ -1291,24 +981,24 @@ void J3DPEBlock::diff(u32 param_0) {
|
||||
|
||||
/* 80317348-8031734C 311C88 0004+00 1/0 4/0 0/0 .text reset__10J3DPEBlockFP10J3DPEBlock
|
||||
*/
|
||||
void J3DPEBlock::reset(J3DPEBlock* param_0) {
|
||||
extern "C" void reset__10J3DPEBlockFP10J3DPEBlock() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 8031734C-80317350 311C8C 0004+00 1/0 0/0 0/0 .text reset__11J3DIndBlockFP11J3DIndBlock
|
||||
*/
|
||||
void J3DIndBlock::reset(J3DIndBlock* param_0) {
|
||||
extern "C" void reset__11J3DIndBlockFP11J3DIndBlock() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 80317350-80317354 311C90 0004+00 0/0 1/0 0/0 .text reset__11J3DTevBlockFP11J3DTevBlock
|
||||
*/
|
||||
void J3DTevBlock::reset(J3DTevBlock* param_0) {
|
||||
extern "C" void reset__11J3DTevBlockFP11J3DTevBlock(J3DTevBlock* param_0) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 80317354-80317358 311C94 0004+00 1/0 1/0 0/0 .text reset__14J3DTexGenBlockFP14J3DTexGenBlock */
|
||||
void J3DTexGenBlock::reset(J3DTexGenBlock* param_0) {
|
||||
extern "C" void reset__14J3DTexGenBlockFP14J3DTexGenBlock() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
@@ -1396,7 +1086,7 @@ void J3DIndBlockNull::load() {
|
||||
}
|
||||
|
||||
/* 803173A0-803173A4 311CE0 0004+00 1/0 0/0 0/0 .text reset__15J3DIndBlockNullFP11J3DIndBlock */
|
||||
void J3DIndBlockNull::reset(J3DIndBlock* param_0) {
|
||||
extern "C" asm void reset__15J3DIndBlockNullFP11J3DIndBlock() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
|
||||
@@ -90,7 +90,6 @@ extern "C" void __dl__FPv();
|
||||
extern "C" void setArray__15J3DVertexBufferCFv();
|
||||
extern "C" void loadPreDrawSetting__8J3DShapeCFv();
|
||||
extern "C" void syncJ3DSysFlags__12J3DModelDataCFv();
|
||||
extern "C" void GDInitGDLObj();
|
||||
extern "C" void GDFlushCurrToMem();
|
||||
extern "C" void GDPadCurr32();
|
||||
extern "C" void __ptmf_scall();
|
||||
@@ -101,7 +100,6 @@ extern "C" extern u8 struct_804515B0[4];
|
||||
extern "C" u8 sTexGenBlock__17J3DDifferedTexMtx[4];
|
||||
extern "C" u8 sTexMtxObj__17J3DDifferedTexMtx[4];
|
||||
extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
|
||||
extern "C" extern u8 __GDCurrentDL[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -159,52 +157,42 @@ void J3DDisplayListObj::callDL() const {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80434C70-80434C80 061990 0010+00 2/2 3/3 0/0 .bss sGDLObj__17J3DDisplayListObj */
|
||||
u8 J3DDisplayListObj::sGDLObj[16];
|
||||
GDLObj J3DDisplayListObj::sGDLObj;
|
||||
|
||||
/* 804515A0-804515A8 000AA0 0004+04 3/3 0/0 0/0 .sbss sInterruptFlag__17J3DDisplayListObj
|
||||
*/
|
||||
u8 J3DDisplayListObj::sInterruptFlag[4 + 4 /* padding */];
|
||||
s32 J3DDisplayListObj::sInterruptFlag;
|
||||
|
||||
/* 80312644-80312698 30CF84 0054+00 2/2 1/1 0/0 .text beginDL__17J3DDisplayListObjFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DDisplayListObj::beginDL() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/beginDL__17J3DDisplayListObjFv.s"
|
||||
void J3DDisplayListObj::beginDL() {
|
||||
swapBuffer();
|
||||
sInterruptFlag = OSDisableInterrupts();
|
||||
GDInitGDLObj(&sGDLObj, (u8*)mpData[0], mCapacity);
|
||||
GDSetCurrent(&sGDLObj);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80312698-803126F4 30CFD8 005C+00 1/1 1/1 0/0 .text endDL__17J3DDisplayListObjFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DDisplayListObj::endDL() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/endDL__17J3DDisplayListObjFv.s"
|
||||
u32 J3DDisplayListObj::endDL() {
|
||||
GDPadCurr32();
|
||||
OSRestoreInterrupts(sInterruptFlag);
|
||||
mSize = GDGetGDLObjOffset(&sGDLObj);
|
||||
GDFlushCurrToMem();
|
||||
GDSetCurrent(NULL);
|
||||
return mSize;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803126F4-80312714 30D034 0020+00 0/0 1/1 0/0 .text beginPatch__17J3DDisplayListObjFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DDisplayListObj::beginPatch() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/beginPatch__17J3DDisplayListObjFv.s"
|
||||
void J3DDisplayListObj::beginPatch() {
|
||||
beginDL();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80312714-80312750 30D054 003C+00 0/0 1/1 0/0 .text endPatch__17J3DDisplayListObjFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DDisplayListObj::endPatch() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/endPatch__17J3DDisplayListObjFv.s"
|
||||
u32 J3DDisplayListObj::endPatch() {
|
||||
OSRestoreInterrupts(sInterruptFlag);
|
||||
GDSetCurrent(NULL);
|
||||
return mSize;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80312750-80312758 30D090 0008+00 3/0 16/0 10/0 .text entry__9J3DPacketFP13J3DDrawBuffer */
|
||||
bool J3DPacket::entry(J3DDrawBuffer* param_0) {
|
||||
@@ -222,16 +210,11 @@ void J3DPacket::addChildPacket(J3DPacket* pPacket) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803CD900-803CD920 02AA20 0020+00 1/1 0/0 0/0 .data sDifferedRegister */
|
||||
SECTION_DATA static u8 sDifferedRegister[32] = {
|
||||
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00,
|
||||
0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
};
|
||||
SECTION_DATA static u32 sDifferedRegister[8] = {0x00000004, 0x00000001, 0x00000002, 0x01000000,
|
||||
0x10000000, 0x20000000, 0x02000000, 0x08000000};
|
||||
|
||||
/* 803CD920-803CD940 02AA40 0020+00 1/1 0/0 0/0 .data sSizeOfDiffered */
|
||||
SECTION_DATA static u8 sSizeOfDiffered[32] = {
|
||||
0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x78,
|
||||
0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x2D,
|
||||
};
|
||||
SECTION_DATA static s32 sSizeOfDiffered[8] = {13, 13, 21, 120, 55, 15, 19, 45};
|
||||
|
||||
/* 803CD940-803CD954 02AA60 0014+00 2/2 0/0 0/0 .data __vt__14J3DShapePacket */
|
||||
SECTION_DATA extern void* __vt__14J3DShapePacket[5] = {
|
||||
@@ -270,14 +253,11 @@ SECTION_DATA extern void* __vt__9J3DPacket[5] = {
|
||||
};
|
||||
|
||||
/* 80312778-803127B0 30D0B8 0038+00 2/2 0/0 0/0 .text __ct__13J3DDrawPacketFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DDrawPacket::J3DDrawPacket() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/__ct__13J3DDrawPacketFv.s"
|
||||
J3DDrawPacket::J3DDrawPacket() {
|
||||
mFlags = 0;
|
||||
mpDisplayListObj = NULL;
|
||||
mpTexMtx = NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803127B0-8031280C 30D0F0 005C+00 3/2 0/0 0/0 .text __dt__13J3DDrawPacketFv */
|
||||
#pragma push
|
||||
@@ -291,6 +271,18 @@ asm J3DDrawPacket::~J3DDrawPacket() {
|
||||
|
||||
/* 8031280C-80312898 30D14C 008C+00 1/1 1/1 0/0 .text newDisplayList__13J3DDrawPacketFUl
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
J3DError J3DDrawPacket::newDisplayList(u32 param_0) {
|
||||
mpDisplayListObj = new J3DDisplayListObj();
|
||||
|
||||
if (mpDisplayListObj == NULL) {
|
||||
return kJ3DError_Alloc;
|
||||
} else if (mpDisplayListObj->newDisplayList(param_0)) {
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -299,8 +291,21 @@ asm J3DError J3DDrawPacket::newDisplayList(u32 param_0) {
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/newDisplayList__13J3DDrawPacketFUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80312898-80312924 30D1D8 008C+00 0/0 1/1 0/0 .text newSingleDisplayList__13J3DDrawPacketFUl */
|
||||
#ifdef NONMATCHING
|
||||
J3DError J3DDrawPacket::newSingleDisplayList(u32 param_0) {
|
||||
mpDisplayListObj = new J3DDisplayListObj();
|
||||
|
||||
if (mpDisplayListObj == NULL) {
|
||||
return kJ3DError_Alloc;
|
||||
} else if (mpDisplayListObj->newSingleDisplayList(param_0)) {
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -309,30 +314,24 @@ asm J3DError J3DDrawPacket::newSingleDisplayList(u32 param_0) {
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/newSingleDisplayList__13J3DDrawPacketFUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
void J3DDrawPacket::draw() {
|
||||
mpDisplayListObj->callDL();
|
||||
}
|
||||
|
||||
/* 80312948-803129A4 30D288 005C+00 0/0 1/1 0/0 .text __ct__12J3DMatPacketFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DMatPacket::J3DMatPacket() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/__ct__12J3DMatPacketFv.s"
|
||||
J3DMatPacket::J3DMatPacket() {
|
||||
mpShapePacket = NULL;
|
||||
mpFirstShapePacket = NULL;
|
||||
mpMaterial = NULL;
|
||||
mSortFlags = -1;
|
||||
mpTexture = NULL;
|
||||
mpMaterialAnm = NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803129A4-80312A04 30D2E4 0060+00 1/0 1/1 0/0 .text __dt__12J3DMatPacketFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DMatPacket::~J3DMatPacket() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/__dt__12J3DMatPacketFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
J3DMatPacket::~J3DMatPacket() {}
|
||||
|
||||
void J3DMatPacket::addShapePacket(J3DShapePacket* pShape) {
|
||||
if (mpFirstShapePacket == NULL) {
|
||||
@@ -352,14 +351,14 @@ void J3DMatPacket::endDiff() {
|
||||
}
|
||||
|
||||
/* 80312A74-80312A9C 30D3B4 0028+00 0/0 1/1 0/0 .text isSame__12J3DMatPacketCFP12J3DMatPacket */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMatPacket::isSame(J3DMatPacket* param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/isSame__12J3DMatPacketCFP12J3DMatPacket.s"
|
||||
bool J3DMatPacket::isSame(J3DMatPacket* pOther) const {
|
||||
bool isSame = false;
|
||||
|
||||
if (mSortFlags == pOther->mSortFlags && !(mSortFlags >> 0x1F)) {
|
||||
isSame = true;
|
||||
}
|
||||
return isSame;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80312A9C-80312B20 30D3DC 0084+00 1/0 0/0 0/0 .text draw__12J3DMatPacketFv */
|
||||
#pragma push
|
||||
@@ -372,31 +371,23 @@ asm void J3DMatPacket::draw() {
|
||||
#pragma pop
|
||||
|
||||
/* 80312B20-80312B74 30D460 0054+00 0/0 1/1 0/0 .text __ct__14J3DShapePacketFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DShapePacket::J3DShapePacket() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/__ct__14J3DShapePacketFv.s"
|
||||
J3DShapePacket::J3DShapePacket() {
|
||||
mpShape = NULL;
|
||||
mpMtxBuffer = NULL;
|
||||
mpViewMtx = NULL;
|
||||
mDiffFlag = 0;
|
||||
mpModel = NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80312B74-80312BD4 30D4B4 0060+00 1/0 1/1 0/0 .text __dt__14J3DShapePacketFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DShapePacket::~J3DShapePacket() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/__dt__14J3DShapePacketFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
J3DShapePacket::~J3DShapePacket() {}
|
||||
|
||||
/* 80312BD4-80312DBC 30D514 01E8+00 1/1 0/0 0/0 .text calcDifferedBufferSize__14J3DShapePacketFUl
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShapePacket::calcDifferedBufferSize(u32 param_0) {
|
||||
asm u32 J3DShapePacket::calcDifferedBufferSize(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/calcDifferedBufferSize__14J3DShapePacketFUl.s"
|
||||
}
|
||||
@@ -404,14 +395,18 @@ asm void J3DShapePacket::calcDifferedBufferSize(u32 param_0) {
|
||||
|
||||
/* 80312DBC-80312E08 30D6FC 004C+00 0/0 1/1 0/0 .text newDifferedDisplayList__14J3DShapePacketFUl
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShapePacket::newDifferedDisplayList(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DPacket/newDifferedDisplayList__14J3DShapePacketFUl.s"
|
||||
J3DError J3DShapePacket::newDifferedDisplayList(u32 flag) {
|
||||
mDiffFlag = flag;
|
||||
u32 bufSize = calcDifferedBufferSize(flag);
|
||||
J3DError error = newDisplayList(bufSize);
|
||||
|
||||
if (error != kJ3DError_Success) {
|
||||
return error;
|
||||
}
|
||||
|
||||
setDisplayListObj(getDisplayListObj());
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80312E08-80312F24 30D748 011C+00 2/2 0/0 0/0 .text prepareDraw__14J3DShapePacketCFv */
|
||||
#pragma push
|
||||
|
||||
@@ -177,7 +177,7 @@ asm void J3DShape::loadVtxArray() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DShape::isSameVcdVatCmd(J3DShape* param_0) {
|
||||
asm bool J3DShape::isSameVcdVatCmd(J3DShape* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShape/isSameVcdVatCmd__8J3DShapeFP8J3DShape.s"
|
||||
}
|
||||
|
||||
@@ -18,54 +18,6 @@ struct J3DSys {
|
||||
/* 8030FEE4 */ void loadNrmMtxIndx(int, u16) const;
|
||||
};
|
||||
|
||||
struct J3DShapeMtxYBBoardConcatView {
|
||||
/* 803143E4 */ void load() const;
|
||||
/* 80314520 */ ~J3DShapeMtxYBBoardConcatView();
|
||||
/* 8031458C */ void getType() const;
|
||||
};
|
||||
|
||||
struct J3DShapeMtxMultiConcatView {
|
||||
/* 80313FA4 */ void load() const;
|
||||
/* 803146AC */ void loadNrmMtx(int, u16) const;
|
||||
/* 8031419C */ void loadNrmMtx(int, u16, f32 (*)[4]) const;
|
||||
/* 8031461C */ ~J3DShapeMtxMultiConcatView();
|
||||
/* 80314688 */ void getType() const;
|
||||
/* 80314694 */ void getUseMtxNum() const;
|
||||
/* 8031469C */ void getUseMtxIndex(u16) const;
|
||||
};
|
||||
|
||||
struct J3DShapeMtxMulti {
|
||||
/* 80313E4C */ void load() const;
|
||||
/* 80313EEC */ void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]);
|
||||
/* 803146B0 */ ~J3DShapeMtxMulti();
|
||||
/* 8031470C */ void getType() const;
|
||||
/* 80314718 */ void getUseMtxNum() const;
|
||||
/* 80314720 */ void getUseMtxIndex(u16) const;
|
||||
};
|
||||
|
||||
struct J3DShapeMtxConcatView {
|
||||
/* 80313828 */ void loadMtxConcatView_PNGP(int, u16) const;
|
||||
/* 803138C8 */ void loadMtxConcatView_PCPU(int, u16) const;
|
||||
/* 8031396C */ void loadMtxConcatView_NCPU(int, u16) const;
|
||||
/* 80313A14 */ void loadMtxConcatView_PNCPU(int, u16) const;
|
||||
/* 80313AC8 */ void loadMtxConcatView_PNGP_LOD(int, u16) const;
|
||||
/* 80313C54 */ void load() const;
|
||||
/* 80313D28 */ void loadNrmMtx(int, u16, f32 (*)[4]) const;
|
||||
/* 80314598 */ void loadNrmMtx(int, u16) const;
|
||||
/* 80314730 */ ~J3DShapeMtxConcatView();
|
||||
/* 8031478C */ void getType() const;
|
||||
|
||||
static u8 sMtxLoadPipeline[48];
|
||||
static u8 sMtxLoadLODPipeline[48];
|
||||
static u8 sMtxPtrTbl[8];
|
||||
};
|
||||
|
||||
struct J3DShapeMtxBBoardConcatView {
|
||||
/* 803142D4 */ void load() const;
|
||||
/* 803145A4 */ ~J3DShapeMtxBBoardConcatView();
|
||||
/* 80314610 */ void getType() const;
|
||||
};
|
||||
|
||||
struct J3DDifferedTexMtx {
|
||||
/* 8031322C */ void loadExecute(f32 const (*)[4]);
|
||||
|
||||
@@ -718,7 +670,8 @@ SECTION_DATA extern void* __vt__11J3DShapeMtx[8 + 1 /* padding */] = {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DShapeMtxYBBoardConcatView::~J3DShapeMtxYBBoardConcatView() {
|
||||
extern "C" asm void __dt__28J3DShapeMtxYBBoardConcatViewFv() {
|
||||
// asm J3DShapeMtxYBBoardConcatView::~J3DShapeMtxYBBoardConcatView() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__28J3DShapeMtxYBBoardConcatViewFv.s"
|
||||
}
|
||||
@@ -755,7 +708,8 @@ asm void J3DShapeMtx::getUseMtxIndex(u16 param_0) const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DShapeMtxBBoardConcatView::~J3DShapeMtxBBoardConcatView() {
|
||||
extern "C" asm void __dt__27J3DShapeMtxBBoardConcatViewFv() {
|
||||
// asm J3DShapeMtxBBoardConcatView::~J3DShapeMtxBBoardConcatView() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__27J3DShapeMtxBBoardConcatViewFv.s"
|
||||
}
|
||||
@@ -775,7 +729,8 @@ asm void J3DShapeMtxBBoardConcatView::getType() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DShapeMtxMultiConcatView::~J3DShapeMtxMultiConcatView() {
|
||||
extern "C" asm void __dt__26J3DShapeMtxMultiConcatViewFv() {
|
||||
// asm J3DShapeMtxMultiConcatView::~J3DShapeMtxMultiConcatView() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__26J3DShapeMtxMultiConcatViewFv.s"
|
||||
}
|
||||
@@ -823,7 +778,8 @@ void J3DShapeMtxMultiConcatView::loadNrmMtx(int param_0, u16 param_1) const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DShapeMtxMulti::~J3DShapeMtxMulti() {
|
||||
extern "C" asm void __dt__16J3DShapeMtxMultiFv() {
|
||||
// asm J3DShapeMtxMulti::~J3DShapeMtxMulti() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__16J3DShapeMtxMultiFv.s"
|
||||
}
|
||||
@@ -864,7 +820,8 @@ asm void J3DShapeMtxMulti::getUseMtxIndex(u16 param_0) const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DShapeMtxConcatView::~J3DShapeMtxConcatView() {
|
||||
extern "C" asm void __dt__21J3DShapeMtxConcatViewFv() {
|
||||
// asm J3DShapeMtxConcatView::~J3DShapeMtxConcatView() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__21J3DShapeMtxConcatViewFv.s"
|
||||
}
|
||||
|
||||
@@ -114,10 +114,10 @@ J3DSys j3dSys;
|
||||
Mtx J3DSys::mCurrentMtx;
|
||||
|
||||
/* 80434C14-80434C20 061934 000C+00 0/0 6/6 0/0 .bss mCurrentS__6J3DSys */
|
||||
f32 J3DSys::mCurrentS[3];
|
||||
Vec J3DSys::mCurrentS;
|
||||
|
||||
/* 80434C20-80434C2C 061940 000C+00 0/0 5/5 0/0 .bss mParentS__6J3DSys */
|
||||
f32 J3DSys::mParentS[3];
|
||||
Vec J3DSys::mParentS;
|
||||
|
||||
/* 80434C2C-80434C70 06194C 0040+04 1/1 17/17 0/0 .bss sTexCoordScaleTable__6J3DSys */
|
||||
u16 J3DSys::sTexCoordScaleTable[34];
|
||||
|
||||
@@ -7,20 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct _GXTexMapID {};
|
||||
|
||||
struct ResTIMG {};
|
||||
|
||||
struct J3DTexture {
|
||||
/* 8031204C */ void loadGX(u16, _GXTexMapID) const;
|
||||
/* 803121A4 */ void entryNum(u16);
|
||||
/* 8031221C */ void addResTIMG(u16, ResTIMG const*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -34,12 +20,6 @@ extern "C" void addResTIMG__10J3DTextureFUsPC7ResTIMG();
|
||||
//
|
||||
|
||||
extern "C" void* __nwa__FUl();
|
||||
extern "C" void GXInitTexObj();
|
||||
extern "C" void GXInitTexObjCI();
|
||||
extern "C" void GXInitTexObjLOD();
|
||||
extern "C" void GXLoadTexObj();
|
||||
extern "C" void GXInitTlutObj();
|
||||
extern "C" void GXLoadTlut();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_28();
|
||||
|
||||
|
||||
@@ -11,14 +11,10 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
|
||||
struct J3DTransformInfo {};
|
||||
|
||||
struct J3DTextureSRTInfo {};
|
||||
|
||||
//
|
||||
@@ -46,7 +42,6 @@ extern "C" extern u8 PSMulUnit01[8];
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void PSVECNormalize();
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
|
||||
//
|
||||
@@ -93,25 +88,15 @@ asm void J3DCalcBBoardMtx(f32 (*param_0)[4]) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A1E30-803A1E50 02E490 0020+00 0/0 1/1 0/0 .rodata j3dDefaultTransformInfo */
|
||||
SECTION_RODATA extern u8 const j3dDefaultTransformInfo[32] = {
|
||||
0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803A1E30, &j3dDefaultTransformInfo);
|
||||
extern J3DTransformInfo const j3dDefaultTransformInfo = {
|
||||
{1.0f, 1.0f, 1.0f}, {0, 0, 0}, {0.0f, 0.0f, 0.0f}};
|
||||
|
||||
/* 803A1E50-803A1E5C 02E4B0 000C+00 0/0 1/1 0/0 .rodata j3dDefaultScale */
|
||||
SECTION_RODATA extern u8 const j3dDefaultScale[12] = {
|
||||
0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803A1E50, &j3dDefaultScale);
|
||||
extern Vec const j3dDefaultScale = {1.0f, 1.0f, 1.0f};
|
||||
|
||||
/* 803A1E5C-803A1E8C 02E4BC 0030+00 0/0 8/8 7/7 .rodata j3dDefaultMtx */
|
||||
SECTION_RODATA extern u8 const j3dDefaultMtx[48] = {
|
||||
0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803A1E5C, &j3dDefaultMtx);
|
||||
extern Mtx const j3dDefaultMtx = {
|
||||
{1.0f, 0.0f, 0.0f, 0.0f}, {0.0f, 1.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 1.0f, 0.0f}};
|
||||
|
||||
/* 803A1E8C-803A1E98 02E4EC 000C+00 1/1 0/0 0/0 .rodata @443 */
|
||||
SECTION_RODATA static u8 const lit_443[12] = {
|
||||
|
||||
@@ -4,33 +4,13 @@
|
||||
//
|
||||
|
||||
#include "JSystem/J3DGraphBase/J3DVertex.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DJointTree.h"
|
||||
#include "JSystem/J3DGraphBase/J3DSys.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os/OSCache.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J3DVertexData {
|
||||
/* 80310EF8 */ J3DVertexData();
|
||||
};
|
||||
|
||||
struct J3DVertexBuffer {
|
||||
/* 80310F78 */ void setVertexData(J3DVertexData*);
|
||||
/* 80310FD8 */ void init();
|
||||
/* 80311030 */ ~J3DVertexBuffer();
|
||||
/* 8031106C */ void setArray() const;
|
||||
/* 80311090 */ void copyLocalVtxPosArray(u32);
|
||||
/* 803111B0 */ void copyLocalVtxNrmArray(u32);
|
||||
/* 803112D0 */ void copyLocalVtxArray(u32);
|
||||
/* 80311478 */ void allocTransformedVtxPosArray();
|
||||
/* 8031152C */ void allocTransformedVtxNrmArray();
|
||||
};
|
||||
|
||||
struct J3DDrawMtxData {
|
||||
/* 803115E0 */ J3DDrawMtxData();
|
||||
/* 803115F4 */ ~J3DDrawMtxData();
|
||||
};
|
||||
#include "init.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -53,143 +33,269 @@ extern "C" void __dt__14J3DDrawMtxDataFv();
|
||||
// External References:
|
||||
//
|
||||
|
||||
SECTION_INIT void memcpy();
|
||||
extern "C" void* __nwa__FUli();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void DCStoreRange();
|
||||
extern "C" void _savegpr_24();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80310EF8-80310F78 30B838 0080+00 0/0 1/1 0/0 .text __ct__13J3DVertexDataFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DVertexData::J3DVertexData() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/__ct__13J3DVertexDataFv.s"
|
||||
J3DVertexData::J3DVertexData() {
|
||||
mVtxNum = 0;
|
||||
mNrmNum = 0;
|
||||
mColNum = 0;
|
||||
field_0xc = 0;
|
||||
field_0x10 = 0;
|
||||
|
||||
mVtxAttrFmtList = NULL;
|
||||
mVtxPosArray = NULL;
|
||||
mVtxNrmArray = NULL;
|
||||
mVtxNBTArray = NULL;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mVtxColorArray[i] = NULL;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
mVtxTexCoordArray[i] = NULL;
|
||||
}
|
||||
|
||||
mVtxPosFrac = 0;
|
||||
mVtxPosType = GX_F32;
|
||||
mVtxNrmFrac = 0;
|
||||
mVtxNrmType = GX_F32;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80310F78-80310FD8 30B8B8 0060+00 0/0 1/1 0/0 .text
|
||||
* setVertexData__15J3DVertexBufferFP13J3DVertexData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DVertexBuffer::setVertexData(J3DVertexData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/setVertexData__15J3DVertexBufferFP13J3DVertexData.s"
|
||||
void J3DVertexBuffer::setVertexData(J3DVertexData* pVtxData) {
|
||||
mVtxData = pVtxData;
|
||||
mVtxPosArray[0] = pVtxData->getVtxPosArray();
|
||||
mVtxNrmArray[0] = pVtxData->getVtxNrmArray();
|
||||
mVtxColArray[0] = pVtxData->getVtxColorArray(0);
|
||||
mVtxPosArray[1] = NULL;
|
||||
mVtxNrmArray[1] = NULL;
|
||||
mVtxColArray[1] = NULL;
|
||||
|
||||
mTransformedVtxPosArray[0] = pVtxData->getVtxPosArray();
|
||||
mTransformedVtxNrmArray[0] = pVtxData->getVtxNrmArray();
|
||||
mTransformedVtxPosArray[1] = NULL;
|
||||
mTransformedVtxNrmArray[1] = NULL;
|
||||
|
||||
frameInit();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80310FD8-80311030 30B918 0058+00 0/0 3/3 0/0 .text init__15J3DVertexBufferFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DVertexBuffer::init() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/init__15J3DVertexBufferFv.s"
|
||||
void J3DVertexBuffer::init() {
|
||||
mVtxData = NULL;
|
||||
|
||||
mVtxPosArray[1] = NULL;
|
||||
mVtxPosArray[0] = NULL;
|
||||
|
||||
mVtxNrmArray[1] = NULL;
|
||||
mVtxNrmArray[0] = NULL;
|
||||
|
||||
mVtxColArray[1] = NULL;
|
||||
mVtxColArray[0] = NULL;
|
||||
|
||||
mTransformedVtxPosArray[1] = NULL;
|
||||
mTransformedVtxPosArray[0] = NULL;
|
||||
|
||||
mTransformedVtxNrmArray[1] = NULL;
|
||||
mTransformedVtxNrmArray[0] = NULL;
|
||||
|
||||
mCurrentVtxPos = NULL;
|
||||
mCurrentVtxNrm = NULL;
|
||||
mCurrentVtxCol = NULL;
|
||||
|
||||
frameInit();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80311030-8031106C 30B970 003C+00 0/0 1/1 0/0 .text __dt__15J3DVertexBufferFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DVertexBuffer::~J3DVertexBuffer() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/__dt__15J3DVertexBufferFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
J3DVertexBuffer::~J3DVertexBuffer() {}
|
||||
|
||||
/* 8031106C-80311090 30B9AC 0024+00 0/0 1/1 0/0 .text setArray__15J3DVertexBufferCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DVertexBuffer::setArray() const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/setArray__15J3DVertexBufferCFv.s"
|
||||
void J3DVertexBuffer::setArray() const {
|
||||
j3dSys.setVtxPos(mCurrentVtxPos);
|
||||
j3dSys.setVtxNrm(mCurrentVtxNrm);
|
||||
j3dSys.setVtxCol(mCurrentVtxCol);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80311090-803111B0 30B9D0 0120+00 1/1 0/0 0/0 .text copyLocalVtxPosArray__15J3DVertexBufferFUl
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DVertexBuffer::copyLocalVtxPosArray(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/copyLocalVtxPosArray__15J3DVertexBufferFUl.s"
|
||||
s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 param_0) {
|
||||
if (param_0 & 1) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()];
|
||||
|
||||
if (mVtxPosArray[i] == NULL) {
|
||||
return 4;
|
||||
}
|
||||
memcpy(mVtxPosArray[i], mVtxData->getVtxPosArray(), mVtxData->getVtxNum() * 12);
|
||||
DCStoreRange(mVtxPosArray[i], mVtxData->getVtxNum() * 12);
|
||||
}
|
||||
} else {
|
||||
mVtxPosArray[0] = mVtxData->getVtxPosArray();
|
||||
|
||||
if (mVtxPosArray[1] == NULL) {
|
||||
mVtxPosArray[1] = new (0x20) VertexPosition[mVtxData->getVtxNum()];
|
||||
if (mVtxPosArray[1] == NULL) {
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
memcpy(mVtxPosArray[1], mVtxData->getVtxPosArray(), mVtxData->getVtxNum() * 12);
|
||||
DCStoreRange(mVtxPosArray[1], mVtxData->getVtxNum() * 12);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803111B0-803112D0 30BAF0 0120+00 1/1 0/0 0/0 .text copyLocalVtxNrmArray__15J3DVertexBufferFUl
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DVertexBuffer::copyLocalVtxNrmArray(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/copyLocalVtxNrmArray__15J3DVertexBufferFUl.s"
|
||||
s32 J3DVertexBuffer::copyLocalVtxNrmArray(u32 param_0) {
|
||||
if (param_0 & 1) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mVtxNrmArray[i] = new (0x20) VertexNormal[mVtxData->getNrmNum()];
|
||||
|
||||
if (mVtxNrmArray[i] == NULL) {
|
||||
return 4;
|
||||
}
|
||||
memcpy(mVtxNrmArray[i], mVtxData->getVtxNrmArray(), mVtxData->getNrmNum() * 12);
|
||||
DCStoreRange(mVtxNrmArray[i], mVtxData->getNrmNum() * 12);
|
||||
}
|
||||
} else {
|
||||
mVtxNrmArray[0] = mVtxData->getVtxNrmArray();
|
||||
|
||||
if (mVtxNrmArray[1] == NULL) {
|
||||
mVtxNrmArray[1] = new (0x20) VertexNormal[mVtxData->getNrmNum()];
|
||||
if (mVtxNrmArray[1] == NULL) {
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
memcpy(mVtxNrmArray[1], mVtxData->getVtxNrmArray(), mVtxData->getNrmNum() * 12);
|
||||
DCStoreRange(mVtxNrmArray[1], mVtxData->getNrmNum() * 12);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803112D0-80311478 30BC10 01A8+00 0/0 1/1 0/0 .text copyLocalVtxArray__15J3DVertexBufferFUl */
|
||||
#ifdef NONMATCHING
|
||||
s32 J3DVertexBuffer::copyLocalVtxArray(u32 param_0) {
|
||||
void* local_30[5];
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
local_30[i] = mVtxPosArray[i];
|
||||
}
|
||||
|
||||
if (~param_0 & 2) {
|
||||
s32 tmp = copyLocalVtxPosArray(param_0);
|
||||
if (tmp != 0) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (local_30[i + 2] != mVtxPosArray[i]) {
|
||||
if (mVtxPosArray[i] != mVtxData->getVtxPosArray()) {
|
||||
delete mVtxPosArray[i];
|
||||
}
|
||||
mVtxPosArray[i] = local_30[i + 2];
|
||||
}
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
} else {
|
||||
void* vtxPosArray = mVtxData->getVtxPosArray();
|
||||
mVtxPosArray[1] = vtxPosArray;
|
||||
mVtxPosArray[0] = vtxPosArray;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
local_30[i] = mVtxNrmArray[i];
|
||||
}
|
||||
|
||||
if (~param_0 & 4) {
|
||||
s32 tmp = copyLocalVtxNrmArray(param_0);
|
||||
if (tmp != 0) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (local_30[i + 2] != mVtxPosArray[i]) {
|
||||
if (mVtxPosArray[i] != mVtxData->getVtxPosArray()) {
|
||||
delete mVtxPosArray[i];
|
||||
}
|
||||
mVtxPosArray[i] = local_30[i + 2];
|
||||
}
|
||||
if (local_30[i] != mVtxNrmArray[i]) {
|
||||
if (mVtxNrmArray[i] != mVtxData->getVtxNrmArray()) {
|
||||
delete mVtxNrmArray[i];
|
||||
}
|
||||
mVtxNrmArray[i] = local_30[i];
|
||||
}
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
} else {
|
||||
void* vtxNrmArray = mVtxData->getVtxNrmArray();
|
||||
mVtxNrmArray[1] = vtxNrmArray;
|
||||
mVtxNrmArray[0] = vtxNrmArray;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DVertexBuffer::copyLocalVtxArray(u32 param_0) {
|
||||
asm s32 J3DVertexBuffer::copyLocalVtxArray(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/copyLocalVtxArray__15J3DVertexBufferFUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80311478-8031152C 30BDB8 00B4+00 0/0 1/1 0/0 .text
|
||||
* allocTransformedVtxPosArray__15J3DVertexBufferFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DVertexBuffer::allocTransformedVtxPosArray() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/allocTransformedVtxPosArray__15J3DVertexBufferFv.s"
|
||||
s32 J3DVertexBuffer::allocTransformedVtxPosArray() {
|
||||
if (mTransformedVtxPosArray[0] != NULL && mTransformedVtxPosArray[1] != NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (i == 0 || mTransformedVtxPosArray[i] == NULL) {
|
||||
mTransformedVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()];
|
||||
if (mTransformedVtxPosArray[i] == NULL) {
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8031152C-803115E0 30BE6C 00B4+00 0/0 1/1 0/0 .text
|
||||
* allocTransformedVtxNrmArray__15J3DVertexBufferFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DVertexBuffer::allocTransformedVtxNrmArray() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/allocTransformedVtxNrmArray__15J3DVertexBufferFv.s"
|
||||
s32 J3DVertexBuffer::allocTransformedVtxNrmArray() {
|
||||
if (mTransformedVtxNrmArray[0] != NULL && mTransformedVtxNrmArray[1] != NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (i == 0 || mTransformedVtxNrmArray[i] == NULL) {
|
||||
mTransformedVtxNrmArray[i] = new (0x20) VertexNormal[mVtxData->getNrmNum()];
|
||||
if (mTransformedVtxNrmArray[i] == NULL) {
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803115E0-803115F4 30BF20 0014+00 0/0 1/1 0/0 .text __ct__14J3DDrawMtxDataFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DDrawMtxData::J3DDrawMtxData() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/__ct__14J3DDrawMtxDataFv.s"
|
||||
J3DDrawMtxData::J3DDrawMtxData() {
|
||||
mEntryNum = 0;
|
||||
mDrawMtxFlag = NULL;
|
||||
mDrawMtxIndex = NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803115F4-80311630 30BF34 003C+00 0/0 2/2 0/0 .text __dt__14J3DDrawMtxDataFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DDrawMtxData::~J3DDrawMtxData() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphBase/J3DVertex/__dt__14J3DDrawMtxDataFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
J3DDrawMtxData::~J3DDrawMtxData() {}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user