summaryrefslogtreecommitdiff
path: root/src/JSystem/J3DGraphAnimator/J3DModel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/JSystem/J3DGraphAnimator/J3DModel.cpp')
-rw-r--r--src/JSystem/J3DGraphAnimator/J3DModel.cpp333
1 files changed, 184 insertions, 149 deletions
diff --git a/src/JSystem/J3DGraphAnimator/J3DModel.cpp b/src/JSystem/J3DGraphAnimator/J3DModel.cpp
index 7632bfe58a..92879e4e89 100644
--- a/src/JSystem/J3DGraphAnimator/J3DModel.cpp
+++ b/src/JSystem/J3DGraphAnimator/J3DModel.cpp
@@ -1,13 +1,10 @@
-//
-// Generated By: dol2asm
-// Translation Unit: J3DModel
-//
-
#include "JSystem/J3DGraphAnimator/J3DModel.h"
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "JSystem/J3DGraphBase/J3DShapeMtx.h"
-#include "dolphin/os.h"
+
+#define J3D_ASSERTMSG(LINE, COND, MSG) JUT_ASSERT_MSG(LINE, (COND) != 0, MSG)
+#define J3D_WARN1(LINE, MSG, ARG1) JUT_WARN(LINE, MSG, ARG1)
/* 80327100-80327184 321A40 0084+00 0/0 3/3 0/0 .text initialize__8J3DModelFv */
void J3DModel::initialize() {
@@ -36,72 +33,80 @@ void J3DModel::initialize() {
/* 80327184-80327300 321AC4 017C+00 0/0 3/3 0/0 .text
* entryModelData__8J3DModelFP12J3DModelDataUlUl */
-s32 J3DModel::entryModelData(J3DModelData* p_modelData, u32 modelFlag, u32 mtxBufferFlag) {
- mModelData = p_modelData;
+s32 J3DModel::entryModelData(J3DModelData* pModelData, u32 mdlFlags, u32 mtxNum) {
+ J3D_ASSERTMSG(83, pModelData != NULL, "Error : null pointer.");
+ J3D_ASSERTMSG(84, mtxNum != 0, "Error : non-zero argument is specified 0.");
+ int ret = kJ3DError_Success;
+
+ mModelData = pModelData;
mMtxBuffer = new J3DMtxBuffer();
if (mMtxBuffer == NULL) {
- return 4;
+ return kJ3DError_Alloc;
}
- s32 ret = mMtxBuffer->create(p_modelData, mtxBufferFlag);
- if (ret) {
+ ret = mMtxBuffer->create(pModelData, mtxNum);
+ if (ret != kJ3DError_Success) {
return ret;
}
- ret = createShapePacket(p_modelData);
- if (ret) {
+
+ ret = createShapePacket(pModelData);
+ if (ret != kJ3DError_Success) {
return ret;
}
- ret = createMatPacket(p_modelData, modelFlag);
- if (ret) {
+
+ ret = createMatPacket(pModelData, mdlFlags);
+ if (ret != kJ3DError_Success) {
return ret;
}
- mVertexBuffer.setVertexData(&p_modelData->getVertexData());
+ mVertexBuffer.setVertexData(&pModelData->getVertexData());
prepareShapePackets();
- if (modelFlag & J3DMdlFlag_Unk00001) {
- onFlag(J3DMdlFlag_Unk00001);
+ if (mdlFlags & J3DMdlFlag_Unk1) {
+ onFlag(J3DMdlFlag_Unk1);
}
- if (modelFlag & J3DMdlFlag_Unk00002) {
- onFlag(J3DMdlFlag_Unk00002);
+ if (mdlFlags & J3DMdlFlag_UseDefaultJ3D) {
+ onFlag(J3DMdlFlag_UseDefaultJ3D);
}
- if (modelFlag & J3DMdlFlag_Unk00010) {
- onFlag(J3DMdlFlag_Unk00010);
+ if (mdlFlags & J3DMdlFlag_EnableLOD) {
+ onFlag(J3DMdlFlag_EnableLOD);
}
- if (modelFlag & J3DMdlFlag_Unk20000) {
- onFlag(J3DMdlFlag_Unk20000);
+ if (mdlFlags & J3DMdlFlag_UseSharedDL) {
+ onFlag(J3DMdlFlag_UseSharedDL);
}
- if (modelFlag & J3DMdlFlag_Unk40000) {
- onFlag(J3DMdlFlag_Unk40000);
+ if (mdlFlags & J3DMdlFlag_UseSingleDL) {
+ onFlag(J3DMdlFlag_UseSingleDL);
}
- if (modelFlag & J3DMdlFlag_Unk80000) {
- onFlag(J3DMdlFlag_Unk80000);
+ if (mdlFlags & J3DMdlFlag_DifferedDLBuffer) {
+ onFlag(J3DMdlFlag_DifferedDLBuffer);
}
- if (modelFlag & J3DMdlFlag_SkinPosCpu) {
+ if (mdlFlags & J3DMdlFlag_SkinPosCpu) {
+ J3D_WARN1(149, "%s", "Don't forget to call J3DModel::setSkinDeform\n if you set J3DMdlFlag_SkinPosCpu.");
onFlag(J3DMdlFlag_SkinPosCpu);
}
- if (modelFlag & J3DMdlFlag_SkinNrmCpu) {
+ if (mdlFlags & J3DMdlFlag_SkinNrmCpu) {
+ J3D_WARN1(154, "%s", "Don't forget to call J3DModel::setSkinDeform\n if you set J3DMdlFlag_SkinNrmCpu.");
onFlag(J3DMdlFlag_SkinNrmCpu);
}
- return 0;
+
+ return kJ3DError_Success;
}
/* 80327300-803273CC 321C40 00CC+00 1/1 0/0 0/0 .text createShapePacket__8J3DModelFP12J3DModelData
*/
-s32 J3DModel::createShapePacket(J3DModelData* p_modelData) {
- if (p_modelData->getShapeNum() != 0) {
- u16 shapeNum = p_modelData->getShapeNum();
+s32 J3DModel::createShapePacket(J3DModelData* pModelData) {
+ J3D_ASSERTMSG(173, pModelData != NULL, "Error : null pointer.");
- mShapePacket = new J3DShapePacket[shapeNum];
+ if (pModelData->getShapeNum() != 0) {
+ mShapePacket = new J3DShapePacket[pModelData->getShapeNum()];
if (mShapePacket == NULL) {
return kJ3DError_Alloc;
}
- for (int i = 0; i < p_modelData->getShapeNum(); i++) {
- J3DShape* shapeNode = p_modelData->getShapeNodePointer(i);
- mShapePacket[i].setShape(shapeNode);
+ for (int i = 0; i < pModelData->getShapeNum(); i++) {
+ mShapePacket[i].setShape(pModelData->getShapeNodePointer(i));
mShapePacket[i].setModel(this);
}
}
@@ -111,76 +116,78 @@ s32 J3DModel::createShapePacket(J3DModelData* p_modelData) {
/* 803273CC-803275FC 321D0C 0230+00 1/1 0/0 0/0 .text createMatPacket__8J3DModelFP12J3DModelDataUl
*/
-s32 J3DModel::createMatPacket(J3DModelData* p_modelData, u32 flag) {
- if (p_modelData->getMaterialNum() != 0) {
- mMatPacket = new J3DMatPacket[p_modelData->getMaterialNum()];
+s32 J3DModel::createMatPacket(J3DModelData* pModelData, u32 mdlFlags) {
+ J3D_ASSERTMSG(207, pModelData != NULL, "Error : null pointer.");
+ s32 ret = 0;
+
+ if (pModelData->getMaterialNum() != 0) {
+ mMatPacket = new J3DMatPacket[pModelData->getMaterialNum()];
if (mMatPacket == NULL) {
return kJ3DError_Alloc;
}
}
-
- s32 ret;
- u16 matNum = p_modelData->getMaterialNum();
-
- u32 singleDLFlag = flag & 0x40000;
+
+ u16 matNum = pModelData->getMaterialNum();
for (u16 i = 0; i < matNum; i++) {
- J3DMaterial* materialNode = p_modelData->getMaterialNodePointer(i);
- J3DMatPacket* pkt = mMatPacket + i;
-
- u16 shapeIndex = materialNode->getShape()->getIndex();
- J3DShapePacket* shapePacket = mShapePacket + shapeIndex;
-
- pkt->setMaterial(materialNode);
- pkt->setInitShapePacket(shapePacket);
- pkt->addShapePacket(shapePacket);
- pkt->setTexture(p_modelData->getTexture());
- pkt->setMaterialID(materialNode->mDiffFlag);
-
- if (p_modelData->getModelDataType() == 1) {
- pkt->mFlags |= 0x01;
+ J3DMaterial* materialNode = pModelData->getMaterialNodePointer(i);
+ J3DMatPacket* matPacket = mMatPacket + i;
+ J3DShapePacket* shapePacket = mShapePacket + materialNode->getShape()->getIndex();
+
+ matPacket->setMaterial(materialNode);
+ matPacket->setInitShapePacket(shapePacket);
+ matPacket->addShapePacket(shapePacket);
+ matPacket->setTexture(pModelData->getTexture());
+ matPacket->setMaterialID(materialNode->mDiffFlag);
+
+ if (pModelData->getModelDataType() == 1) {
+ matPacket->lock();
}
- if (!!(flag & 0x80000)) {
- pkt->mpDisplayListObj = materialNode->getSharedDisplayListObj();
+ if (mdlFlags & J3DMdlFlag_DifferedDLBuffer) {
+ J3DDisplayListObj* dlobj = materialNode->getSharedDisplayListObj();
+ J3D_ASSERTMSG(253, dlobj != NULL, "Error : User need to call J3DModelData::newSharedDisplayList() before using DifferedDLBuffer.");
+ matPacket->setDisplayListObj(dlobj);
} else {
- if (p_modelData->getModelDataType() == 1) {
- if (!!(flag & 0x40000)) {
- pkt->mpDisplayListObj = materialNode->getSharedDisplayListObj();
+ if (pModelData->getModelDataType() == 1) {
+ if (mdlFlags & J3DMdlFlag_UseSingleDL) {
+ matPacket->mpDisplayListObj = materialNode->getSharedDisplayListObj();
+ matPacket->setDisplayListObj(matPacket->mpDisplayListObj);
} else {
- J3DDisplayListObj* sharedDL = materialNode->getSharedDisplayListObj();
- ret = sharedDL->single_To_Double();
+ J3DDisplayListObj* dlobj = materialNode->getSharedDisplayListObj();
+ ret = dlobj->single_To_Double();
if (ret != kJ3DError_Success)
return ret;
- pkt->mpDisplayListObj = sharedDL;
+ matPacket->setDisplayListObj(dlobj);
}
- } else if (!!(flag & 0x20000)) {
- if (!!(flag & 0x40000)) {
+ } else if (mdlFlags & J3DMdlFlag_UseSharedDL) {
+ if (mdlFlags & J3DMdlFlag_UseSingleDL) {
ret = materialNode->newSingleSharedDisplayList(materialNode->countDLSize());
if (ret != kJ3DError_Success)
return ret;
- pkt->mpDisplayListObj = materialNode->getSharedDisplayListObj();
+ J3DDisplayListObj* dlobj = materialNode->getSharedDisplayListObj();
+ matPacket->setDisplayListObj(dlobj);
} else {
ret = materialNode->newSharedDisplayList(materialNode->countDLSize());
if (ret != kJ3DError_Success)
return ret;
- J3DDisplayListObj* sharedDL = materialNode->getSharedDisplayListObj();
- ret = sharedDL->single_To_Double();
+ J3DDisplayListObj* dlobj = materialNode->getSharedDisplayListObj();
+ ret = dlobj->single_To_Double();
if (ret != kJ3DError_Success)
return ret;
- pkt->mpDisplayListObj = sharedDL;
+ matPacket->setDisplayListObj(dlobj);
}
} else {
- if (!!(flag & 0x40000)) {
- ret = pkt->newSingleDisplayList(materialNode->countDLSize());
+ if (mdlFlags & J3DMdlFlag_UseSingleDL) {
+ ret = matPacket->newSingleDisplayList(materialNode->countDLSize());
if (ret != kJ3DError_Success)
return ret;
} else {
- ret = pkt->newDisplayList(materialNode->countDLSize());
+ ret = matPacket->newDisplayList(materialNode->countDLSize());
if (ret != kJ3DError_Success)
return ret;
}
@@ -192,21 +199,40 @@ s32 J3DModel::createMatPacket(J3DModelData* p_modelData, u32 flag) {
}
/* 803275FC-8032767C 321F3C 0080+00 0/0 1/1 0/0 .text newDifferedDisplayList__8J3DModelFUl */
-s32 J3DModel::newDifferedDisplayList(u32 flag) {
- mDiffFlag = flag;
+s32 J3DModel::newDifferedDisplayList(u32 diffFlags) {
+ mDiffFlag = diffFlags;
+
u16 shapeNum = getModelData()->getShapeNum();
for (u16 i = 0; i < shapeNum; i++) {
- s32 ret = mShapePacket[i].newDifferedDisplayList(flag);
+ s32 ret = getShapePacket(i)->newDifferedDisplayList(diffFlags);
if (ret != kJ3DError_Success)
return ret;
}
+
return kJ3DError_Success;
}
-/* 8032767C-803276B4 321FBC 0038+00 0/0 4/4 0/0 .text lock__8J3DModelFv */
-void J3DModel::lock() {
+void J3DModel::ptrToIndex() {
+ j3dSys.setModel(this);
+ j3dSys.setTexture(mModelData->getTexture());
+
u16 matNum = mModelData->getMaterialNum();
+ for (u16 i = 0; i < matNum; i++) {
+ J3DMatPacket* matPacket = getMatPacket(i);
+ GDLObj dlobj;
+ GDInitGDLObj(&dlobj, matPacket->getDisplayList(0), matPacket->getDisplayListSize());
+ GDSetCurrent(&dlobj);
+
+ mModelData->getMaterialNodePointer(i)->getTevBlock()->ptrToIndex();
+
+ GDSetCurrent(NULL);
+ }
+}
+
+/* 8032767C-803276B4 321FBC 0038+00 0/0 4/4 0/0 .text lock__8J3DModelFv */
+void J3DModel::lock() {
+ int matNum = mModelData->getMaterialNum();
for (int i = 0; i < matNum; i++) {
mMatPacket[i].lock();
}
@@ -214,24 +240,34 @@ void J3DModel::lock() {
/* 803276B4-803276EC 321FF4 0038+00 0/0 2/2 0/0 .text unlock__8J3DModelFv */
void J3DModel::unlock() {
- u16 matNum = mModelData->getMaterialNum();
-
+ int matNum = mModelData->getMaterialNum();
for (int i = 0; i < matNum; i++) {
mMatPacket[i].unlock();
}
}
+void J3DModel::makeDL() {
+ j3dSys.setModel(this);
+ j3dSys.setTexture(mModelData->getTexture());
+
+ u16 matNum = mModelData->getMaterialNum();
+ for (u16 i = 0; i < matNum; i++) {
+ j3dSys.setMatPacket(&mMatPacket[i]);
+ mModelData->getMaterialNodePointer(i)->makeDisplayList();
+ }
+}
+
/* 803276EC-80327858 32202C 016C+00 1/0 0/0 0/0 .text calcMaterial__8J3DModelFv */
void J3DModel::calcMaterial() {
j3dSys.setModel(this);
- if (checkFlag(4)) {
+ if (checkFlag(J3DMdlFlag_SkinPosCpu)) {
j3dSys.onFlag(4);
} else {
j3dSys.offFlag(4);
}
- if (checkFlag(8)) {
+ if (checkFlag(J3DMdlFlag_SkinNrmCpu)) {
j3dSys.onFlag(8);
} else {
j3dSys.offFlag(8);
@@ -249,31 +285,31 @@ void J3DModel::calcMaterial() {
material->getMaterialAnm()->calc(material);
}
- int jntNo = material->getJoint()->getJntNo();
- material->calc(getAnmMtx(jntNo));
+ material->calc(getAnmMtx(material->getJoint()->getJntNo()));
}
}
/* 80327858-803279A0 322198 0148+00 1/0 0/0 0/0 .text calcDiffTexMtx__8J3DModelFv */
-// NONMATCHING regalloc
void J3DModel::calcDiffTexMtx() {
j3dSys.setModel(this);
- for (u16 num = mModelData->getMaterialNum(), i = 0; i < num; i++) {
+ u16 matNum = mModelData->getMaterialNum();
+ for (u16 i = 0; i < matNum; i++) {
j3dSys.setMatPacket(&mMatPacket[i]);
J3DMaterial* materialNode = mModelData->getMaterialNodePointer(i);
materialNode->calcDiffTexMtx(getAnmMtx(materialNode->getJoint()->getJntNo()));
}
- for (u16 num = mModelData->getShapeNum(), i = 0; i < num; i++) {
+ u16 shapeNum = getModelData()->getShapeNum();
+ for (u16 i = 0; i < shapeNum; i++) {
J3DShapePacket* shapePacket = getShapePacket(i);
- J3DTexGenBlock* texGenBlock =
- mModelData->getShapeNodePointer(i)->getMaterial()->getTexGenBlock();
+ J3DTexGenBlock* texGenBlock = mModelData->getShapeNodePointer(i)->getMaterial()->getTexGenBlock();
+
for (u16 j = 0; (int)j < 8; j++) {
J3DTexMtx* texMtxNode = texGenBlock->getTexMtx(j);
J3DTexMtxObj* texMtxObj = shapePacket->getTexMtxObj();
if (texMtxNode != NULL && texMtxObj != NULL) {
- texMtxObj->setMtx(j, &texMtxNode->getMtx());
+ texMtxObj->setMtx(j, texMtxNode->getMtx());
}
}
}
@@ -281,9 +317,10 @@ void J3DModel::calcDiffTexMtx() {
/* 803279A0-80327A2C 3222E0 008C+00 0/0 2/2 0/0 .text diff__8J3DModelFv */
void J3DModel::diff() {
- for (u16 n = getModelData()->getMaterialNum(), i = 0; i < n; i++) {
+ u16 matNum = mModelData->getMaterialNum();
+ for (u16 i = 0; i < matNum; i++) {
j3dSys.setMatPacket(&mMatPacket[i]);
- getModelData()->getMaterialNodePointer(i)->diff(mDiffFlag);
+ mModelData->getMaterialNodePointer(i)->diff(mDiffFlag);
}
}
@@ -293,17 +330,19 @@ s32 J3DModel::setDeformData(J3DDeformData* p_deformData, u32 param_1) {
mDeformData = p_deformData;
if (p_deformData == NULL) {
- return 0;
+ return kJ3DError_Success;
}
s32 ret = mVertexBuffer.copyLocalVtxArray(param_1);
if (ret) {
return ret;
}
+
if (param_1 & 4) {
p_deformData->offAllFlag(1);
}
- return 0;
+
+ return kJ3DError_Success;
}
/* 80327AA0-80327BD4 3223E0 0134+00 0/0 0/0 2/2 .text setSkinDeform__8J3DModelFP13J3DSkinDeformUl
@@ -311,46 +350,43 @@ s32 J3DModel::setDeformData(J3DDeformData* p_deformData, u32 param_1) {
s32 J3DModel::setSkinDeform(J3DSkinDeform* p_skinDeform, u32 flags) {
mSkinDeform = p_skinDeform;
- s32 ret = kJ3DError_Success;
-
if (p_skinDeform == NULL) {
offFlag(J3DMdlFlag_SkinPosCpu);
offFlag(J3DMdlFlag_SkinNrmCpu);
return 5;
- } else {
- mSkinDeform->initMtxIndexArray(mModelData);
+ }
- ret = mModelData->checkFlag(0x100);
- if (ret != kJ3DError_Success) {
- mSkinDeform->changeFastSkinDL(mModelData);
- flags &= ~2;
- flags &= ~4;
- mSkinDeform->transformVtxPosNrm(mModelData);
- mSkinDeform->initSkinInfo(mModelData);
- }
+ mSkinDeform->initMtxIndexArray(mModelData);
- ret = 0;
- if ((~flags & 2)) {
- ret = mVertexBuffer.allocTransformedVtxPosArray();
- if (ret != kJ3DError_Success) {
- offFlag(J3DMdlFlag_SkinPosCpu);
- return ret;
- }
- onFlag(J3DMdlFlag_SkinPosCpu);
- } else {
+ if (mModelData->checkFlag(0x100)) {
+ mSkinDeform->changeFastSkinDL(mModelData);
+ flags &= ~2;
+ flags &= ~4;
+ mSkinDeform->transformVtxPosNrm(mModelData);
+ mSkinDeform->initSkinInfo(mModelData);
+ }
+
+ s32 ret = kJ3DError_Success;
+ if ((~flags & 2)) {
+ ret = mVertexBuffer.allocTransformedVtxPosArray();
+ if (ret != kJ3DError_Success) {
offFlag(J3DMdlFlag_SkinPosCpu);
+ return ret;
}
+ onFlag(J3DMdlFlag_SkinPosCpu);
+ } else {
+ offFlag(J3DMdlFlag_SkinPosCpu);
+ }
- if ((~flags & 4)) {
- ret = mVertexBuffer.allocTransformedVtxNrmArray();
- if (ret != kJ3DError_Success) {
- offFlag(J3DMdlFlag_SkinNrmCpu);
- return ret;
- }
- onFlag(J3DMdlFlag_SkinNrmCpu);
- } else {
+ if ((~flags & 4)) {
+ ret = mVertexBuffer.allocTransformedVtxNrmArray();
+ if (ret != kJ3DError_Success) {
offFlag(J3DMdlFlag_SkinNrmCpu);
+ return ret;
}
+ onFlag(J3DMdlFlag_SkinNrmCpu);
+ } else {
+ offFlag(J3DMdlFlag_SkinNrmCpu);
}
return ret;
@@ -360,7 +396,7 @@ s32 J3DModel::setSkinDeform(J3DSkinDeform* p_skinDeform, u32 flags) {
void J3DModel::calcAnmMtx() {
j3dSys.setModel(this);
- if (checkFlag(2)) {
+ if (checkFlag(J3DMdlFlag_UseDefaultJ3D)) {
getModelData()->getJointTree().calc(mMtxBuffer, j3dDefaultScale, j3dDefaultMtx);
} else {
getModelData()->getJointTree().calc(mMtxBuffer, mBaseScale, mBaseTransformMtx);
@@ -370,7 +406,7 @@ void J3DModel::calcAnmMtx() {
/* 80327C58-80327CA4 322598 004C+00 1/1 1/1 1/1 .text calcWeightEnvelopeMtx__8J3DModelFv
*/
void J3DModel::calcWeightEnvelopeMtx() {
- if (getModelData()->getWEvlpMtxNum() != 0 && !checkFlag(0x10)) {
+ if (getModelData()->getWEvlpMtxNum() != 0 && !checkFlag(J3DMdlFlag_EnableLOD)) {
if (!getModelData()->checkFlag(0x100)) {
mMtxBuffer->calcWeightEnvelopeMtx();
}
@@ -383,7 +419,6 @@ void J3DModel::update() {
entry();
}
-
/* 80327CF0-80327E4C 322630 015C+00 1/0 0/0 0/0 .text calc__8J3DModelFv */
void J3DModel::calc() {
j3dSys.setModel(this);
@@ -400,11 +435,11 @@ void J3DModel::calc() {
j3dSys.offFlag(J3DSysFlag_SkinNrmCpu);
}
- getModelData()->syncJ3DSysFlags();
+ mModelData->syncJ3DSysFlags();
mVertexBuffer.frameInit();
if (mUnkCalc2 != NULL) {
- mUnkCalc2->calc(getModelData());
+ mUnkCalc2->calc(mModelData);
}
if (mDeformData != NULL) {
@@ -447,11 +482,11 @@ void J3DModel::entry() {
j3dSys.offFlag(J3DSysFlag_SkinNrmCpu);
}
- getModelData()->syncJ3DSysFlags();
- j3dSys.setTexture(getModelData()->getTexture());
+ mModelData->syncJ3DSysFlags();
+ j3dSys.setTexture(mModelData->getTexture());
- for (u16 i = 0; i < getModelData()->getJointNum(); i++) {
- J3DJoint* joint = getModelData()->getJointNodePointer(i);
+ for (u16 i = 0; i < mModelData->getJointNum(); i++) {
+ J3DJoint* joint = mModelData->getJointNodePointer(i);
if (joint->getMesh() != NULL) {
joint->entryIn();
}
@@ -463,7 +498,7 @@ void J3DModel::viewCalc() {
mMtxBuffer->swapDrawMtx();
mMtxBuffer->swapNrmMtx();
- if (mModelData->checkFlag(0x10)) {
+ if (getModelData()->checkFlag(0x10)) {
if (getMtxCalcMode() == 2) {
J3DCalcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx,
(MtxP)&mInternalView);
@@ -502,17 +537,16 @@ void J3DModel::calcNrmMtx() {
/* 803281B4-803282B8 322AF4 0104+00 1/1 0/0 0/0 .text calcBumpMtx__8J3DModelFv */
void J3DModel::calcBumpMtx() {
- if (getModelData()->checkBumpFlag() == 1) {
+ if (getModelData()->checkBumpFlag()) {
u32 bumpMtxIdx = 0;
u16 materialNum = getModelData()->getMaterialNum();
- u16 i = 0;
- for (; i < materialNum; i++) {
+ for (u16 i = 0; i < materialNum; i++) {
J3DMaterial* material = getModelData()->getMaterialNodePointer(i);
- if (material->getNBTScale()->mbHasScale == 1) {
+ if (material->getNBTScale()->mbHasScale == TRUE) {
material->getShape()->calcNBTScale(*material->getNBTScale()->getScale(),
getNrmMtxPtr(), getBumpMtxPtr(bumpMtxIdx));
- DCStoreRange(getBumpMtxPtr(bumpMtxIdx), getModelData()->getDrawMtxNum() * 0x24);
+ DCStoreRange(getBumpMtxPtr(bumpMtxIdx), mModelData->getDrawMtxNum() * sizeof(Mtx33));
bumpMtxIdx++;
}
}
@@ -521,23 +555,24 @@ void J3DModel::calcBumpMtx() {
/* 803282B8-803282EC 322BF8 0034+00 1/1 0/0 0/0 .text calcBBoardMtx__8J3DModelFv */
void J3DModel::calcBBoardMtx() {
- if (mModelData->checkBBoardFlag()) {
+ if (getModelData()->checkBBoardFlag()) {
mMtxBuffer->calcBBoardMtx();
}
}
/* 803282EC-80328350 322C2C 0064+00 2/2 0/0 0/0 .text prepareShapePackets__8J3DModelFv */
void J3DModel::prepareShapePackets() {
- u16 shapeNum = getModelData()->getShapeNum();
+ u16 shapeNum = mModelData->getShapeNum();
for (u16 i = 0; i < shapeNum; i++) {
- J3DShape* xx = mModelData->getShapeNodePointer(i);
- J3DShapePacket* pkt = getShapePacket(i);
- pkt->setMtxBuffer(mMtxBuffer);
+ J3DShape* shapeNode = mModelData->getShapeNodePointer(i);
+ J3DShapePacket* shapePacket = &mShapePacket[i];
+ shapePacket->setMtxBuffer(mMtxBuffer);
+
if (getMtxCalcMode() == 2) {
- pkt->setBaseMtxPtr(&mInternalView);
+ shapePacket->setBaseMtxPtr(&mInternalView);
} else {
- pkt->setBaseMtxPtr(&j3dSys.mViewMtx);
+ shapePacket->setBaseMtxPtr((Mtx*)j3dSys.getViewMtx());
}
}
}