diff options
Diffstat (limited to 'src/JSystem/J2DGraph/J2DPictureEx.cpp')
| -rw-r--r-- | src/JSystem/J2DGraph/J2DPictureEx.cpp | 160 |
1 files changed, 81 insertions, 79 deletions
diff --git a/src/JSystem/J2DGraph/J2DPictureEx.cpp b/src/JSystem/J2DGraph/J2DPictureEx.cpp index 9b33e0dcb5..eafa5619fe 100644 --- a/src/JSystem/J2DGraph/J2DPictureEx.cpp +++ b/src/JSystem/J2DGraph/J2DPictureEx.cpp @@ -8,8 +8,8 @@ #include "dolphin/types.h" void J2DPictureEx::initiate(ResTIMG const* param_0, ResTLUT const* param_1) { - J2DTexGenBlock* this_00 = mMaterial->getTexGenBlock(); - if (this_00->getTexGenNum() == 0 && append(param_0, 1.0f) && param_1 != NULL) { + u32 texGenNum = mMaterial->getTexGenBlock()->getTexGenNum(); + if (texGenNum == 0 && append(param_0, 1.0f) && param_1 != NULL) { if (mMaterial->getTevBlock()->getPalette(0) == NULL) { mMaterial->getTevBlock()->setPalette(0, param_1); } @@ -102,43 +102,44 @@ void J2DPictureEx::drawTexCoord(f32 param_0, f32 param_1, f32 param_2, f32 param f32 dVar11 = param_1 + param_3; Mtx auStack_88; MTXConcat(*param_12, mGlobalMtx, auStack_88); - if (mMaterial == NULL || mMaterial->isVisible()) { - GXLoadPosMtxImm(auStack_88, 0); - JUtility::TColor TStack_8c = mCornerColor[0]; - JUtility::TColor TStack_90 = mCornerColor[1]; - JUtility::TColor TStack_94 = mCornerColor[2]; - JUtility::TColor TStack_98 = mCornerColor[3]; - if (mMaterial != NULL) { - if (mMaterial->getColorBlock()->getColorChan(1)->getMatSrc() == 1) { - if (mMaterial->getMaterialAlphaCalc() == 1) { - TStack_8c.a = TStack_8c.a * mColorAlpha / 255; - TStack_90.a = TStack_90.a * mColorAlpha / 255; - TStack_94.a = TStack_94.a * mColorAlpha / 255; - TStack_98.a = TStack_98.a * mColorAlpha / 255; - } - } else if (mIsInfluencedAlpha) { - GXSetChanMatColor(GX_ALPHA0, JUtility::TColor(mColorAlpha)); + if (mMaterial && !mMaterial->isVisible()) { + return; + } + GXLoadPosMtxImm(auStack_88, 0); + JUtility::TColor TStack_8c = mCornerColor[0]; + JUtility::TColor TStack_90 = mCornerColor[1]; + JUtility::TColor TStack_94 = mCornerColor[2]; + JUtility::TColor TStack_98 = mCornerColor[3]; + if (mMaterial != NULL) { + if (mMaterial->getColorBlock()->getColorChan(1)->getMatSrc() == 1) { + if (mMaterial->getMaterialAlphaCalc() == 1) { + TStack_8c.a = TStack_8c.a * mColorAlpha / 255; + TStack_90.a = TStack_90.a * mColorAlpha / 255; + TStack_94.a = TStack_94.a * mColorAlpha / 255; + TStack_98.a = TStack_98.a * mColorAlpha / 255; } + } else if (mIsInfluencedAlpha) { + GXSetChanMatColor(GX_ALPHA0, JUtility::TColor(mColorAlpha)); } - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBA4, 8); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(param_0, param_1, 0.0f); - GXColor1u32(TStack_8c); - GXTexCoord2s16(param_4, param_5); - GXPosition3f32(dVar12, param_1, 0.0f); - GXColor1u32(TStack_90); - GXTexCoord2s16(param_6, param_7); - GXPosition3f32(dVar12, dVar11, 0.0f); - GXColor1u32(TStack_98); - GXTexCoord2s16(param_10, param_11); - GXPosition3f32(param_0, dVar11, 0.0f); - GXColor1u32(TStack_94); - GXTexCoord2s16(param_8, param_9); - GXEnd(); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBX8, 0xf); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGBA4, 0); } + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBA4, 8); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(param_0, param_1, 0.0f); + GXColor1u32(TStack_8c); + GXTexCoord2s16(param_4, param_5); + GXPosition3f32(dVar12, param_1, 0.0f); + GXColor1u32(TStack_90); + GXTexCoord2s16(param_6, param_7); + GXPosition3f32(dVar12, dVar11, 0.0f); + GXColor1u32(TStack_98); + GXTexCoord2s16(param_10, param_11); + GXPosition3f32(param_0, dVar11, 0.0f); + GXColor1u32(TStack_94); + GXTexCoord2s16(param_8, param_9); + GXEnd(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBX8, 0xf); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGBA4, 0); } @@ -147,7 +148,8 @@ bool J2DPictureEx::append(ResTIMG const* param_0, JUTPalette* param_1, f32 param return false; } - return insert(param_0, param_1, mMaterial->getTexGenBlock()->getTexGenNum(), param_2); + u32 texGenNum = mMaterial->getTexGenBlock()->getTexGenNum(); + return insert(param_0, param_1, texGenNum, param_2); } bool J2DPictureEx::append(char const* param_0, JUTPalette* param_1, f32 param_2) { @@ -155,7 +157,8 @@ bool J2DPictureEx::append(char const* param_0, JUTPalette* param_1, f32 param_2) return false; } - return insert(param_0, param_1, mMaterial->getTexGenBlock()->getTexGenNum(), param_2); + u32 texGenNum = mMaterial->getTexGenBlock()->getTexGenNum(); + return insert(param_0, param_1, texGenNum, param_2); } bool J2DPictureEx::append(JUTTexture* param_0, f32 param_1) { @@ -163,7 +166,8 @@ bool J2DPictureEx::append(JUTTexture* param_0, f32 param_1) { return false; } - return insert(param_0, mMaterial->getTexGenBlock()->getTexGenNum(), param_1); + u32 texGenNum = mMaterial->getTexGenBlock()->getTexGenNum(); + return insert(param_0, texGenNum, param_1); } bool J2DPictureEx::insert(ResTIMG const* param_0, JUTPalette* param_1, u8 param_2, @@ -182,8 +186,7 @@ bool J2DPictureEx::insert(ResTIMG const* param_0, JUTPalette* param_1, u8 param_ } bool J2DPictureEx::insert(char const* param_0, JUTPalette* param_1, u8 param_2, f32 param_3) { - ResTIMG const* resource = (ResTIMG const*)J2DScreen::getNameResource(param_0); - return insert(resource, param_1, param_2, param_3); + return insert((ResTIMG*)J2DScreen::getNameResource(param_0), param_1, param_2, param_3); } bool J2DPictureEx::insert(JUTTexture* param_0, u8 param_1, f32 param_2) { @@ -201,15 +204,14 @@ bool J2DPictureEx::insert(JUTTexture* param_0, u8 param_1, f32 param_2) { } void J2DPictureEx::insertCommon(u8 pos, f32 param_1) { - u8 new_tev_stage_num; u8 tex_gen_num = mMaterial->getTexGenBlock()->getTexGenNum(); - mMaterial->getTevBlock()->getMaxStage(); - int tev_stage_num = mMaterial->getTevBlock()->getTevStageNum(); + u8 maxStage = mMaterial->getTevBlock()->getMaxStage(); + u8 tev_stage_num = u8(mMaterial->getTevBlock()->getTevStageNum()); bool bVar1; if (tex_gen_num <= 1) { - bVar1 = tev_stage_num != 1; + bVar1 = tev_stage_num == 1 ? false : true; } else { - bVar1 = tev_stage_num != tex_gen_num + 1; + bVar1 = int(tev_stage_num) == tex_gen_num + 1 ? false : true; } shiftSetBlendRatio(pos, param_1, true, true); @@ -228,21 +230,22 @@ void J2DPictureEx::insertCommon(u8 pos, f32 param_1) { } for (int i = tex_gen_num - 1; i > pos; i--) { - mMaterial->getTexGenBlock()->setTexMtx((u8)i, mMaterial->getTexGenBlock()->getTexMtx((u8)(i - 1))); + J2DTexMtx* texMtx = &mMaterial->getTexGenBlock()->getTexMtx((u8)(i - 1)); + mMaterial->getTexGenBlock()->setTexMtx((u8)i, *texMtx); } J2DTexMtx tex_mtx; mMaterial->getTexGenBlock()->setTexMtx(pos, tex_mtx); if (tex_gen_num == 1) { - new_tev_stage_num = 1; + tev_stage_num = 1; } else { - new_tev_stage_num = tex_gen_num + (bVar1 ? 2 : 1); + tev_stage_num = tex_gen_num + (bVar1 ? 2 : 1); } - mMaterial->getTevBlock()->setTevStageNum(new_tev_stage_num); + mMaterial->getTevBlock()->setTevStageNum(tev_stage_num); - setTevOrder(tex_gen_num, new_tev_stage_num, bVar1); - setTevStage(tex_gen_num, new_tev_stage_num, bVar1); + setTevOrder(tex_gen_num, tev_stage_num, bVar1); + setTevStage(tex_gen_num, tev_stage_num, bVar1); setTevKColor(tex_gen_num); setTevKColorSel(tex_gen_num); setTevKAlphaSel(tex_gen_num); @@ -265,7 +268,8 @@ bool J2DPictureEx::isInsert(u8 pos) const { return false; } - if (maxStage == mMaterial->getTevBlock()->getTevStageNum() && texGenNum != 0) { + u8 tevStageNum = u8(mMaterial->getTevBlock()->getTevStageNum()); + if (maxStage == tevStageNum && texGenNum != 0) { return false; } @@ -278,7 +282,7 @@ bool J2DPictureEx::remove(u8 pos) { } u8 tex_gen_num = mMaterial->getTexGenBlock()->getTexGenNum(); - u8 tev_stage_num = mMaterial->getTevBlock()->getTevStageNum(); + u8 tev_stage_num = u8(mMaterial->getTevBlock()->getTevStageNum()); bool bVar1 = tev_stage_num == tex_gen_num + 1 ? false : true; shiftSetBlendRatio(pos, 0.0f, true, false); @@ -360,18 +364,17 @@ void J2DPictureEx::draw(f32 param_0, f32 param_1, u8 texNo, bool param_3, bool p return; } - if (!isVisible()) { - return; - } - - if (texNo >= mMaterial->getTexGenBlock()->getTexGenNum()) { - return; - } + if (isVisible()) { + u32 texGenNum = mMaterial->getTexGenBlock()->getTexGenNum(); + if (texNo >= texGenNum) { + return; + } - JUTTexture* texture = mMaterial->getTevBlock()->getTexture(texNo); - if (texture != NULL) { - draw(param_0, param_1, texture->getWidth(), texture->getHeight(), - param_3, param_4, param_5); + JUTTexture* texture = mMaterial->getTevBlock()->getTexture(texNo); + if (texture != NULL) { + draw(param_0, param_1, texture->getWidth(), texture->getHeight(), + param_3, param_4, param_5); + } } } @@ -616,8 +619,9 @@ void J2DPictureEx::setTevOrder(u8 param_0, u8 param_1, bool param_2) { } void J2DPictureEx::setTevStage(u8 param_0, u8 param_1, bool param_2) { + J2DTevStage* stage; if (param_0 == 1) { - J2DTevStage* stage = mMaterial->getTevBlock()->getTevStage(0); + stage = mMaterial->getTevBlock()->getTevStage(0); JUTTexture* texture = mMaterial->getTevBlock()->getTexture(0); bool bVar1 = false; if (texture != NULL && texture->getTexInfo() != NULL @@ -634,7 +638,7 @@ void J2DPictureEx::setTevStage(u8 param_0, u8 param_1, bool param_2) { setStage(stage, STAGE_4); } } else if (!param_2) { - J2DTevStage* stage = mMaterial->getTevBlock()->getTevStage(0); + stage = mMaterial->getTevBlock()->getTevStage(0); setStage(stage, STAGE_2); for (u8 i = 1; i < param_0; i++) { stage = mMaterial->getTevBlock()->getTevStage(i); @@ -643,7 +647,7 @@ void J2DPictureEx::setTevStage(u8 param_0, u8 param_1, bool param_2) { stage = mMaterial->getTevBlock()->getTevStage(param_0); setStage(stage, STAGE_4); } else { - J2DTevStage* stage = mMaterial->getTevBlock()->getTevStage(0); + stage = mMaterial->getTevBlock()->getTevStage(0); setStage(stage, STAGE_2); for (u8 i = 1; i < param_0; i++) { stage = mMaterial->getTevBlock()->getTevStage(i); @@ -812,7 +816,8 @@ void J2DPictureEx::setBlendColorRatio(f32 param_0, f32 param_1) { field_0x160[i] = 1.0f; } - setTevKColor(mMaterial->getTexGenBlock()->getTexGenNum()); + u8 texGenNum = mMaterial->getTexGenBlock()->getTexGenNum(); + setTevKColor(texGenNum); } @@ -828,7 +833,8 @@ void J2DPictureEx::setBlendAlphaRatio(f32 param_0, f32 param_1) { field_0x178[i] = 1.0f; } - setTevKColor(mMaterial->getTexGenBlock()->getTexGenNum()); + u8 texGenNum = mMaterial->getTexGenBlock()->getTexGenNum(); + setTevKColor(texGenNum); } @@ -862,8 +868,7 @@ const ResTIMG* J2DPictureEx::changeTexture(ResTIMG const* img, u8 param_1) { } const ResTIMG* J2DPictureEx::changeTexture(char const* param_0, u8 param_1) { - ResTIMG const* resource = (ResTIMG const*)J2DScreen::getNameResource(param_0); - return changeTexture(resource, param_1); + return changeTexture((ResTIMG*)J2DScreen::getNameResource(param_0), param_1); } const ResTIMG* J2DPictureEx::changeTexture(ResTIMG const* param_0, u8 param_1, JUTPalette* param_2) { @@ -884,7 +889,8 @@ const ResTIMG* J2DPictureEx::changeTexture(ResTIMG const* param_0, u8 param_1, J const ResTIMG* texInfo = getTexture(param_1)->getTexInfo(); GXTlut _Var7 = GX_TLUT0; if (param_0->indexTexture != 0) { - _Var7 = getTlutID(param_0, getUsableTlut(param_1)); + u8 tlut = getUsableTlut(param_1); + _Var7 = getTlutID(param_0, tlut); } getTexture(param_1)->storeTIMG(param_0, param_2, _Var7); return texInfo; @@ -894,8 +900,7 @@ const ResTIMG* J2DPictureEx::changeTexture(ResTIMG const* param_0, u8 param_1, J } const ResTIMG* J2DPictureEx::changeTexture(char const* param_0, u8 param_1, JUTPalette* param_2) { - ResTIMG const* resource = (ResTIMG const*)J2DScreen::getNameResource(param_0); - return changeTexture(resource, param_1, param_2); + return changeTexture((ResTIMG*)J2DScreen::getNameResource(param_0), param_1, param_2); } JUTTexture* J2DPictureEx::getTexture(u8 param_0) const { @@ -952,10 +957,7 @@ bool J2DPictureEx::setBlackWhite(JUtility::TColor param_0, JUtility::TColor para bool bVar1; u8 uVar2; u8 texGenNum = mMaterial->getTexGenBlock()->getTexGenNum(); - bVar1 = true; - if ((param_0 == 0) && (param_1 == 0xffffffff)) { - bVar1 = false; - } + bVar1 = (param_0 != 0) || (param_1 != 0xffffffff); if (texGenNum == 1) { uVar2 = (bVar1) ? 2 : 1; } else { |
