diff options
| author | PurpleHato <linkvssangoku.jr@gmail.com> | 2024-04-10 01:24:29 +0200 |
|---|---|---|
| committer | Garrett Cox <garrettjcox@gmail.com> | 2024-05-22 09:05:01 -0500 |
| commit | 36861dfbf7d604735b3aafc42eac4f78bdbc02a1 (patch) | |
| tree | f46d06817cb46479a5e25bdf132d68adc5bbad8b /mm/src/code | |
| parent | 3e0771e566a863ddfa9cd23717f547b1f2f42bab (diff) | |
ADD: More HUD Editor Widescreen Support (#179)
* ADD: Key Counter, Skultula Counter
TODO: Check why SKulltula counter texture doesn't move, TextureBlock???
* ADD: Skulltula icon position
* Tweak: Whitespace
* TWEAK: Skulltula Y value
* FIX: Tatl
Diffstat (limited to 'mm/src/code')
| -rw-r--r-- | mm/src/code/z_parameter.c | 122 |
1 files changed, 115 insertions, 7 deletions
diff --git a/mm/src/code/z_parameter.c b/mm/src/code/z_parameter.c index 9e10d891c..4d538ba56 100644 --- a/mm/src/code/z_parameter.c +++ b/mm/src/code/z_parameter.c @@ -4289,8 +4289,33 @@ void Interface_DrawItemButtons(PlayState* play) { gDPLoadTextureBlock_4b(OVERLAY_DISP++, cUpLabelTextures[gSaveContext.options.language], G_IM_FMT_IA, 32, 12, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(OVERLAY_DISP++, 0x03DC, 0x0048, 0x045C, 0x0078, G_TX_RENDERTILE, 0, 0, 1 << 10, - 1 << 10); + + // #region 2S2H [Cosmetic] Hud Editor + HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_C_UP); + if (HudEditor_ShouldOverrideDraw()) { + if (CVarGetInteger(hudEditorElements[hudEditorActiveElement].modeCvar, HUD_EDITOR_ELEMENT_MODE_VANILLA) == HUD_EDITOR_ELEMENT_MODE_HIDDEN) { + hudEditorActiveElement = HUD_EDITOR_ELEMENT_NONE; + } else { + // All of this information was derived from the original call to gSPTextureRectangle below + s16 rectLeft = 0x03DC / 4; + s16 rectTop = 0x0048 / 4; + s16 rectWidth = 0x045C / 4; + s16 rectHeight = (0x0078 / 4) - rectTop; + s16 dsdx = 512; + s16 dtdy = 512; + + HudEditor_ModifyDrawValues(&rectLeft, &rectTop, &rectWidth, &rectHeight, &dsdx, &dtdy); + + hudEditorActiveElement = HUD_EDITOR_ELEMENT_NONE; + + gSPWideTextureRectangle(OVERLAY_DISP++, rectLeft << 2, rectTop << 2, (rectLeft + rectWidth) << 2, + (rectTop + rectHeight) << 2, G_TX_RENDERTILE, 0, 0, dsdx << 1, dtdy << 1); + } + } else { + // #endregion + gSPTextureRectangle(OVERLAY_DISP++, 0x03DC, 0x0048, 0x045C, 0x0078, G_TX_RENDERTILE, 0, 0, 1 << 10, + 1 << 10); + } } sCUpTimer--; @@ -6689,6 +6714,8 @@ void Interface_Draw(PlayState* play) { gDPPipeSync(OVERLAY_DISP++); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 200, 230, 255, interfaceCtx->magicAlpha); gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 20, 255); + + HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_KEY_COUNTER); OVERLAY_DISP = Gfx_DrawTexRectIA8(OVERLAY_DISP, gSmallKeyCounterIconTex, 16, 16, 26, 190, 16, 16, 1 << 10, 1 << 10); @@ -6725,13 +6752,40 @@ void Interface_Draw(PlayState* play) { gDPPipeSync(OVERLAY_DISP++); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 0, 0, interfaceCtx->magicAlpha); + HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_KEY_COUNTER); OVERLAY_DISP = Gfx_DrawTexRectI8(OVERLAY_DISP, sCounterTextures[counterDigits[3]], 8, 16, sp2CA + 1, 191, 8, 16, 1 << 10, 1 << 10); gDPPipeSync(OVERLAY_DISP++); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->magicAlpha); - gSPTextureRectangle(OVERLAY_DISP++, sp2CA * 4, 760, (sp2CA * 4) + 0x20, 824, G_TX_RENDERTILE, 0, 0, - 1 << 10, 1 << 10); + + // #region 2S2H [Cosmetic] Hud Editor + HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_KEY_COUNTER); + if (HudEditor_ShouldOverrideDraw()) { + if (CVarGetInteger(hudEditorElements[hudEditorActiveElement].modeCvar, HUD_EDITOR_ELEMENT_MODE_VANILLA) == HUD_EDITOR_ELEMENT_MODE_HIDDEN) { + hudEditorActiveElement = HUD_EDITOR_ELEMENT_NONE; + } else { + // All of this information was derived from the original call to gSPTextureRectangle below + s16 rectLeft = sp2CA; + s16 rectTop = 760 / 4; + s16 rectWidth = 0x20 / 4; + s16 rectHeight = (824 / 4) - rectTop; + s16 dsdx = 512; + s16 dtdy = 512; + + HudEditor_ModifyDrawValues(&rectLeft, &rectTop, &rectWidth, &rectHeight, &dsdx, &dtdy); + + hudEditorActiveElement = HUD_EDITOR_ELEMENT_NONE; + + gSPWideTextureRectangle(OVERLAY_DISP++, rectLeft << 2, rectTop << 2, + (rectLeft + rectWidth) << 2, (rectTop + rectHeight) << 2, + G_TX_RENDERTILE, 0, 0, dsdx << 1, dtdy << 1); + } + // #endregion + } else { + gSPTextureRectangle(OVERLAY_DISP++, sp2CA * 4, 760, (sp2CA * 4) + 0x20, 824, G_TX_RENDERTILE, 0, + 0, 1 << 10, 1 << 10); + } } break; @@ -6742,10 +6796,37 @@ void Interface_Draw(PlayState* play) { gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->magicAlpha); gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255); + gDPLoadTextureBlock(OVERLAY_DISP++, gGoldSkulltulaCounterIconTex, G_IM_FMT_RGBA, G_IM_SIZ_32b, 24, 24, // 2S2H [Port] This last 24 was 18 in the minibuild, not sure why 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(OVERLAY_DISP++, 80, 748, 176, 820, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + + // #region 2S2H [Cosmetic] Hud Editor + HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_SKULLTULA_COUNTER); + if (HudEditor_ShouldOverrideDraw()) { + if (CVarGetInteger(hudEditorElements[hudEditorActiveElement].modeCvar, HUD_EDITOR_ELEMENT_MODE_VANILLA) == HUD_EDITOR_ELEMENT_MODE_HIDDEN) { + hudEditorActiveElement = HUD_EDITOR_ELEMENT_NONE; + } else { + // All of this information was derived from the original call to gSPTextureRectangle below + s16 rectLeft = 80 / 4; + s16 rectTop = 748 / 4; + s16 rectWidth = 176 / 4; + s16 rectHeight = (820 / 4) - rectTop; + s16 dsdx = 512; + s16 dtdy = 512; + + HudEditor_ModifyDrawValues(&rectLeft, &rectTop, &rectWidth, &rectHeight, &dsdx, &dtdy); + + hudEditorActiveElement = HUD_EDITOR_ELEMENT_NONE; + + gSPWideTextureRectangle(OVERLAY_DISP++, rectLeft << 2, rectTop << 2, + (rectLeft + rectWidth) << 2, (rectTop + rectHeight) << 2, + G_TX_RENDERTILE, 0, 0, dsdx << 1, dtdy << 1); + } + } else { + // #endregion + gSPTextureRectangle(OVERLAY_DISP++, 80, 748, 176, 820, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + } // Gold Skulluta Counter gDPPipeSync(OVERLAY_DISP++); @@ -6779,13 +6860,40 @@ void Interface_Draw(PlayState* play) { gDPPipeSync(OVERLAY_DISP++); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 0, 0, interfaceCtx->magicAlpha); + HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_SKULLTULA_COUNTER); OVERLAY_DISP = Gfx_DrawTexRectI8(OVERLAY_DISP, sCounterTextures[counterDigits[3]], 8, 16, sp2CA + 1, 191, 8, 16, 1 << 10, 1 << 10); gDPPipeSync(OVERLAY_DISP++); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->magicAlpha); - gSPTextureRectangle(OVERLAY_DISP++, sp2CA * 4, 760, (sp2CA * 4) + 0x20, 824, G_TX_RENDERTILE, 0, 0, - 1 << 10, 1 << 10); + + // #region 2S2H [Cosmetic] Hud Editor + HudEditor_SetActiveElement(HUD_EDITOR_ELEMENT_SKULLTULA_COUNTER); + if (HudEditor_ShouldOverrideDraw()) { + if (CVarGetInteger(hudEditorElements[hudEditorActiveElement].modeCvar, HUD_EDITOR_ELEMENT_MODE_VANILLA) == HUD_EDITOR_ELEMENT_MODE_HIDDEN) { + hudEditorActiveElement = HUD_EDITOR_ELEMENT_NONE; + } else { + // All of this information was derived from the original call to gSPTextureRectangle below + s16 rectLeft = sp2CA; + s16 rectTop = 760 / 4; + s16 rectWidth = 0x20 / 4; + s16 rectHeight = (824 / 4) - rectTop; + s16 dsdx = 512; + s16 dtdy = 512; + + HudEditor_ModifyDrawValues(&rectLeft, &rectTop, &rectWidth, &rectHeight, &dsdx, &dtdy); + + hudEditorActiveElement = HUD_EDITOR_ELEMENT_NONE; + + gSPWideTextureRectangle(OVERLAY_DISP++, rectLeft << 2, rectTop << 2, + (rectLeft + rectWidth) << 2, (rectTop + rectHeight) << 2, + G_TX_RENDERTILE, 0, 0, dsdx << 1, dtdy << 1); + } + // #endregion + } else { + gSPTextureRectangle(OVERLAY_DISP++, sp2CA * 4, 760, (sp2CA * 4) + 0x20, 824, G_TX_RENDERTILE, 0, + 0, 1 << 10, 1 << 10); + } break; default: |
