diff options
| author | Luke Street <luke@street.dev> | 2026-03-01 15:35:36 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-01 14:35:36 -0800 |
| commit | 9649319ec4926457ef85e6094f8207474c977c2d (patch) | |
| tree | 1c5cd4c7cc4c1aee03f28921213da47f2775444d /src/JSystem/J2DGraph/J2DTextBoxEx.cpp | |
| parent | 6e149819e13b1f70ecbf8a4c66b030c17ffed2bb (diff) | |
Reorganize library code into `libs/` (#3119)
* Reorganize files into libs/{dolphin,JSystem,PowerPC_EABI_Support,revolution,TRK_MINNOW_DOLPHIN}
* Update configure.py and project.py for new libs structure
* Refactor `#include <dolphin/x.h>` -> `<x.h>`
* Remove `__REVOLUTION_SDK__` forwards from dolphin
* Fix dolphin/ references in revolution
* Wrap `#include <dolphin.h>` in `!__REVOLUTION_SDK__`
* Always build TRK against dolphin headers
* Resolve revolution SDK header resolution issues
Diffstat (limited to 'src/JSystem/J2DGraph/J2DTextBoxEx.cpp')
| -rw-r--r-- | src/JSystem/J2DGraph/J2DTextBoxEx.cpp | 536 |
1 files changed, 0 insertions, 536 deletions
diff --git a/src/JSystem/J2DGraph/J2DTextBoxEx.cpp b/src/JSystem/J2DGraph/J2DTextBoxEx.cpp deleted file mode 100644 index 637e7e972f..0000000000 --- a/src/JSystem/J2DGraph/J2DTextBoxEx.cpp +++ /dev/null @@ -1,536 +0,0 @@ -// -// J2DTextBoxEx -// - -#include "JSystem/JSystem.h" // IWYU pragma: keep - -#include "JSystem/J2DGraph/J2DTextBoxEx.h" -#include "JSystem/J2DGraph/J2DPrint.h" -#include "JSystem/JSupport/JSURandomInputStream.h" -#include "JSystem/JUtility/JUTResFont.h" - -J2DTextBoxEx::J2DTextBoxEx(J2DPane* p_pane, JSURandomInputStream* p_stream, u32 param_2, - J2DMaterial* p_material) { - J2DTextBoxInfo info; - - mVisibilityAnm = NULL; - - int startPos = p_stream->getPosition(); - - J2DTbxBlockHeader header; - p_stream->read(&header, 8); - mKind = header.mTag; - - int panHeaderPos = p_stream->getPosition(); - J2DTbxBlockHeader panHeader; - p_stream->peek(&panHeader, 8); - makePaneExStream(p_pane, p_stream); - p_stream->seek(panHeaderPos + panHeader.mSize, JSUStreamSeekFrom_SET); - - p_stream->read(&info, 0x20); - field_0x13c = info.field_0x2; - field_0x13e = info.mMaterialNum; - mMaterial = NULL; - - if (field_0x13e != 0xFFFF) { - mMaterial = &p_material[field_0x13e]; - p_material[field_0x13e].field_0x4 = this; - rewriteAlpha(); - - if (mMaterial != NULL) { - if (mMaterial->getTevBlock() != NULL) { - mFont = mMaterial->getTevBlock()->getFont(); - } - } - } - - mCharSpacing = info.mCharSpace; - mLineSpacing = info.mLineSpace; - mFontSizeX = info.mFontSizeX; - mFontSizeY = info.mFontSizeY; - mFlags = (info.mHBind << 2) | info.mVBind; - mCharColor = JUtility::TColor(info.mCharColor); - mGradientColor = JUtility::TColor(info.mGradColor); - setConnectParent(info.mConnected); - - u16 strLength = 0; - if (!(param_2 & 0x2000000)) { - strLength = info.field_0x1c; - if ((s16)info.field_0x1c == -1) { - strLength = info.field_0x1e + 1; - } - } - - mStringLength = 0; - mStringPtr = NULL; - - if (strLength != 0) { - mStringPtr = new char[strLength]; - } - - if (mStringPtr != NULL) { - mStringLength = strLength; - - u16 var_r26_2 = strLength - 1 < info.field_0x1e ? u16(strLength - 1) : info.field_0x1e; - - p_stream->peek(mStringPtr, var_r26_2); - mStringPtr[var_r26_2] = 0; - } - - p_stream->skip(info.field_0x1e); - p_stream->seek(startPos + header.mSize, JSUStreamSeekFrom_SET); - - field_0x10c = 0.0f; - field_0x110 = 0.0f; - mTextFontOwned = false; - field_0x140 = 0; -} - -J2DTextBoxEx::~J2DTextBoxEx() { - if (field_0x140 != 0) { - delete mMaterial; - } -} - -void J2DTextBoxEx::drawSelf(f32 param_0, f32 param_1, Mtx* p_mtx) { - Mtx m; - - JUTFont* font = NULL; - if (mMaterial != NULL && mMaterial->getTevBlock() != NULL) { - font = mMaterial->getTevBlock()->getFont(); - } - - J2DPrint print(font, (int)mCharSpacing, (int)mLineSpacing, mCharColor, mGradientColor, mBlackColor, - mWhiteColor); - print.setFontSize((int)mFontSizeX, (int)mFontSizeY); - - if (mMaterial != NULL) { - mMaterial->setGX(); - MTXConcat(*p_mtx, mGlobalMtx, m); - - GXLoadPosMtxImm(m, GX_PNMTX0); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); - GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); - - print.locate(param_0 + mBounds.i.x, param_1 + mBounds.i.y); - - if (mMaterial->isVisible() && mStringPtr != NULL) { - u8 alpha = 255; - - if (mMaterial->getColorBlock()->getColorChan(1)->getMatSrc() == 1) { - if (mMaterial->getMaterialAlphaCalc() == 1) { - alpha = mColorAlpha; - } - } else if (mIsInfluencedAlpha) { - GXSetChanMatColor(GX_ALPHA0, JUtility::TColor(mColorAlpha)); - } - - print.printReturn(mStringPtr, (int)(mBounds.getWidth() + 0.0001f), (int)mBounds.getHeight(), - getHBinding(), getVBinding(), field_0x10c, field_0x110, alpha); - } - } -} - -void J2DTextBoxEx::draw(f32 posX, f32 posY) { - Mtx m; - - if (isVisible()) { - JUTFont* font = NULL; - if (mMaterial != NULL && mMaterial->getTevBlock() != NULL) { - font = mMaterial->getTevBlock()->getFont(); - } - - J2DPrint print(font, mCharSpacing, mLineSpacing, mCharColor, mGradientColor, mBlackColor, - mWhiteColor); - print.setFontSize(mFontSizeX, mFontSizeY); - mColorAlpha = mAlpha; - - if (mMaterial != NULL) { - mMaterial->setGX(); - makeMatrix(posX, posY, 0.0f, 0.0f); - - GXLoadPosMtxImm(mPositionMtx, GX_PNMTX0); - GXSetCurrentMtx(0); - - if (!mMaterial->isVisible()) { - return; - } - - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); - GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); - - if (mStringPtr != NULL) { - u8 alpha = 255; - if (mMaterial->getMaterialAlphaCalc() == 1) { - alpha = mColorAlpha; - } - - print.print(0.0f, 0.0f, alpha, "%s", mStringPtr); - } - - for (int i = 0; i < 4; i++) { - GXSetTevSwapModeTable((GXTevSwapSel)i, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA); - } - - GXSetNumIndStages(0); - - for (int i = 0; i < 16; i++) { - GXSetTevDirect((GXTevStageID)i); - } - - MTXIdentity(m); - GXLoadPosMtxImm(m, 0); - } - } -} - -void J2DTextBoxEx::draw(f32 posX, f32 posY, f32 param_2, J2DTextBoxHBinding hBind) { - Mtx m; - - if (isVisible()) { - JUTFont* font = NULL; - if (mMaterial != NULL && mMaterial->getTevBlock() != NULL) { - font = mMaterial->getTevBlock()->getFont(); - } - - J2DPrint print(font, mCharSpacing, mLineSpacing, mCharColor, mGradientColor, mBlackColor, - mWhiteColor); - print.setFontSize(mFontSizeX, mFontSizeY); - mColorAlpha = mAlpha; - - if (mMaterial != NULL) { - mMaterial->setGX(); - makeMatrix(posX, posY, 0.0f, 0.0f); - - GXLoadPosMtxImm(mPositionMtx, GX_PNMTX0); - GXSetCurrentMtx(0); - - if (!mMaterial->isVisible()) { - return; - } - - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); - GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); - - if (mStringPtr != NULL) { - u8 alpha = 255; - if (mMaterial->getMaterialAlphaCalc() == 1) { - alpha = mColorAlpha; - } - - print.printReturn(mStringPtr, param_2, 0.0f, hBind, VBIND_TOP, 0.0f, -mFontSizeY, - alpha); - } - - for (int i = 0; i < 4; i++) { - GXSetTevSwapModeTable((GXTevSwapSel)i, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA); - } - - GXSetNumIndStages(0); - - for (int i = 0; i < 16; i++) { - GXSetTevDirect((GXTevStageID)i); - } - - MTXIdentity(m); - GXLoadPosMtxImm(m, 0); - } - } -} - -void J2DTextBoxEx::setFont(JUTFont* p_font) { - if (p_font != NULL && mMaterial != NULL && mMaterial->getTevBlock() != NULL) { - mMaterial->getTevBlock()->setFont(p_font); - mFont = p_font; - } -} - -JUTFont* J2DTextBoxEx::getFont() const { - if (mMaterial != NULL && mMaterial->getTevBlock() != NULL) { - return mMaterial->getTevBlock()->getFont(); - } - - return NULL; -} - -void J2DTextBoxEx::setTevOrder(bool param_0) { - u16 local_18[2]; - if (!param_0) { - local_18[0] = 4; - local_18[1] = 0xffff; - } else { - local_18[0] = 0xff; - local_18[1] = 0xff04; - } - for (u8 i = 0; i < 2; i++) { - if (mMaterial->getTevBlock()->getMaxStage() > i) { - J2DTevOrderInfo info; - info.mTexCoord = (local_18[i]) >> 8; - info.mTexMap = (local_18[i]) >> 8; - info.mColor = local_18[i] & 0xff; - J2DTevOrder tevOrder = info; - mMaterial->getTevBlock()->setTevOrder(i, tevOrder); - } - } -} - -void J2DTextBoxEx::setTevStage(bool param_0) { - J2DTevStage* stage = mMaterial->getTevBlock()->getTevStage(0); - - if (!param_0) { - setStage(stage, STAGE_0); - } else { - setStage(stage, STAGE_1); - stage = mMaterial->getTevBlock()->getTevStage(1); - setStage(stage, STAGE_2); - } -} - -void J2DTextBoxEx::setStage(J2DTevStage* param_0, J2DTextBoxEx::stage_enum param_1) { - const u8 tevColors[3][4] = { - {0x0F, 0x08, 0x0A, 0x0F}, {0x02, 0x04, 0x08, 0x0F}, {0x0F, 0x0A, 0x00, 0x0F}, - }; - const u8 tevAlpha[3][4] = { - {0x07, 0x04, 0x05, 0x07}, {0x01, 0x02, 0x04, 0x07}, {0x07, 0x05, 0x00, 0x07}, - }; - - const u8 tevColorOps[3][5] = { - {0x00, 0x00, 0x00, 0x01, 0x00}, - {0x00, 0x00, 0x00, 0x01, 0x00}, - {0x00, 0x00, 0x00, 0x01, 0x00}, - }; - - const u8 tevAlphaOps[3][5] = { - {0x00, 0x00, 0x00, 0x01, 0x00}, - {0x00, 0x00, 0x00, 0x01, 0x00}, - {0x00, 0x00, 0x00, 0x01, 0x00}, - }; - - param_0->setTevColorAB(tevColors[param_1][0], tevColors[param_1][1]); - param_0->setTevColorCD(tevColors[param_1][2], tevColors[param_1][3]); - param_0->setTevColorOp( - tevColorOps[param_1][0], tevColorOps[param_1][1], tevColorOps[param_1][2], tevColorOps[param_1][3], tevColorOps[param_1][4]); - param_0->setAlphaABCD( - tevAlpha[param_1][0], tevAlpha[param_1][1], tevAlpha[param_1][2], tevAlpha[param_1][3]); - param_0->setTevAlphaOp( - tevAlphaOps[param_1][0], tevAlphaOps[param_1][1], tevAlphaOps[param_1][2], tevAlphaOps[param_1][3], tevAlphaOps[param_1][4]); -} - -bool J2DTextBoxEx::setBlack(JUtility::TColor black) { - JUtility::TColor tevBlack; - JUtility::TColor tevWhite; - - if (!getBlackWhite(&tevBlack, &tevWhite)) { - return false; - } else { - return setBlackWhite(black, tevWhite); - } -} - -bool J2DTextBoxEx::setWhite(JUtility::TColor white) { - JUtility::TColor tevBlack; - JUtility::TColor tevWhite; - - if (!getBlackWhite(&tevBlack, &tevWhite)) { - return false; - } else { - return setBlackWhite(tevBlack, white); - } -} - -bool J2DTextBoxEx::setBlackWhite(JUtility::TColor param_0, JUtility::TColor param_1) { - if (mMaterial == NULL) { - return false; - } - - if (mMaterial->getTevBlock() == NULL) { - return false; - } - - if (!isSetBlackWhite(param_0, param_1)) { - return false; - } - - bool bvar = (param_0 != 0) || (param_1 != -1); - - u8 stageNum = bvar ? 2 : 1; - mMaterial->getTevBlock()->setTevStageNum(stageNum); - setTevOrder(bvar); - setTevStage(bvar); - - if (bvar) { - J2DGXColorS10 color; - color.r = param_0.r; - color.g = param_0.g; - color.b = param_0.b; - color.a = param_0.a; - mMaterial->getTevBlock()->setTevColor(0, color); - - color.r = param_1.r; - color.g = param_1.g; - color.b = param_1.b; - color.a = param_1.a; - mMaterial->getTevBlock()->setTevColor(1, color); - } - - return true; -} - -bool J2DTextBoxEx::getBlackWhite(JUtility::TColor* param_0, JUtility::TColor* param_1) const { - if (mMaterial == NULL) { - return false; - } - - if (mMaterial->getTevBlock() == NULL) { - return false; - } - - u32 tevStageNum = mMaterial->getTevBlock()->getTevStageNum(); - bool manyTevStages = tevStageNum == 1 ? false : true; - *param_0 = JUtility::TColor(0); - *param_1 = JUtility::TColor(0xffffffff); - if (manyTevStages) { - J2DGXColorS10 color0(*mMaterial->getTevBlock()->getTevColor(0)); - J2DGXColorS10 color1(*mMaterial->getTevBlock()->getTevColor(1)); - *param_0 = JUtility::TColor( - (((u8)color0.r) << 24) | (((u8)color0.g) << 16) | (((u8)color0.b) << 8) | - ((u8)color0.a)); - *param_1 = JUtility::TColor( - (((u8)color1.r) << 24) | (((u8)color1.g) << 16) | (((u8)color1.b) << 8) | - ((u8)color1.a)); - } - return true; -} - -bool J2DTextBoxEx::isSetBlackWhite(JUtility::TColor param_0, JUtility::TColor param_1) const { - if (param_0 == 0 && param_1 == 0xffffffff) { - return 1; - } - u32 tevStageNum = mMaterial->getTevBlock()->getTevStageNum(); - u8 maxStage = mMaterial->getTevBlock()->getMaxStage(); - if (maxStage == 1) { - return 0; - } - return 1; -} - -JUtility::TColor J2DTextBoxEx::getBlack() const { - JUtility::TColor black; - JUtility::TColor white; - if (getBlackWhite(&black, &white) == 0) { - return JUtility::TColor(0); - } - return black; -} - -JUtility::TColor J2DTextBoxEx::getWhite() const { - JUtility::TColor black; - JUtility::TColor white; - if (getBlackWhite(&black, &white) == 0) { - return JUtility::TColor(0xffffffff); - } - return white; -} - -void J2DTextBoxEx::setAlpha(u8 alpha) { - mAlpha = alpha; - - if (mMaterial == NULL) { - return; - } - - if (mMaterial->getColorBlock()->getMatColor(0) == NULL) { - return; - } - - mMaterial->getColorBlock()->getMatColor(0)->a = alpha; -} - -void J2DTextBoxEx::setCullBack(GXCullMode mode) { - mCullMode = mode; - - if (mMaterial != NULL) { - mMaterial->getColorBlock()->setCullMode(mode); - } - - J2DPane::setCullBack(mode); -} - -void J2DTextBoxEx::rewriteAlpha() { - if (mMaterial == NULL) { - return; - } - - mAlpha = mMaterial->getColorBlock()->getMatColor(0)->a; -} - -bool J2DTextBoxEx::isUsed(ResFONT const* p_font) { - if (getFont() != NULL && getFont()->getResFont() == p_font) { - return true; - } - - return J2DPane::isUsed(p_font); -} - -void J2DTextBoxEx::setAnimation(J2DAnmColor* anm) { - if (mMaterial != NULL) { - mMaterial->setAnimation(anm); - } -} - -void J2DTextBoxEx::setAnimation(J2DAnmTextureSRTKey* anm) { - if (mMaterial != NULL) { - mMaterial->setAnimation(anm); - } -} - -void J2DTextBoxEx::setAnimation(J2DAnmTexPattern* anm) { - if (mMaterial != NULL) { - mMaterial->setAnimation(anm); - } -} - -void J2DTextBoxEx::setAnimation(J2DAnmTevRegKey* anm) { - if (mMaterial != NULL) { - mMaterial->setAnimation(anm); - } -} - -void J2DTextBoxEx::setAnimation(J2DAnmVisibilityFull* anm) { - mVisibilityAnm = anm; -} - -const J2DAnmTransform* J2DTextBoxEx::animationPane(J2DAnmTransform const* param_0) { - if (mVisibilityAnm != NULL && field_0x13c != 0xffff) { - u8 visibility; - mVisibilityAnm->getVisibility(field_0x13c, &visibility); - if (visibility != 0) { - show(); - } else { - hide(); - } - } - return J2DPane::animationPane(param_0); -} - -void J2DTextBoxEx::setCullBack(bool param_0) { - setCullBack(param_0 ? GX_CULL_BACK : GX_CULL_NONE); -} - -bool J2DTextBoxEx::isUsed(ResTIMG const* p_timg) { - return J2DPane::isUsed(p_timg); -} - -void J2DTextBoxEx::setAnimation(J2DAnmVtxColor* param_0) { - /* empty function */ -} - -void J2DTextBoxEx::setAnimation(J2DAnmBase* anm) { - J2DPane::setAnimation(anm); -} |
