diff options
Diffstat (limited to 'src/JSystem/J3DGraphBase/J3DMaterial.cpp')
| -rw-r--r-- | src/JSystem/J3DGraphBase/J3DMaterial.cpp | 333 |
1 files changed, 165 insertions, 168 deletions
diff --git a/src/JSystem/J3DGraphBase/J3DMaterial.cpp b/src/JSystem/J3DGraphBase/J3DMaterial.cpp index c2c7674766..3f21adae5a 100644 --- a/src/JSystem/J3DGraphBase/J3DMaterial.cpp +++ b/src/JSystem/J3DGraphBase/J3DMaterial.cpp @@ -1,166 +1,184 @@ -// -// Generated By: dol2asm -// Translation Unit: J3DMaterial -// - #include "JSystem/J3DGraphBase/J3DMaterial.h" #include "JSystem/J3DGraphBase/J3DGD.h" /* 803157A0-803159A0 3100E0 0200+00 0/0 3/3 0/0 .text createColorBlock__11J3DMaterialFUl */ -J3DColorBlock* J3DMaterial::createColorBlock(u32 param_0) { +J3DColorBlock* J3DMaterial::createColorBlock(u32 flags) { J3DColorBlock* rv = NULL; - switch (param_0) { - case 0: - rv = new J3DColorBlockLightOff(); - break; - case 0x40000000: - rv = new J3DColorBlockLightOn(); - break; - case 0x80000000: - rv = new J3DColorBlockAmbientOn(); - break; + switch (flags) { + case 0: + rv = new J3DColorBlockLightOff(); + break; + case 0x40000000: + rv = new J3DColorBlockLightOn(); + break; + case 0x80000000: + rv = new J3DColorBlockAmbientOn(); + break; } + J3D_ASSERT_ALLOCMEM(55, rv != NULL); return rv; } /* 803159A0-80315B04 3102E0 0164+00 0/0 2/2 0/0 .text createTexGenBlock__11J3DMaterialFUl */ -J3DTexGenBlock* J3DMaterial::createTexGenBlock(u32 param_0) { - switch (param_0) { - case 0x8000000: - return new J3DTexGenBlock4(); - case 0: - default: - return new J3DTexGenBlockBasic(); +J3DTexGenBlock* J3DMaterial::createTexGenBlock(u32 flags) { + J3DTexGenBlock* rv = NULL; + switch (flags) { + case 0x8000000: + rv = new J3DTexGenBlock4(); + break; + case 0: + default: + rv = new J3DTexGenBlockBasic(); } + + J3D_ASSERT_ALLOCMEM(83, rv != NULL); + return rv; } /* 80315B04-80315E78 310444 0374+00 0/0 2/2 0/0 .text createTevBlock__11J3DMaterialFi */ -J3DTevBlock* J3DMaterial::createTevBlock(int param_0) { +J3DTevBlock* J3DMaterial::createTevBlock(int tevStageNum) { J3DTevBlock* rv = NULL; - if (param_0 <= 1) { + if (tevStageNum <= 1) { rv = new J3DTevBlock1(); - } else if (param_0 == 2) { + } else if (tevStageNum == 2) { rv = new J3DTevBlock2(); - } else if (param_0 <= 4) { + } else if (tevStageNum <= 4) { rv = new J3DTevBlock4(); - } else if (param_0 <= 16) { + } else if (tevStageNum <= 16) { rv = new J3DTevBlock16(); } + + J3D_ASSERT_ALLOCMEM(116, rv != NULL); return rv; } /* 80315E78-80315F60 3107B8 00E8+00 0/0 3/3 0/0 .text createIndBlock__11J3DMaterialFi */ -J3DIndBlock* J3DMaterial::createIndBlock(int param_0) { - if (param_0 != 0) { - return new J3DIndBlockFull(); +J3DIndBlock* J3DMaterial::createIndBlock(int flags) { + J3DIndBlock* rv = NULL; + if (flags != 0) { + rv = new J3DIndBlockFull(); + } else { + rv = new J3DIndBlockNull(); } - return new J3DIndBlockNull(); + J3D_ASSERT_ALLOCMEM(139, rv != NULL); + return rv; } /* 80315F60-80316100 3108A0 01A0+00 0/0 3/3 0/0 .text createPEBlock__11J3DMaterialFUlUl */ -J3DPEBlock* J3DMaterial::createPEBlock(u32 createFlag, u32 materialMode) { +J3DPEBlock* J3DMaterial::createPEBlock(u32 flags, u32 materialMode) { J3DPEBlock* rv = NULL; - - if (createFlag == 0) { + if (flags == 0) { if (materialMode & 1) { rv = new J3DPEBlockOpa(); + J3D_ASSERT_ALLOCMEM(166, rv != NULL); return rv; } else if (materialMode & 2) { rv = new J3DPEBlockTexEdge(); + J3D_ASSERT_ALLOCMEM(172, rv != NULL); return rv; } else if (materialMode & 4) { rv = new J3DPEBlockXlu(); + J3D_ASSERT_ALLOCMEM(178, rv != NULL); return rv; } } - if (createFlag == 0x10000000) { + if (flags == 0x10000000) { rv = new J3DPEBlockFull(); - } else if (createFlag == 0x20000000) { + } else if (flags == 0x20000000) { rv = new J3DPEBlockFogOff(); } + J3D_ASSERT_ALLOCMEM(188, rv != NULL); return rv; } /* 80316100-80316150 310A40 0050+00 0/0 2/2 0/0 .text calcSizeColorBlock__11J3DMaterialFUl */ -u32 J3DMaterial::calcSizeColorBlock(u32 param_0) { +u32 J3DMaterial::calcSizeColorBlock(u32 flags) { u32 rv = 0; - switch (param_0) { - case 0: - rv = sizeof(J3DColorBlockLightOff); - break; - case 0x40000000: - rv = sizeof(J3DColorBlockLightOn); - break; - case 0x80000000: - rv = sizeof(J3DColorBlockAmbientOn); - break; + switch (flags) { + case 0: + rv += sizeof(J3DColorBlockLightOff); + break; + case 0x40000000: + rv += sizeof(J3DColorBlockLightOn); + break; + case 0x80000000: + rv += sizeof(J3DColorBlockAmbientOn); + break; } return rv; } /* 80316150-8031617C 310A90 002C+00 0/0 1/1 0/0 .text calcSizeTexGenBlock__11J3DMaterialFUl */ -u32 J3DMaterial::calcSizeTexGenBlock(u32 param_0) { - switch (param_0) { - case 0x8000000: - return sizeof(J3DTexGenBlock4); - case 0: - default: - return sizeof(J3DTexGenBlockBasic); +u32 J3DMaterial::calcSizeTexGenBlock(u32 flags) { + u32 rv = 0; + switch (flags) { + case 0x8000000: + rv += sizeof(J3DTexGenBlock4); + break; + case 0: + default: + rv += sizeof(J3DTexGenBlockBasic); } + + return rv; } /* 8031617C-803161C4 310ABC 0048+00 0/0 1/1 0/0 .text calcSizeTevBlock__11J3DMaterialFi */ -u32 J3DMaterial::calcSizeTevBlock(int param_0) { +u32 J3DMaterial::calcSizeTevBlock(int tevStageNum) { u32 rv = 0; - if (param_0 <= 1) { - rv = sizeof(J3DTevBlock1); - } else if (param_0 == 2) { - rv = sizeof(J3DTevBlock2); - } else if (param_0 <= 4) { - rv = sizeof(J3DTevBlock4); - } else if (param_0 <= 16) { - rv = sizeof(J3DTevBlock16); + if (tevStageNum <= 1) { + rv += sizeof(J3DTevBlock1); + } else if (tevStageNum == 2) { + rv += sizeof(J3DTevBlock2); + } else if (tevStageNum <= 4) { + rv += sizeof(J3DTevBlock4); + } else if (tevStageNum <= 16) { + rv += sizeof(J3DTevBlock16); } + return rv; } /* 803161C4-803161D8 310B04 0014+00 0/0 2/2 0/0 .text calcSizeIndBlock__11J3DMaterialFi */ -u32 J3DMaterial::calcSizeIndBlock(int param_0) { - if (param_0 != 0) { - return sizeof(J3DIndBlockFull); +u32 J3DMaterial::calcSizeIndBlock(int flags) { + u32 rv = 0; + if (flags != 0) { + rv += sizeof(J3DIndBlockFull); + } else { + rv += sizeof(J3DIndBlockNull); } - return sizeof(J3DIndBlockNull); + return rv; } /* 803161D8-80316240 310B18 0068+00 0/0 2/2 0/0 .text calcSizePEBlock__11J3DMaterialFUlUl */ -u32 J3DMaterial::calcSizePEBlock(u32 param_0, u32 param_1) { +u32 J3DMaterial::calcSizePEBlock(u32 flags, u32 materialMode) { u32 rv = 0; - if (param_0 == 0) { - if (param_1 & 1) { - rv = sizeof(J3DPEBlockOpa); - } else if (param_1 & 2) { - rv = sizeof(J3DPEBlockTexEdge); - } else if (param_1 & 4) { - rv = sizeof(J3DPEBlockXlu); + if (flags == 0) { + if (materialMode & 1) { + rv += sizeof(J3DPEBlockOpa); + } else if (materialMode & 2) { + rv += sizeof(J3DPEBlockTexEdge); + } else if (materialMode & 4) { + rv += sizeof(J3DPEBlockXlu); } + } else if (flags == 0x10000000) { + rv += sizeof(J3DPEBlockFull); + } else if (flags == 0x20000000) { + rv += sizeof(J3DPEBlockFogOff); } - else if (param_0 == 0x10000000) { - rv = sizeof(J3DPEBlockFull); - } else if (param_0 == 0x20000000) { - rv = sizeof(J3DPEBlockFogOff); - } + return rv; } @@ -191,8 +209,8 @@ u32 J3DMaterial::countDLSize() { /* 80316344-80316620 310C84 02DC+00 2/2 0/0 0/0 .text * makeDisplayList_private__11J3DMaterialFP17J3DDisplayListObj */ -void J3DMaterial::makeDisplayList_private(J3DDisplayListObj* param_0) { - param_0->beginDL(); +void J3DMaterial::makeDisplayList_private(J3DDisplayListObj* pDLObj) { + pDLObj->beginDL(); mTevBlock->load(); mIndBlock->load(); mPEBlock->load(); @@ -201,7 +219,7 @@ void J3DMaterial::makeDisplayList_private(J3DDisplayListObj* param_0) { mColorBlock->load(); J3DGDSetNumChans(mColorBlock->getColorChanNum()); J3DGDSetNumTexGens(mTexGenBlock->getTexGenNum()); - param_0->endDL(); + pDLObj->endDL(); } /* 80316620-80316668 310F60 0048+00 1/0 0/0 0/0 .text makeDisplayList__11J3DMaterialFv */ @@ -245,18 +263,20 @@ void J3DMaterial::patch() { } /* 803167D8-803169DC 311118 0204+00 2/0 0/0 0/0 .text diff__11J3DMaterialFUl */ -void J3DMaterial::diff(u32 param_0) { +void J3DMaterial::diff(u32 diffFlags) { if (j3dSys.getMatPacket()->isEnabled_Diff()) { j3dSys.getMatPacket()->beginDiff(); - mTevBlock->diff(param_0); - mIndBlock->diff(param_0); - mPEBlock->diff(param_0); - if (param_0 & 0x2000000) { + + mTevBlock->diff(diffFlags); + mIndBlock->diff(diffFlags); + mPEBlock->diff(diffFlags); + if (diffFlags & J3DDiffFlag_KonstColor) { J3DGDSetGenMode_3Param(mTexGenBlock->getTexGenNum(), mTevBlock->getTevStageNum(), mIndBlock->getIndTexStageNum()); J3DGDSetNumTexGens(mTexGenBlock->getTexGenNum()); } - mTexGenBlock->diff(param_0); - mColorBlock->diff(param_0); + mTexGenBlock->diff(diffFlags); + mColorBlock->diff(diffFlags); + j3dSys.getMatPacket()->endDiff(); } } @@ -291,43 +311,44 @@ void J3DMaterial::setCurrentMtx() { void J3DMaterial::calcCurrentMtx() { if (!j3dSys.checkFlag(0x40000000)) { mCurrentMtx.setCurrentTexMtx( - mTexGenBlock->getTexCoord(0)->getTexGenMtx(), - mTexGenBlock->getTexCoord(1)->getTexGenMtx(), - mTexGenBlock->getTexCoord(2)->getTexGenMtx(), - mTexGenBlock->getTexCoord(3)->getTexGenMtx(), - mTexGenBlock->getTexCoord(4)->getTexGenMtx(), - mTexGenBlock->getTexCoord(5)->getTexGenMtx(), - mTexGenBlock->getTexCoord(6)->getTexGenMtx(), - mTexGenBlock->getTexCoord(7)->getTexGenMtx() + getTexCoord(0)->getTexGenMtx(), + getTexCoord(1)->getTexGenMtx(), + getTexCoord(2)->getTexGenMtx(), + getTexCoord(3)->getTexGenMtx(), + getTexCoord(4)->getTexGenMtx(), + getTexCoord(5)->getTexGenMtx(), + getTexCoord(6)->getTexGenMtx(), + getTexCoord(7)->getTexGenMtx() ); } else { mCurrentMtx.setCurrentTexMtx( - mTexGenBlock->getTexCoord(0)->getTexMtxReg(), - mTexGenBlock->getTexCoord(1)->getTexMtxReg(), - mTexGenBlock->getTexCoord(2)->getTexMtxReg(), - mTexGenBlock->getTexCoord(3)->getTexMtxReg(), - mTexGenBlock->getTexCoord(4)->getTexMtxReg(), - mTexGenBlock->getTexCoord(5)->getTexMtxReg(), - mTexGenBlock->getTexCoord(6)->getTexMtxReg(), - mTexGenBlock->getTexCoord(7)->getTexMtxReg() + getTexCoord(0)->getTexMtxReg(), + getTexCoord(1)->getTexMtxReg(), + getTexCoord(2)->getTexMtxReg(), + getTexCoord(3)->getTexMtxReg(), + getTexCoord(4)->getTexMtxReg(), + getTexCoord(5)->getTexMtxReg(), + getTexCoord(6)->getTexMtxReg(), + getTexCoord(7)->getTexMtxReg() ); } } /* 80316D68-80316E14 3116A8 00AC+00 1/1 0/0 0/0 .text copy__11J3DMaterialFP11J3DMaterial */ -void J3DMaterial::copy(J3DMaterial* param_0) { - mColorBlock->reset(param_0->mColorBlock); - mTexGenBlock->reset(param_0->mTexGenBlock); - mTevBlock->reset(param_0->mTevBlock); - mIndBlock->reset(param_0->mIndBlock); - mPEBlock->reset(param_0->mPEBlock); +void J3DMaterial::copy(J3DMaterial* pOther) { + J3D_ASSERT_NULLPTR(620, pOther != NULL); + mColorBlock->reset(pOther->mColorBlock); + mTexGenBlock->reset(pOther->mTexGenBlock); + mTevBlock->reset(pOther->mTevBlock); + mIndBlock->reset(pOther->mIndBlock); + mPEBlock->reset(pOther->mPEBlock); } /* 80316E14-80316E70 311754 005C+00 1/0 0/0 0/0 .text reset__11J3DMaterialFv */ void J3DMaterial::reset() { - if ((~mDiffFlag & 0x80000000) == 0) { - mDiffFlag &= ~0x80000000; + if ((~mDiffFlag & J3DDiffFlag_Changed) == 0) { + mDiffFlag &= ~J3DDiffFlag_Changed; mMaterialMode = mpOrigMaterial->mMaterialMode; mInvalid = mpOrigMaterial->mInvalid; mMaterialAnm = NULL; @@ -337,47 +358,45 @@ void J3DMaterial::reset() { /* 80316E70-80316E90 3117B0 0020+00 1/0 0/0 0/0 .text change__11J3DMaterialFv */ void J3DMaterial::change() { - if ((mDiffFlag & 0xc0000000) == 0) { - mDiffFlag |= 0x80000000; + if ((mDiffFlag & (J3DDiffFlag_Changed | J3DDiffFlag_Unk40000000)) == 0) { + mDiffFlag |= J3DDiffFlag_Changed; mMaterialAnm = NULL; } } /* 80316E90-80316F24 3117D0 0094+00 0/0 2/2 0/0 .text newSharedDisplayList__11J3DMaterialFUl */ -s32 J3DMaterial::newSharedDisplayList(u32 param_0) { +s32 J3DMaterial::newSharedDisplayList(u32 dlSize) { if (mSharedDLObj == NULL) { mSharedDLObj = new J3DDisplayListObj(); if (mSharedDLObj == NULL) { - return 4; + return kJ3DError_Alloc; } - s32 res = mSharedDLObj->newDisplayList(param_0); - switch (res) { - case kJ3DError_Success: - break; - default: - return res; + + s32 ret = mSharedDLObj->newDisplayList(dlSize); + if (ret != kJ3DError_Success) { + return ret; } } - return 0; + + return kJ3DError_Success; } /* 80316F24-80316FB8 311864 0094+00 0/0 2/2 0/0 .text newSingleSharedDisplayList__11J3DMaterialFUl */ -s32 J3DMaterial::newSingleSharedDisplayList(u32 param_0) { +s32 J3DMaterial::newSingleSharedDisplayList(u32 dlSize) { if (mSharedDLObj == NULL) { mSharedDLObj = new J3DDisplayListObj(); if (mSharedDLObj == NULL) { - return 4; + return kJ3DError_Alloc; } - s32 res = mSharedDLObj->newSingleDisplayList(param_0); - switch (res) { - case kJ3DError_Success: - break; - default: - return res; + + s32 ret = mSharedDLObj->newSingleDisplayList(dlSize); + if (ret != kJ3DError_Success) { + return ret; } } - return 0; + + return kJ3DError_Success; } /* 80316FB8-80316FD8 3118F8 0020+00 0/0 1/1 0/0 .text initialize__18J3DPatchedMaterialFv @@ -387,15 +406,11 @@ void J3DPatchedMaterial::initialize() { } /* 80316FD8-80316FDC 311918 0004+00 1/0 0/0 0/0 .text makeDisplayList__18J3DPatchedMaterialFv */ -void J3DPatchedMaterial::makeDisplayList() { - /* empty function */ -} +void J3DPatchedMaterial::makeDisplayList() {} /* 80316FDC-80316FE0 31191C 0004+00 1/0 0/0 0/0 .text * makeSharedDisplayList__18J3DPatchedMaterialFv */ -void J3DPatchedMaterial::makeSharedDisplayList() { - /* empty function */ -} +void J3DPatchedMaterial::makeSharedDisplayList() {} /* 80316FE0-80316FFC 311920 001C+00 1/0 0/0 0/0 .text load__18J3DPatchedMaterialFv */ void J3DPatchedMaterial::load() { @@ -413,14 +428,10 @@ void J3DPatchedMaterial::loadSharedDL() { } /* 8031703C-80317040 31197C 0004+00 1/0 0/0 0/0 .text reset__18J3DPatchedMaterialFv */ -void J3DPatchedMaterial::reset() { - /* empty function */ -} +void J3DPatchedMaterial::reset() {} /* 80317040-80317044 311980 0004+00 1/0 0/0 0/0 .text change__18J3DPatchedMaterialFv */ -void J3DPatchedMaterial::change() { - /* empty function */ -} +void J3DPatchedMaterial::change() {} /* 80317044-80317064 311984 0020+00 0/0 1/1 0/0 .text initialize__17J3DLockedMaterialFv */ @@ -429,15 +440,11 @@ void J3DLockedMaterial::initialize() { } /* 80317064-80317068 3119A4 0004+00 1/0 0/0 0/0 .text makeDisplayList__17J3DLockedMaterialFv */ -void J3DLockedMaterial::makeDisplayList() { - /* empty function */ -} +void J3DLockedMaterial::makeDisplayList() {} /* 80317068-8031706C 3119A8 0004+00 1/0 0/0 0/0 .text makeSharedDisplayList__17J3DLockedMaterialFv */ -void J3DLockedMaterial::makeSharedDisplayList() { - /* empty function */ -} +void J3DLockedMaterial::makeSharedDisplayList() {} /* 8031706C-80317088 3119AC 001C+00 1/0 0/0 0/0 .text load__17J3DLockedMaterialFv */ void J3DLockedMaterial::load() { @@ -456,26 +463,16 @@ void J3DLockedMaterial::loadSharedDL() { } /* 803170C8-803170CC 311A08 0004+00 1/0 0/0 0/0 .text patch__17J3DLockedMaterialFv */ -void J3DLockedMaterial::patch() { - /* empty function */ -} +void J3DLockedMaterial::patch() {} /* 803170CC-803170D0 311A0C 0004+00 1/0 0/0 0/0 .text diff__17J3DLockedMaterialFUl */ -void J3DLockedMaterial::diff(u32 param_0) { - /* empty function */ -} +void J3DLockedMaterial::diff(u32 diffFlags) {} /* 803170D0-803170D4 311A10 0004+00 1/0 0/0 0/0 .text calc__17J3DLockedMaterialFPA4_Cf */ -void J3DLockedMaterial::calc(const Mtx param_0) { - /* empty function */ -} +void J3DLockedMaterial::calc(const Mtx param_0) {} /* 803170D4-803170D8 311A14 0004+00 1/0 0/0 0/0 .text reset__17J3DLockedMaterialFv */ -void J3DLockedMaterial::reset() { - /* empty function */ -} +void J3DLockedMaterial::reset() {} /* 803170D8-803170DC 311A18 0004+00 1/0 0/0 0/0 .text change__17J3DLockedMaterialFv */ -void J3DLockedMaterial::change() { - /* empty function */ -} +void J3DLockedMaterial::change() {} |
