summaryrefslogtreecommitdiff
path: root/soh/src/code/z_parameter.c
diff options
context:
space:
mode:
authorBaoulettes <perlouzerie@hotmail.fr>2022-07-06 02:52:01 +0200
committerGitHub <noreply@github.com>2022-07-05 20:52:01 -0400
commita2d64864dd581e4b72ea4d9911040db923541491 (patch)
treeef07dffaac4be965fba4f4390a487c018e586c9e /soh/src/code/z_parameter.c
parent2fbdd056eda61dfbf6e26624c850505a2de04e23 (diff)
Cosmetics menu rework (#589)
* - * DPad/some margin fix(left side) * various ImGui stuff and fixes * disabled kaleido menu (non working) * fix win being dumb * same for C btn this time * Fix windows build * Beating hearts fix * Default win size and some placement fix * Fix Dpad Ammo & C notes, Kaleido, white dog * some texts fix and tab move * Add stone of agony, some fixes and build correctly * precise item place with Dpad * Gamecube -> GameCube Co-authored-by: Baoulettes <iMacWin10>
Diffstat (limited to 'soh/src/code/z_parameter.c')
-rw-r--r--soh/src/code/z_parameter.c1220
1 files changed, 1081 insertions, 139 deletions
diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c
index f9669b3aa..dfe2e6529 100644
--- a/soh/src/code/z_parameter.c
+++ b/soh/src/code/z_parameter.c
@@ -2700,10 +2700,22 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
if (gSaveContext.magic <= 0) {
gSaveContext.magic = 0;
gSaveContext.unk_13F0 = 3;
- sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
+ if (CVar_GetS32("gHudColors", 1) == 2) {
+ sMagicBorderR = CVar_GetS32("gCCMagicBorderNormPrimR", 255);
+ sMagicBorderG = CVar_GetS32("gCCMagicBorderNormPrimG", 255);
+ sMagicBorderB = CVar_GetS32("gCCMagicBorderNormPrimB", 255);
+ } else {
+ sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
+ }
} else if (gSaveContext.magic == gSaveContext.unk_13F8) {
gSaveContext.unk_13F0 = 3;
- sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
+ if (CVar_GetS32("gHudColors", 1) == 2) {
+ sMagicBorderR = CVar_GetS32("gCCMagicBorderNormPrimR", 255);
+ sMagicBorderG = CVar_GetS32("gCCMagicBorderNormPrimG", 255);
+ sMagicBorderB = CVar_GetS32("gCCMagicBorderNormPrimB", 255);
+ } else {
+ sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
+ }
}
case 3:
case 4:
@@ -2745,7 +2757,13 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
break;
case 5:
- sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
+ if (CVar_GetS32("gHudColors", 1) == 2) {
+ sMagicBorderR = CVar_GetS32("gCCMagicBorderNormPrimR", 255);
+ sMagicBorderG = CVar_GetS32("gCCMagicBorderNormPrimG", 255);
+ sMagicBorderB = CVar_GetS32("gCCMagicBorderNormPrimB", 255);
+ } else {
+ sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
+ }
gSaveContext.unk_13F0 = 0;
break;
@@ -2767,7 +2785,13 @@ void Interface_UpdateMagicBar(GlobalContext* globalCtx) {
Audio_PlaySoundGeneral(NA_SE_SY_GLASSMODE_OFF, &D_801333D4, 4, &D_801333E0, &D_801333E0,
&D_801333E8);
gSaveContext.unk_13F0 = 0;
- sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
+ if (CVar_GetS32("gHudColors", 1) == 2) {
+ sMagicBorderR = CVar_GetS32("gCCMagicBorderNormPrimR", 255);
+ sMagicBorderG = CVar_GetS32("gCCMagicBorderNormPrimG", 255);
+ sMagicBorderB = CVar_GetS32("gCCMagicBorderNormPrimB", 255);
+ } else {
+ sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
+ }
break;
}
@@ -2837,33 +2861,79 @@ void Interface_DrawMagicBar(GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx);
if (gSaveContext.magicLevel != 0) {
- if (gSaveContext.healthCapacity > 0xA0) {
- magicBarY = R_MAGIC_BAR_LARGE_Y + (Top_HUD_Margin*-1);
+ s16 X_Margins;
+ s16 Y_Margins;
+ if (CVar_GetS32("gMagicBarUseMargins", 0) != 0) {
+ X_Margins = Left_HUD_Margin;
+ Y_Margins = (Top_HUD_Margin*-1);
} else {
- magicBarY = R_MAGIC_BAR_SMALL_Y + (Top_HUD_Margin*-1);
+ X_Margins = 0;
+ Y_Margins = 0;
+ }
+ const s16 magicBarY_original_l = R_MAGIC_BAR_LARGE_Y + Y_Margins;
+ const s16 magicBarY_original_s = R_MAGIC_BAR_SMALL_Y + Y_Margins;
+ const s16 PosX_Start_original = OTRGetRectDimensionFromLeftEdge(R_MAGIC_BAR_X + X_Margins);
+ const s16 PosX_MidEnd_original = OTRGetRectDimensionFromLeftEdge(R_MAGIC_BAR_X + X_Margins+8);
+ const s16 rMagicBarX_original = OTRGetRectDimensionFromLeftEdge(R_MAGIC_BAR_X + X_Margins);
+ const s16 rMagicFillX_original = OTRGetRectDimensionFromLeftEdge(R_MAGIC_FILL_X + X_Margins);
+ s16 PosX_Start;
+ s16 magicBarY;
+ s16 rMagicBarX;
+ s16 PosX_MidEnd;
+ s16 rMagicFillX;
+ if (CVar_GetS32("gMagicBarPosType", 0) != 0) {
+ magicBarY = CVar_GetS32("gMagicBarPosY", 0)+Y_Margins;
+ if (CVar_GetS32("gMagicBarPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gMagicBarUseMargins", 0) != 0) {X_Margins = Left_HUD_Margin;};
+ PosX_Start = OTRGetDimensionFromLeftEdge(CVar_GetS32("gMagicBarPosX", 0)+X_Margins);
+ rMagicBarX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gMagicBarPosX", 0)+X_Margins);
+ PosX_MidEnd = OTRGetDimensionFromLeftEdge(CVar_GetS32("gMagicBarPosX", 0)+X_Margins+8);
+ rMagicFillX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gMagicBarPosX", 0)+X_Margins+8);
+ } else if (CVar_GetS32("gMagicBarPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gMagicBarUseMargins", 0) != 0) {X_Margins = Right_HUD_Margin;};
+ PosX_Start = OTRGetDimensionFromRightEdge(CVar_GetS32("gMagicBarPosX", 0)+X_Margins);
+ rMagicBarX = OTRGetDimensionFromRightEdge(CVar_GetS32("gMagicBarPosX", 0)+X_Margins);
+ PosX_MidEnd = OTRGetDimensionFromRightEdge(CVar_GetS32("gMagicBarPosX", 0)+X_Margins+8);
+ rMagicFillX = OTRGetDimensionFromRightEdge(CVar_GetS32("gMagicBarPosX", 0)+X_Margins+8);
+ } else if (CVar_GetS32("gMagicBarPosType", 0) == 3) {//Anchor None
+ PosX_Start = CVar_GetS32("gMagicBarPosX", 0)+X_Margins;
+ rMagicBarX = CVar_GetS32("gMagicBarPosX", 0)+X_Margins;
+ PosX_MidEnd = CVar_GetS32("gMagicBarPosX", 0)+X_Margins+8;
+ rMagicFillX = CVar_GetS32("gMagicBarPosX", 0)+X_Margins+8;
+ } else if (CVar_GetS32("gMagicBarPosType", 0) == 4) {//hidden
+ PosX_Start = -9999;
+ rMagicBarX = -9999;
+ PosX_MidEnd = -9999;
+ rMagicFillX = -9999;
+ }
+ } else {
+ if (gSaveContext.healthCapacity > 0xA0) {
+ magicBarY = magicBarY_original_l;
+ } else {
+ magicBarY = magicBarY_original_s;
+ }
+ PosX_Start = PosX_Start_original;
+ rMagicBarX = rMagicBarX_original;
+ PosX_MidEnd = PosX_MidEnd_original;
+ rMagicFillX = rMagicFillX_original;
}
func_80094520(globalCtx->state.gfxCtx);
- gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sMagicBorderR, sMagicBorderG, sMagicBorderB, interfaceCtx->magicAlpha);
if (CVar_GetS32("gHudColors", 1) == 2) {//Original game add color there so to prevent miss match we make it all white :)
- gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255);
+ gDPSetEnvColor(OVERLAY_DISP++, 255, 255, 255, 255);
} else {
gDPSetEnvColor(OVERLAY_DISP++, 100, 50, 50, 255);
}
+ gDPSetPrimColor(OVERLAY_DISP++, 0, 0, sMagicBorderR, sMagicBorderG, sMagicBorderB, interfaceCtx->magicAlpha);
- OVERLAY_DISP =
- Gfx_TextureIA8(OVERLAY_DISP, gMagicBarEndTex, 8, 16, OTRGetRectDimensionFromLeftEdge(R_MAGIC_BAR_X + (Left_HUD_Margin*-1)),
- magicBarY, 8, 16, 1 << 10, 1 << 10);
+ OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gMagicBarEndTex, 8, 16, PosX_Start, magicBarY, 8, 16, 1 << 10, 1 << 10);
- OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gMagicBarMidTex, 24, 16, OTRGetRectDimensionFromLeftEdge(R_MAGIC_BAR_X + (Left_HUD_Margin*-1)) + 8, magicBarY,
- gSaveContext.unk_13F4, 16, 1 << 10, 1 << 10);
+ OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gMagicBarMidTex, 24, 16, PosX_MidEnd, magicBarY, gSaveContext.unk_13F4, 16, 1 << 10, 1 << 10);
gDPLoadTextureBlock(OVERLAY_DISP++, gMagicBarEndTex, G_IM_FMT_IA, G_IM_SIZ_8b, 8, 16, 0,
G_TX_MIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 3, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
- const s16 rMagicBarX = OTRGetRectDimensionFromLeftEdge(R_MAGIC_BAR_X + (Left_HUD_Margin*-1));
-
gSPWideTextureRectangle(OVERLAY_DISP++, ((rMagicBarX + gSaveContext.unk_13F4) + 8) << 2, magicBarY << 2,
((rMagicBarX + gSaveContext.unk_13F4) + 16) << 2, (magicBarY + 16) << 2, G_TX_RENDERTILE,
256, 0, 1 << 10, 1 << 10);
@@ -2873,8 +2943,6 @@ void Interface_DrawMagicBar(GlobalContext* globalCtx) {
ENVIRONMENT, TEXEL0, ENVIRONMENT, 0, 0, 0, PRIMITIVE);
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255);
- const s16 rMagicFillX = OTRGetRectDimensionFromLeftEdge(R_MAGIC_FILL_X + (Left_HUD_Margin*-1));
-
if (gSaveContext.unk_13F0 == 4) {
// Yellow part of the bar indicating the amount of magic to be subtracted
if (CVar_GetS32("gHudColors", 1) == 2) {
@@ -2982,10 +3050,214 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
s16 width;
s16 height;
- s16 C_Left_BTN_Pos[] = { C_LEFT_BUTTON_X+Right_HUD_Margin, C_LEFT_BUTTON_Y+(Top_HUD_Margin*-1) }; //(X,Y)
- s16 C_Right_BTN_Pos[] = { C_RIGHT_BUTTON_X+Right_HUD_Margin, C_RIGHT_BUTTON_Y+(Top_HUD_Margin*-1) };
- s16 C_Up_BTN_Pos[] = { C_UP_BUTTON_X+Right_HUD_Margin, C_UP_BUTTON_Y+(Top_HUD_Margin*-1) };
- s16 C_Down_BTN_Pos[] = { C_DOWN_BUTTON_X+Right_HUD_Margin, C_DOWN_BUTTON_Y+(Top_HUD_Margin*-1) };
+ //B Button
+ s16 X_Margins_BtnB;
+ s16 Y_Margins_BtnB;
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {
+ if (CVar_GetS32("gBBtnPosType", 0) == 0) {X_Margins_BtnB = Right_HUD_Margin;};
+ Y_Margins_BtnB = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_BtnB = 0;
+ Y_Margins_BtnB = 0;
+ }
+ s16 PosX_BtnB_ori = OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(0)+X_Margins_BtnB);
+ s16 PosY_BtnB_ori = R_ITEM_BTN_Y(0)+Y_Margins_BtnB;
+ s16 PosX_BtnB;
+ s16 PosY_BtnB;
+ if (CVar_GetS32("gBBtnPosType", 0) != 0) {
+ PosY_BtnB = CVar_GetS32("gBBtnPosY", 0)+Y_Margins_BtnB;
+ if (CVar_GetS32("gBBtnPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {X_Margins_BtnB = Left_HUD_Margin;};
+ PosX_BtnB = OTRGetDimensionFromLeftEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB);
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {X_Margins_BtnB = Right_HUD_Margin;};
+ PosX_BtnB = OTRGetDimensionFromRightEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB);
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 3) {//Anchor None
+ PosX_BtnB = CVar_GetS32("gBBtnPosX", 0);
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 4) {//Hidden
+ PosX_BtnB = -9999;
+ }
+ } else {
+ PosY_BtnB = PosY_BtnB_ori;
+ PosX_BtnB = PosX_BtnB_ori;
+ }
+ //Start Button
+ s16 X_Margins_StartBtn;
+ s16 Y_Margins_StartBtn;
+ if (CVar_GetS32("gStartBtnUseMargins", 0) != 0) {
+ if (CVar_GetS32("gStartBtnPosType", 0) == 0) {
+ X_Margins_StartBtn = Right_HUD_Margin;
+ };
+ Y_Margins_StartBtn = Top_HUD_Margin*-1;
+ } else {
+ X_Margins_StartBtn = 0;
+ Y_Margins_StartBtn = 0;
+ }
+ s16 StartBtn_Icon_H = 32;
+ s16 StartBtn_Icon_W = 32;
+ int StartBTN_H_Scaled = StartBtn_Icon_H * 0.75f;
+ int StartBTN_W_Scaled = StartBtn_Icon_W * 0.75f;
+ int StartBTN_W_factor = (1 << 10) * StartBtn_Icon_W / StartBTN_W_Scaled;
+ int StartBTN_H_factor = (1 << 10) * StartBtn_Icon_H / StartBTN_H_Scaled;
+ const s16 rStartLabelX_ori = OTRGetRectDimensionFromRightEdge(R_START_LABEL_X(gSaveContext.language)+X_Margins_StartBtn);
+ const s16 rStartLabelY_ori = R_START_LABEL_Y(gSaveContext.language)+Y_Margins_StartBtn;
+ const s16 PosX_StartBtn_ori = OTRGetRectDimensionFromRightEdge(startButtonLeftPos[gSaveContext.language]+X_Margins_StartBtn);
+ const s16 PosY_StartBtn_ori = 16+Y_Margins_StartBtn;
+ s16 StartBTN_Label_W = DO_ACTION_TEX_WIDTH;
+ s16 StartBTN_Label_H = DO_ACTION_TEX_HEIGHT;
+ int StartBTN_Label_H_Scaled = StartBTN_Label_H * 1.0f;
+ int StartBTN_Label_W_Scaled = StartBTN_Label_W * 1.0f;
+ int StartBTN_Label_W_factor = (1 << 10) * StartBTN_Label_W / StartBTN_Label_W_Scaled;
+ int StartBTN_Label_H_factor = (1 << 10) * StartBTN_Label_H / StartBTN_Label_H_Scaled;
+ const s16 StartBtn_Label_W_ori = StartBTN_Label_W / (R_START_LABEL_DD(gSaveContext.language) / 100.0f);
+ const s16 StartBtn_Label_H_ori = StartBTN_Label_H / (R_START_LABEL_DD(gSaveContext.language) / 100.0f);
+ s16 PosX_StartBtn;
+ s16 PosY_StartBtn;
+ s16 rStartLabelX;
+ s16 rStartLabelY;
+ if (CVar_GetS32("gStartBtnPosType", 0) != 0) {
+ PosY_StartBtn = CVar_GetS32("gStartBtnPosY", 0)+Y_Margins_StartBtn;
+ rStartLabelY = CVar_GetS32("gStartBtnPosY", 0)+Y_Margins_StartBtn+3;
+ if (CVar_GetS32("gStartBtnPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gStartBtnUseMargins", 0) != 0) {X_Margins_StartBtn = Left_HUD_Margin;};
+ PosX_StartBtn = OTRGetDimensionFromLeftEdge(CVar_GetS32("gStartBtnPosX", 0)+X_Margins_StartBtn);
+ rStartLabelX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gStartBtnPosX", 0)+X_Margins_StartBtn-12);
+ } else if (CVar_GetS32("gStartBtnPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gStartBtnUseMargins", 0) != 0) {X_Margins_StartBtn = Right_HUD_Margin;};
+ PosX_StartBtn = OTRGetDimensionFromRightEdge(CVar_GetS32("gStartBtnPosX", 0)+X_Margins_StartBtn);
+ rStartLabelX = OTRGetDimensionFromRightEdge(CVar_GetS32("gStartBtnPosX", 0)+X_Margins_StartBtn-12);
+ } else if (CVar_GetS32("gStartBtnPosType", 0) == 3) {//Anchor None
+ PosX_StartBtn = CVar_GetS32("gStartBtnPosX", 0);
+ rStartLabelX = CVar_GetS32("gStartBtnPosX", 0)-12;
+ } else if (CVar_GetS32("gStartBtnPosType", 0) == 4) {//Hidden
+ PosX_StartBtn = -9999;
+ rStartLabelX = -9999;
+ }
+ } else {
+ PosY_StartBtn = PosY_StartBtn_ori;
+ PosX_StartBtn = PosX_StartBtn_ori;
+ rStartLabelY = rStartLabelY_ori;
+ rStartLabelX = rStartLabelX_ori;
+ }
+ //C Buttons position
+ s16 X_Margins_CL;
+ s16 X_Margins_CR;
+ s16 X_Margins_CU;
+ s16 X_Margins_CD;
+ s16 Y_Margins_CL;
+ s16 Y_Margins_CR;
+ s16 Y_Margins_CU;
+ s16 Y_Margins_CD;
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnLPosType", 0) == 0) {X_Margins_CL = Right_HUD_Margin;};
+ Y_Margins_CL = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CL = 0;
+ Y_Margins_CL = 0;
+ }
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnRPosType", 0) == 0) {X_Margins_CR = Right_HUD_Margin;};
+ Y_Margins_CR = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CR = 0;
+ Y_Margins_CR = 0;
+ }
+ if (CVar_GetS32("gCBtnUUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnUPosType", 0) == 0) {X_Margins_CU = Right_HUD_Margin;};
+ Y_Margins_CU = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CU = 0;
+ Y_Margins_CU = 0;
+ }
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnDPosType", 0) == 0) {X_Margins_CD = Right_HUD_Margin;};
+ Y_Margins_CD = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CD = 0;
+ Y_Margins_CD = 0;
+ }
+ const s16 C_Left_BTN_Pos_ori[] = { C_LEFT_BUTTON_X+X_Margins_CL, C_LEFT_BUTTON_Y+Y_Margins_CL }; //(X,Y)
+ const s16 C_Right_BTN_Pos_ori[] = { C_RIGHT_BUTTON_X+X_Margins_CR, C_RIGHT_BUTTON_Y+Y_Margins_CR };
+ const s16 C_Up_BTN_Pos_ori[] = { C_UP_BUTTON_X+X_Margins_CU, C_UP_BUTTON_Y+Y_Margins_CU };
+ const s16 C_Down_BTN_Pos_ori[] = { C_DOWN_BUTTON_X+X_Margins_CD, C_DOWN_BUTTON_Y+Y_Margins_CD };
+ s16 LabelX_Navi=8;
+ s16 LabelY_Navi=4 - !!CVar_GetS32("gNaviTextFix", 0);
+ s16 C_Left_BTN_Pos[2]; //(X,Y)
+ s16 C_Right_BTN_Pos[2];
+ s16 C_Up_BTN_Pos[2];
+ s16 C_Down_BTN_Pos[2];
+ //C button Left
+ if (CVar_GetS32("gCBtnLPosType", 0) != 0) {
+ C_Left_BTN_Pos[1] = CVar_GetS32("gCBtnLPosY", 0)+Y_Margins_CL;
+ if (CVar_GetS32("gCBtnLPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {X_Margins_CL = Left_HUD_Margin;};
+ C_Left_BTN_Pos[0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL);
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {X_Margins_CL = Right_HUD_Margin;};
+ C_Left_BTN_Pos[0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL);
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 3) {//Anchor None
+ C_Left_BTN_Pos[0] = CVar_GetS32("gCBtnLPosX", 0);
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 4) {//Hidden
+ C_Left_BTN_Pos[0] = -9999;
+ }
+ } else {
+ C_Left_BTN_Pos[1] = C_Left_BTN_Pos_ori[1];
+ C_Left_BTN_Pos[0] = OTRGetRectDimensionFromRightEdge(C_Left_BTN_Pos_ori[0]);
+ }
+ //C button Right
+ if (CVar_GetS32("gCBtnRPosType", 0) != 0) {
+ C_Right_BTN_Pos[1] = CVar_GetS32("gCBtnRPosY", 0)+Y_Margins_CR;
+ if (CVar_GetS32("gCBtnRPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {X_Margins_CR = Left_HUD_Margin;};
+ C_Right_BTN_Pos[0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR);
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {X_Margins_CR = Right_HUD_Margin;};
+ C_Right_BTN_Pos[0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR);
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 3) {//Anchor None
+ C_Right_BTN_Pos[0] = CVar_GetS32("gCBtnRPosX", 0);
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 4) {//Hidden
+ C_Right_BTN_Pos[0] = -9999;
+ }
+ } else {
+ C_Right_BTN_Pos[1] = C_Right_BTN_Pos_ori[1];
+ C_Right_BTN_Pos[0] = OTRGetRectDimensionFromRightEdge(C_Right_BTN_Pos_ori[0]);
+ }
+ //C Button Up
+ if (CVar_GetS32("gCBtnUPosType", 0) != 0) {
+ C_Up_BTN_Pos[1] = CVar_GetS32("gCBtnUPosY", 0)+Y_Margins_CU;
+ if (CVar_GetS32("gCBtnUPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnUUseMargins", 0) != 0) {X_Margins_CU = Left_HUD_Margin;};
+ C_Up_BTN_Pos[0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnUPosX", 0)+X_Margins_CU);
+ } else if (CVar_GetS32("gCBtnUPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnUUseMargins", 0) != 0) {X_Margins_CU = Right_HUD_Margin;};
+ C_Up_BTN_Pos[0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnUPosX", 0)+X_Margins_CU);
+ } else if (CVar_GetS32("gCBtnUPosType", 0) == 3) {//Anchor None
+ C_Up_BTN_Pos[0] = CVar_GetS32("gCBtnUPosX", 0);
+ } else if (CVar_GetS32("gCBtnUPosType", 0) == 4) {//Hidden
+ C_Up_BTN_Pos[0] = -9999;
+ }
+ } else {
+ C_Up_BTN_Pos[1] = C_Up_BTN_Pos_ori[1];
+ C_Up_BTN_Pos[0] = OTRGetRectDimensionFromRightEdge(C_Up_BTN_Pos_ori[0]);
+ }
+ //C Button down
+ if (CVar_GetS32("gCBtnDPosType", 0) != 0) {
+ C_Down_BTN_Pos[1] = CVar_GetS32("gCBtnDPosY", 0)+Y_Margins_CD;
+ if (CVar_GetS32("gCBtnDPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Left_HUD_Margin;};
+ C_Down_BTN_Pos[0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD);
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Right_HUD_Margin;};
+ C_Down_BTN_Pos[0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD);
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 3) {//Anchor None
+ C_Down_BTN_Pos[0] = CVar_GetS32("gCBtnDPosX", 0);
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 4) {//Hidden
+ C_Down_BTN_Pos[0] = -9999;
+ }
+ } else {
+ C_Down_BTN_Pos[1] = C_Down_BTN_Pos_ori[1];
+ C_Down_BTN_Pos[0] = OTRGetRectDimensionFromRightEdge(C_Down_BTN_Pos_ori[0]);
+ }
OPEN_DISPS(globalCtx->state.gfxCtx);
@@ -3002,9 +3274,7 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
}
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255);
- OVERLAY_DISP =
- Gfx_TextureIA8(OVERLAY_DISP, gButtonBackgroundTex, 32, 32, OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(0)+Right_HUD_Margin), R_ITEM_BTN_Y(0)+(Top_HUD_Margin*-1),
- R_ITEM_BTN_WIDTH(0), R_ITEM_BTN_WIDTH(0), R_ITEM_BTN_DD(0) << 1, R_ITEM_BTN_DD(0) << 1);
+ OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gButtonBackgroundTex, 32, 32, PosX_BtnB, PosY_BtnB, R_ITEM_BTN_WIDTH(0), R_ITEM_BTN_WIDTH(0), R_ITEM_BTN_DD(0) << 1, R_ITEM_BTN_DD(0) << 1);
// C-Left Button Color & Texture
gDPPipeSync(OVERLAY_DISP++);
@@ -3012,11 +3282,13 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cLeftAlpha);
} else if (CVar_GetS32("gHudColors", 1) == 1) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cLeftAlpha);
- } else if (CVar_GetS32("gHudColors", 1) == 2) {
+ } else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated",0)) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cLeftAlpha);
+ } else if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated",0)) {
+ gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCLBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCLBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCLBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cLeftAlpha);
}
- gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(C_Left_BTN_Pos[0]) << 2, C_Left_BTN_Pos[1] << 2,
- (OTRGetRectDimensionFromRightEdge(C_Left_BTN_Pos[0]) + R_ITEM_BTN_WIDTH(1)) << 2,
+ gSPWideTextureRectangle(OVERLAY_DISP++, C_Left_BTN_Pos[0] << 2, C_Left_BTN_Pos[1] << 2,
+ (C_Left_BTN_Pos[0] + R_ITEM_BTN_WIDTH(1)) << 2,
(C_Left_BTN_Pos[1] + R_ITEM_BTN_WIDTH(1)) << 2,
G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(1) << 1, R_ITEM_BTN_DD(1) << 1);
@@ -3025,11 +3297,13 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cDownAlpha);
} else if (CVar_GetS32("gHudColors", 1) == 1) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cDownAlpha);
- } else if (CVar_GetS32("gHudColors", 1) == 2) {
+ } else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated",0)) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cDownAlpha);
+ } else if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated",0)) {
+ gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCDBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCDBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCDBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cDownAlpha);
}
- gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(C_Down_BTN_Pos[0]) << 2, C_Down_BTN_Pos[1] << 2,
- (OTRGetRectDimensionFromRightEdge(C_Down_BTN_Pos[0]) + R_ITEM_BTN_WIDTH(2)) << 2,
+ gSPWideTextureRectangle(OVERLAY_DISP++, C_Down_BTN_Pos[0] << 2, C_Down_BTN_Pos[1] << 2,
+ (C_Down_BTN_Pos[0] + R_ITEM_BTN_WIDTH(2)) << 2,
(C_Down_BTN_Pos[1] + R_ITEM_BTN_WIDTH(2)) << 2,
G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(2) << 1, R_ITEM_BTN_DD(2) << 1);
@@ -3038,11 +3312,13 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cRightAlpha);
} else if (CVar_GetS32("gHudColors", 1) == 1) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), interfaceCtx->cRightAlpha);
- } else if (CVar_GetS32("gHudColors", 1) == 2) {
+ } else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated",0)) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cRightAlpha);
+ } else if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated",0)) {
+ gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCRBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCRBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCRBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cRightAlpha);
}
- gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(C_Right_BTN_Pos[0]) << 2, C_Right_BTN_Pos[1] << 2,
- (OTRGetRectDimensionFromRightEdge(C_Right_BTN_Pos[0]) + R_ITEM_BTN_WIDTH(3)) << 2,
+ gSPWideTextureRectangle(OVERLAY_DISP++, C_Right_BTN_Pos[0] << 2, C_Right_BTN_Pos[1] << 2,
+ (C_Right_BTN_Pos[0] + R_ITEM_BTN_WIDTH(3)) << 2,
(C_Right_BTN_Pos[1] + R_ITEM_BTN_WIDTH(3)) << 2,
G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(3) << 1, R_ITEM_BTN_DD(3) << 1);
@@ -3057,9 +3333,9 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
} else if (CVar_GetS32("gHudColors", 1) == 2) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCStartBtnPrimR", 120), CVar_GetS32("gCCStartBtnPrimG", 120), CVar_GetS32("gCCStartBtnPrimB", 120), interfaceCtx->startAlpha);
}
- gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(startButtonLeftPos[gSaveContext.language]+Right_HUD_Margin) << 2, 68+((Top_HUD_Margin*-1)*4),
- (OTRGetRectDimensionFromRightEdge(startButtonLeftPos[gSaveContext.language]+Right_HUD_Margin) + 22) << 2, 156+((Top_HUD_Margin*-1)*4),
- G_TX_RENDERTILE, 0, 0, 1462, 1462);
+ gSPWideTextureRectangle(OVERLAY_DISP++, PosX_StartBtn << 2, PosY_StartBtn << 2,
+ (PosX_StartBtn + StartBTN_W_Scaled) << 2, (PosY_StartBtn + StartBTN_H_Scaled) << 2,
+ G_TX_RENDERTILE, 0, 0, StartBTN_W_factor, StartBTN_H_factor);
gDPPipeSync(OVERLAY_DISP++);
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->startAlpha);
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 0);
@@ -3089,14 +3365,11 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 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);
- dxdy = (1 << 10) / (R_START_LABEL_DD(gSaveContext.language) / 100.0f);
- width = DO_ACTION_TEX_WIDTH / (R_START_LABEL_DD(gSaveContext.language) / 100.0f);
- height = DO_ACTION_TEX_HEIGHT / (R_START_LABEL_DD(gSaveContext.language) / 100.0f);
- const s16 rStartLabelX = OTRGetRectDimensionFromRightEdge(R_START_LABEL_X(gSaveContext.language)+Right_HUD_Margin);
+ //const s16 rStartLabelX = OTRGetRectDimensionFromRightEdge(R_START_LABEL_X(gSaveContext.language)+Right_HUD_Margin);
gSPWideTextureRectangle(
- OVERLAY_DISP++, rStartLabelX << 2,
- R_START_LABEL_Y(gSaveContext.language)+(Top_HUD_Margin*-1) << 2, (rStartLabelX + width) << 2,
- (R_START_LABEL_Y(gSaveContext.language)+(Top_HUD_Margin*-1) + height) << 2, G_TX_RENDERTILE, 0, 0, dxdy, dxdy);
+ OVERLAY_DISP++, rStartLabelX << 2, rStartLabelY << 2,
+ (rStartLabelX + StartBTN_Label_W) << 2,
+ (rStartLabelY + StartBTN_Label_H) << 2, G_TX_RENDERTILE, 0, 0, StartBTN_Label_W_factor, StartBTN_Label_H_factor);
}
}
@@ -3115,18 +3388,18 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
temp = interfaceCtx->healthAlpha;
}
- const s16 rCUpBtnX = OTRGetRectDimensionFromRightEdge(R_C_UP_BTN_X+Right_HUD_Margin);
- const s16 rCUPIconX = OTRGetRectDimensionFromRightEdge(R_C_UP_ICON_X+Right_HUD_Margin-!!CVar_GetS32("gNaviTextFix", 0));
if (CVar_GetS32("gHudColors", 1) == 0) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), temp);
} else if (CVar_GetS32("gHudColors", 1) == 1) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2), temp);
- } else if (CVar_GetS32("gHudColors", 1) == 2) {
+ } else if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated",0)) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCBtnPrimB", R_C_BTN_COLOR(2)), temp);
+ } else if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated",0)) {
+ gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCUBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCUBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCUBtnPrimB", R_C_BTN_COLOR(2)), temp);
}
gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
- gSPWideTextureRectangle(OVERLAY_DISP++, rCUpBtnX << 2, R_C_UP_BTN_Y+(Top_HUD_Margin*-1) << 2, (rCUpBtnX + 16) << 2,
- (R_C_UP_BTN_Y+(Top_HUD_Margin*-1) + 16) << 2, G_TX_RENDERTILE, 0, 0, 2 << 10, 2 << 10);
+ gSPWideTextureRectangle(OVERLAY_DISP++, C_Up_BTN_Pos[0] << 2, C_Up_BTN_Pos[1] << 2, (C_Up_BTN_Pos[0] + 16) << 2,
+ (C_Up_BTN_Pos[1] + 16) << 2, G_TX_RENDERTILE, 0, 0, 2 << 10, 2 << 10);
gDPPipeSync(OVERLAY_DISP++);
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, temp);
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 0);
@@ -3137,8 +3410,9 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
- gSPWideTextureRectangle(OVERLAY_DISP++, rCUPIconX << 2, R_C_UP_ICON_Y+(Top_HUD_Margin*-1) << 2, (rCUPIconX + 32) << 2,
- (R_C_UP_ICON_Y+(Top_HUD_Margin*-1) + 8) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
+ gSPWideTextureRectangle(OVERLAY_DISP++, C_Up_BTN_Pos[0]-LabelX_Navi << 2, C_Up_BTN_Pos[1]+LabelY_Navi << 2,
+ (C_Up_BTN_Pos[0]-LabelX_Navi + 32) << 2, (C_Up_BTN_Pos[1]+LabelY_Navi + 8) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
+
}
sCUpTimer--;
@@ -3153,6 +3427,94 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
// Empty C Button Arrows
for (temp = 1; temp < 4; temp++) {
if (gSaveContext.equips.buttonItems[temp] > 0xF0) {
+ s16 X_Margins_CL;
+ s16 X_Margins_CR;
+ s16 X_Margins_CD;
+ s16 Y_Margins_CL;
+ s16 Y_Margins_CR;
+ s16 Y_Margins_CD;
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnLPosType", 0) == 0) {X_Margins_CL = Right_HUD_Margin;};
+ Y_Margins_CL = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CL = 0;
+ Y_Margins_CL = 0;
+ }
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnRPosType", 0) == 0) {X_Margins_CR = Right_HUD_Margin;};
+ Y_Margins_CR = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CR = 0;
+ Y_Margins_CR = 0;
+ }
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnDPosType", 0) == 0) {X_Margins_CD = Right_HUD_Margin;};
+ Y_Margins_CD = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CD = 0;
+ Y_Margins_CD = 0;
+ }
+ const s16 ItemIconPos_ori[3][2] = {
+ { R_ITEM_ICON_X(1)+X_Margins_CL, R_ITEM_ICON_Y(1)+Y_Margins_CL },
+ { R_ITEM_ICON_X(2)+X_Margins_CD, R_ITEM_ICON_Y(2)+Y_Margins_CD },
+ { R_ITEM_ICON_X(3)+X_Margins_CR, R_ITEM_ICON_Y(3)+Y_Margins_CR },
+ };
+ s16 ItemIconPos[3][2]; //(X,Y)
+ //C button Left
+ if (CVar_GetS32("gCBtnLPosType", 0) != 0) {
+ ItemIconPos[0][1] = CVar_GetS32("gCBtnLPosY", 0)+Y_Margins_CL;
+ if (CVar_GetS32("gCBtnLPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {X_Margins_CL = Left_HUD_Margin;};
+ ItemIconPos[0][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL);
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {X_Margins_CL = Right_HUD_Margin;};
+ ItemIconPos[0][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL);
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 3) {//Anchor None
+ ItemIconPos[0][0] = CVar_GetS32("gCBtnLPosX", 0);
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 4) {//Hidden
+ ItemIconPos[0][0] = -9999;
+ }
+ } else {
+ ItemIconPos[0][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[0][0]);
+ ItemIconPos[0][1] = ItemIconPos_ori[0][1];
+ }
+ //C Button down
+ if (CVar_GetS32("gCBtnDPosType", 0) != 0) {
+ ItemIconPos[1][1] = CVar_GetS32("gCBtnDPosY", 0)+Y_Margins_CD;
+ if (CVar_GetS32("gCBtnDPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Left_HUD_Margin;};
+ ItemIconPos[1][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD);
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Right_HUD_Margin;};
+ ItemIconPos[1][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD);
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 3) {//Anchor None
+ ItemIconPos[1][0] = CVar_GetS32("gCBtnDPosX", 0);
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 4) {//Hidden
+ ItemIconPos[1][0] = -9999;
+ }
+ } else {
+ ItemIconPos[1][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[1][0]);
+ ItemIconPos[1][1] = ItemIconPos_ori[1][1];
+ }
+ //C button Right
+ if (CVar_GetS32("gCBtnRPosType", 0) != 0) {
+ ItemIconPos[2][1] = CVar_GetS32("gCBtnRPosY", 0)+Y_Margins_CR;
+ if (CVar_GetS32("gCBtnRPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {X_Margins_CR = Left_HUD_Margin;};
+ ItemIconPos[2][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR);
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {X_Margins_CR = Right_HUD_Margin;};
+ ItemIconPos[2][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR);
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 3) {//Anchor None
+ ItemIconPos[2][0] = CVar_GetS32("gCBtnRPosX", 0);
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 4) {//Hidden
+ ItemIconPos[2][0] = -9999;
+ }
+ } else {
+ ItemIconPos[2][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[2][0]);
+ ItemIconPos[2][1] = ItemIconPos_ori[2][1];
+ }
+
if (temp == 1) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, R_C_BTN_COLOR(0), R_C_BTN_COLOR(1), R_C_BTN_COLOR(2),
interfaceCtx->cLeftAlpha);
@@ -3164,13 +3526,21 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
interfaceCtx->cRightAlpha);
}
- if (CVar_GetS32("gHudColors", 1) == 2) {
- //This later will feature color per C button right now that it.
+ if (CVar_GetS32("gHudColors", 1) == 2 && !CVar_GetS32("gCCparated", 0)) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCBtnPrimB", R_C_BTN_COLOR(2)), interfaceCtx->cRightAlpha);
+ } else if (temp == 1 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
+ gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCLBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCLBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCLBtnPrimB", R_C_BTN_COLOR(2)),
+ interfaceCtx->cLeftAlpha);
+ } else if (temp == 2 && CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
+ gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCDBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCDBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCDBtnPrimB", R_C_BTN_COLOR(2)),
+ interfaceCtx->cDownAlpha);
+ } else if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gCCparated", 0)) {
+ gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCCRBtnPrimR", R_C_BTN_COLOR(0)), CVar_GetS32("gCCCRBtnPrimG", R_C_BTN_COLOR(1)), CVar_GetS32("gCCCRBtnPrimB", R_C_BTN_COLOR(2)),
+ interfaceCtx->cRightAlpha);
}
-
- OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, ((u8*)gButtonBackgroundTex), 32, 32,
- OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(temp)+Right_HUD_Margin), R_ITEM_BTN_Y(temp)+(Top_HUD_Margin*-1), R_ITEM_BTN_WIDTH(temp),
+
+ OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, ((u8*)gButtonBackgroundTex), 32, 32,
+ ItemIconPos[temp-1][0], ItemIconPos[temp-1][1], R_ITEM_BTN_WIDTH(temp),
R_ITEM_BTN_WIDTH(temp), R_ITEM_BTN_DD(temp) << 1, R_ITEM_BTN_DD(temp) << 1);
const char* cButtonIcons[] = { gButtonBackgroundTex, gEquippedItemOutlineTex, gEmptyCLeftArrowTex,
@@ -3178,7 +3548,7 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
};
OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, cButtonIcons[(temp + 1)], 32, 32,
- OTRGetRectDimensionFromRightEdge(R_ITEM_BTN_X(temp)+Right_HUD_Margin), R_ITEM_BTN_Y(temp)+(Top_HUD_Margin*-1), R_ITEM_BTN_WIDTH(temp),
+ ItemIconPos[temp-1][0], ItemIconPos[temp-1][1], R_ITEM_BTN_WIDTH(temp),
R_ITEM_BTN_WIDTH(temp), R_ITEM_BTN_DD(temp) << 1, R_ITEM_BTN_DD(temp) << 1);
}
}
@@ -3186,25 +3556,192 @@ void Interface_DrawItemButtons(GlobalContext* globalCtx) {
CLOSE_DISPS(globalCtx->state.gfxCtx);
}
-int16_t gItemIconX[] = { B_BUTTON_X, C_LEFT_BUTTON_X, C_DOWN_BUTTON_X, C_RIGHT_BUTTON_X,
- DPAD_UP_X, DPAD_DOWN_X, DPAD_LEFT_X, DPAD_RIGHT_X };
-int16_t gItemIconY[] = { B_BUTTON_Y, C_LEFT_BUTTON_Y, C_DOWN_BUTTON_Y, C_RIGHT_BUTTON_Y,
- DPAD_UP_Y, DPAD_DOWN_Y, DPAD_LEFT_Y, DPAD_RIGHT_Y };
int16_t gItemIconWidth[] = { 30, 24, 24, 24, 16, 16, 16, 16 };
int16_t gItemIconDD[] = { 550, 680, 680, 680, 1024, 1024, 1024, 1024 };
void Interface_DrawItemIconTexture(GlobalContext* globalCtx, void* texture, s16 button) {
OPEN_DISPS(globalCtx->state.gfxCtx);
+ s16 X_Margins_CL;
+ s16 X_Margins_CR;
+ s16 X_Margins_CD;
+ s16 Y_Margins_CL;
+ s16 Y_Margins_CR;
+ s16 Y_Margins_CD;
+ s16 X_Margins_BtnB;
+ s16 Y_Margins_BtnB;
+ s16 X_Margins_DPad_Items;
+ s16 Y_Margins_DPad_Items;
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {
+ if (CVar_GetS32("gBBtnPosType", 0) == 0) {X_Margins_BtnB = Right_HUD_Margin;};
+ Y_Margins_BtnB = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_BtnB = 0;
+ Y_Margins_BtnB = 0;
+ }
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnLPosType", 0) == 0) {X_Margins_CL = Right_HUD_Margin;};
+ Y_Margins_CL = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CL = 0;
+ Y_Margins_CL = 0;
+ }
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnRPosType", 0) == 0) {X_Margins_CR = Right_HUD_Margin;};
+ Y_Margins_CR = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CR = 0;
+ Y_Margins_CR = 0;
+ }
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnDPosType", 0) == 0) {X_Margins_CD = Right_HUD_Margin;};
+ Y_Margins_CD = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CD = 0;
+ Y_Margins_CD = 0;
+ }
+ if (CVar_GetS32("gDPadUseMargins", 0) != 0) {
+ if (CVar_GetS32("gDPadPosType", 0) == 0) {X_Margins_DPad_Items = Right_HUD_Margin;};
+ Y_Margins_DPad_Items = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_DPad_Items = 0;
+ Y_Margins_DPad_Items = 0;
+ }
+ const s16 ItemIconPos_ori[8][2] = {
+ { B_BUTTON_X+X_Margins_BtnB, B_BUTTON_Y+Y_Margins_BtnB },
+ { C_LEFT_BUTTON_X+X_Margins_CL, C_LEFT_BUTTON_Y+Y_Margins_CL },
+ { C_DOWN_BUTTON_X+X_Margins_CD, C_DOWN_BUTTON_Y+Y_Margins_CD },
+ { C_RIGHT_BUTTON_X+X_Margins_CR, C_RIGHT_BUTTON_Y+Y_Margins_CR },
+ { DPAD_UP_X+X_Margins_DPad_Items, DPAD_UP_Y+Y_Margins_DPad_Items },
+ { DPAD_DOWN_X+X_Margins_DPad_Items, DPAD_DOWN_Y+Y_Margins_DPad_Items },
+ { DPAD_LEFT_X+X_Margins_DPad_Items, DPAD_LEFT_Y+Y_Margins_DPad_Items },
+ { DPAD_RIGHT_X+X_Margins_DPad_Items, DPAD_RIGHT_Y+Y_Margins_DPad_Items }
+ };
+ s16 DPad_ItemsOffset[4][2] = {
+ { 7,-8},//Up
+ { 7,24},//Down
+ {-9, 8},//Left
+ {23, 8},//Right
+ }; //(X,Y) Used with custom position to place it properly.
+ s16 ItemIconPos[8][2]; //(X,Y)
+ //DPadItems
+ if (CVar_GetS32("gDPadPosType", 0) != 0) {
+ ItemIconPos[4][1] = CVar_GetS32("gDPadPosY", 0)+Y_Margins_DPad_Items+DPad_ItemsOffset[0][1];//Up
+ ItemIconPos[5][1] = CVar_GetS32("gDPadPosY", 0)+Y_Margins_DPad_Items+DPad_ItemsOffset[1][1];//Down
+ ItemIconPos[6][1] = CVar_GetS32("gDPadPosY", 0)+Y_Margins_DPad_Items+DPad_ItemsOffset[2][1];//Left
+ ItemIconPos[7][1] = CVar_GetS32("gDPadPosY", 0)+Y_Margins_DPad_Items+DPad_ItemsOffset[3][1];//Right
+ if (CVar_GetS32("gDPadPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gDPadUseMargins", 0) != 0) {X_Margins_DPad_Items = Left_HUD_Margin;};
+ ItemIconPos[4][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[0][0]);
+ ItemIconPos[5][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[1][0]);
+ ItemIconPos[6][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[2][0]);
+ ItemIconPos[7][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[3][0]);
+ } else if (CVar_GetS32("gDPadPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gDPadUseMargins", 0) != 0) {X_Margins_DPad_Items = Right_HUD_Margin;};
+ ItemIconPos[4][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[0][0]);
+ ItemIconPos[5][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[1][0]);
+ ItemIconPos[6][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[2][0]);
+ ItemIconPos[7][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[3][0]);
+ } else if (CVar_GetS32("gDPadPosType", 0) == 3) {//Anchor None
+ ItemIconPos[4][0] = CVar_GetS32("gDPadPosX", 0)+DPad_ItemsOffset[0][0];
+ ItemIconPos[5][0] = CVar_GetS32("gDPadPosX", 0)+DPad_ItemsOffset[1][0];
+ ItemIconPos[6][0] = CVar_GetS32("gDPadPosX", 0)+DPad_ItemsOffset[2][0];
+ ItemIconPos[7][0] = CVar_GetS32("gDPadPosX", 0)+DPad_ItemsOffset[3][0];
+ } else if (CVar_GetS32("gDPadPosType", 0) == 4) {//Hidden
+ ItemIconPos[4][0] = -9999;
+ ItemIconPos[5][0] = -9999;
+ ItemIconPos[6][0] = -9999;
+ ItemIconPos[7][0] = -9999;
+ }
+ } else {
+ ItemIconPos[4][0] = OTRGetDimensionFromRightEdge(ItemIconPos_ori[4][0]);
+ ItemIconPos[5][0] = OTRGetDimensionFromRightEdge(ItemIconPos_ori[5][0]);
+ ItemIconPos[6][0] = OTRGetDimensionFromRightEdge(ItemIconPos_ori[6][0]);
+ ItemIconPos[7][0] = OTRGetDimensionFromRightEdge(ItemIconPos_ori[7][0]);
+ ItemIconPos[4][1] = ItemIconPos_ori[4][1];
+ ItemIconPos[5][1] = ItemIconPos_ori[5][1];
+ ItemIconPos[6][1] = ItemIconPos_ori[6][1];
+ ItemIconPos[7][1] = ItemIconPos_ori[7][1];
+ }
+ //B Button
+ if (CVar_GetS32("gBBtnPosType", 0) != 0) {
+ ItemIconPos[0][1] = CVar_GetS32("gBBtnPosY", 0)+Y_Margins_BtnB;
+ if (CVar_GetS32("gBBtnPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {X_Margins_BtnB = Left_HUD_Margin;};
+ ItemIconPos[0][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB);
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {X_Margins_BtnB = Right_HUD_Margin;};
+ ItemIconPos[0][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB);
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 3) {//Anchor None
+ ItemIconPos[0][0] = CVar_GetS32("gBBtnPosX", 0);
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 4) {//Hidden
+ ItemIconPos[0][0] = -9999;
+ }
+ } else {
+ ItemIconPos[0][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[0][0]);
+ ItemIconPos[0][1] = ItemIconPos_ori[0][1];
+ }
+ //C button Left
+ if (CVar_GetS32("gCBtnLPosType", 0) != 0) {
+ ItemIconPos[1][1] = CVar_GetS32("gCBtnLPosY", 0)+Y_Margins_CL;
+ if (CVar_GetS32("gCBtnLPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {X_Margins_CL = Left_HUD_Margin;};
+ ItemIconPos[1][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL);
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {X_Margins_CL = Right_HUD_Margin;};
+ ItemIconPos[1][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL);
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 3) {//Anchor None
+ ItemIconPos[1][0] = CVar_GetS32("gCBtnLPosX", 0);
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 4) {//Hidden
+ ItemIconPos[1][0] = -9999;
+ }
+ } else {
+ ItemIconPos[1][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[1][0]);
+ ItemIconPos[1][1] = ItemIconPos_ori[1][1];
+ }
+ //C Button down
+ if (CVar_GetS32("gCBtnDPosType", 0) != 0) {
+ ItemIconPos[2][1] = CVar_GetS32("gCBtnDPosY", 0)+Y_Margins_CD;
+ if (CVar_GetS32("gCBtnDPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Left_HUD_Margin;};
+ ItemIconPos[2][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD);
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Right_HUD_Margin;};
+ ItemIconPos[2][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD);
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 3) {//Anchor None
+ ItemIconPos[2][0] = CVar_GetS32("gCBtnDPosX", 0);
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 4) {//Hidden
+ ItemIconPos[2][0] = -9999;
+ }
+ } else {
+ ItemIconPos[2][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[2][0]);
+ ItemIconPos[2][1] = ItemIconPos_ori[2][1];
+ }
+ //C button Right
+ if (CVar_GetS32("gCBtnRPosType", 0) != 0) {
+ ItemIconPos[3][1] = CVar_GetS32("gCBtnRPosY", 0)+Y_Margins_CR;
+ if (CVar_GetS32("gCBtnRPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {X_Margins_CR = Left_HUD_Margin;};
+ ItemIconPos[3][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR);
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {X_Margins_CR = Right_HUD_Margin;};
+ ItemIconPos[3][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR);
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 3) {//Anchor None
+ ItemIconPos[3][0] = CVar_GetS32("gCBtnRPosX", 0);
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 4) {//Hidden
+ ItemIconPos[3][0] = -9999;
+ }
+ } else {
+ ItemIconPos[3][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[3][0]);
+ ItemIconPos[3][1] = ItemIconPos_ori[3][1];
+ }
gDPLoadTextureBlock(OVERLAY_DISP++, texture, G_IM_FMT_RGBA, G_IM_SIZ_32b, 32, 32, 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);
- gSPWideTextureRectangle(
- OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(gItemIconX[button] + Right_HUD_Margin) << 2,
- gItemIconY[button] + (Top_HUD_Margin * -1) << 2,
- (OTRGetRectDimensionFromRightEdge(gItemIconX[button] + Right_HUD_Margin) + gItemIconWidth[button]) << 2,
- (gItemIconY[button] + (Top_HUD_Margin * -1) + gItemIconWidth[button]) << 2, G_TX_RENDERTILE, 0, 0,
- gItemIconDD[button] << 1, gItemIconDD[button] << 1);
+ gSPWideTextureRectangle(OVERLAY_DISP++, ItemIconPos[button][0] << 2, ItemIconPos[button][1] << 2,
+ (ItemIconPos[button][0] + gItemIconWidth[button]) << 2,
+ (ItemIconPos[button][1] + gItemIconWidth[button]) << 2, G_TX_RENDERTILE, 0, 0,
+ gItemIconDD[button] << 1, gItemIconDD[button] << 1);
CLOSE_DISPS(globalCtx->state.gfxCtx);
}
@@ -3223,6 +3760,181 @@ static int16_t gItemAmmoY[] = { B_BUTTON_Y + 18, C_LEFT_BUTTON_Y + 17, C_DOWN_BU
void Interface_DrawAmmoCount(GlobalContext* globalCtx, s16 button, s16 alpha) {
s16 i;
s16 ammo;
+ s16 X_Margins_CL;
+ s16 X_Margins_CR;
+ s16 X_Margins_CD;
+ s16 Y_Margins_CL;
+ s16 Y_Margins_CR;
+ s16 Y_Margins_CD;
+ s16 X_Margins_BtnB;
+ s16 Y_Margins_BtnB;
+ s16 X_Margins_DPad_Items;
+ s16 Y_Margins_DPad_Items;
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {
+ if (CVar_GetS32("gBBtnPosType", 0) == 0) {X_Margins_BtnB = Right_HUD_Margin;};
+ Y_Margins_BtnB = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_BtnB = 0;
+ Y_Margins_BtnB = 0;
+ }
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnLPosType", 0) == 0) {X_Margins_CL = Right_HUD_Margin;};
+ Y_Margins_CL = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CL = 0;
+ Y_Margins_CL = 0;
+ }
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnRPosType", 0) == 0) {X_Margins_CR = Right_HUD_Margin;};
+ Y_Margins_CR = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CR = 0;
+ Y_Margins_CR = 0;
+ }
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {
+ if (CVar_GetS32("gCBtnDPosType", 0) == 0) {X_Margins_CD = Right_HUD_Margin;};
+ Y_Margins_CD = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_CD = 0;
+ Y_Margins_CD = 0;
+ }
+ if (CVar_GetS32("gDPadUseMargins", 0) != 0) {
+ if (CVar_GetS32("gDPadPosType", 0) == 0) {X_Margins_DPad_Items = Right_HUD_Margin;};
+ Y_Margins_DPad_Items = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_DPad_Items = 0;
+ Y_Margins_DPad_Items = 0;
+ }
+ const s16 ItemIconPos_ori[8][2] = {
+ { R_ITEM_AMMO_X(0)+X_Margins_BtnB, R_ITEM_AMMO_Y(0)+Y_Margins_BtnB }, //Bow on Epona?
+ { R_ITEM_AMMO_X(1)+X_Margins_CL, R_ITEM_AMMO_Y(1)+Y_Margins_CL },
+ { R_ITEM_AMMO_X(2)+X_Margins_CD, R_ITEM_AMMO_Y(2)+Y_Margins_CD },
+ { R_ITEM_AMMO_X(3)+X_Margins_CR, R_ITEM_AMMO_Y(3)+Y_Margins_CR },
+ { DPAD_UP_X+X_Margins_DPad_Items, DPAD_UP_Y + 11 + Y_Margins_DPad_Items },
+ { DPAD_DOWN_X+X_Margins_DPad_Items, DPAD_DOWN_Y + 11 + Y_Margins_DPad_Items },
+ { DPAD_LEFT_X+X_Margins_DPad_Items, DPAD_LEFT_Y + 11 + Y_Margins_DPad_Items },
+ { DPAD_RIGHT_X+X_Margins_DPad_Items, DPAD_RIGHT_Y + 11 + Y_Margins_DPad_Items }
+ };
+ s16 ItemIconPos[8][2]; //(X,Y)
+ s16 DPad_ItemsOffset[4][2] = {
+ { 7, 3},//Up
+ { 7,35},//Down
+ {-9,19},//Left
+ {23,19},//Right
+ }; //(X,Y) Used with custom position to place it properly.
+ //DPadItems
+ if (CVar_GetS32("gDPadPosType", 0) != 0) {
+ ItemIconPos[4][1] = CVar_GetS32("gDPadPosY", 0)+Y_Margins_DPad_Items+DPad_ItemsOffset[0][1];//Up
+ ItemIconPos[5][1] = CVar_GetS32("gDPadPosY", 0)+Y_Margins_DPad_Items+DPad_ItemsOffset[1][1];//Down
+ ItemIconPos[6][1] = CVar_GetS32("gDPadPosY", 0)+Y_Margins_DPad_Items+DPad_ItemsOffset[2][1];//Left
+ ItemIconPos[7][1] = CVar_GetS32("gDPadPosY", 0)+Y_Margins_DPad_Items+DPad_ItemsOffset[3][1];//Right
+ if (CVar_GetS32("gDPadPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gDPadUseMargins", 0) != 0) {X_Margins_DPad_Items = Left_HUD_Margin;};
+ ItemIconPos[4][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[0][0]);
+ ItemIconPos[5][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[1][0]);
+ ItemIconPos[6][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[2][0]);
+ ItemIconPos[7][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[3][0]);
+ } else if (CVar_GetS32("gDPadPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gDPadUseMargins", 0) != 0) {X_Margins_DPad_Items = Right_HUD_Margin;};
+ ItemIconPos[4][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[0][0]);
+ ItemIconPos[5][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[1][0]);
+ ItemIconPos[6][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[2][0]);
+ ItemIconPos[7][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_DPad_Items+DPad_ItemsOffset[3][0]);
+ } else if (CVar_GetS32("gDPadPosType", 0) == 3) {//Anchor None
+ ItemIconPos[4][0] = CVar_GetS32("gDPadPosX", 0)+DPad_ItemsOffset[0][0];
+ ItemIconPos[5][0] = CVar_GetS32("gDPadPosX", 0)+DPad_ItemsOffset[1][0];
+ ItemIconPos[6][0] = CVar_GetS32("gDPadPosX", 0)+DPad_ItemsOffset[2][0];
+ ItemIconPos[7][0] = CVar_GetS32("gDPadPosX", 0)+DPad_ItemsOffset[3][0];
+ } else if (CVar_GetS32("gDPadPosType", 0) == 4) {//Hidden
+ ItemIconPos[4][0] = -9999;
+ ItemIconPos[5][0] = -9999;
+ ItemIconPos[6][0] = -9999;
+ ItemIconPos[7][0] = -9999;
+ }
+ } else {
+ ItemIconPos[4][0] = OTRGetDimensionFromRightEdge(ItemIconPos_ori[4][0]);
+ ItemIconPos[5][0] = OTRGetDimensionFromRightEdge(ItemIconPos_ori[5][0]);
+ ItemIconPos[6][0] = OTRGetDimensionFromRightEdge(ItemIconPos_ori[6][0]);
+ ItemIconPos[7][0] = OTRGetDimensionFromRightEdge(ItemIconPos_ori[7][0]);
+ ItemIconPos[4][1] = ItemIconPos_ori[4][1];
+ ItemIconPos[5][1] = ItemIconPos_ori[5][1];
+ ItemIconPos[6][1] = ItemIconPos_ori[6][1];
+ ItemIconPos[7][1] = ItemIconPos_ori[7][1];
+ }
+ //B Button
+ s16 PosX_adjust = 1;
+ s16 PosY_adjust = 17;
+ if (CVar_GetS32("gBBtnPosType", 0) != 0) {
+ ItemIconPos[0][1] = CVar_GetS32("gBBtnPosY", 0)+Y_Margins_BtnB+PosY_adjust;
+ if (CVar_GetS32("gBBtnPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {X_Margins_BtnB = Left_HUD_Margin;};
+ ItemIconPos[0][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB+PosX_adjust);
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {X_Margins_BtnB = Right_HUD_Margin;};
+ ItemIconPos[0][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB+PosX_adjust);
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 3) {//Anchor None
+ ItemIconPos[0][0] = CVar_GetS32("gBBtnPosX", 0)+PosX_adjust;
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 4) {//Hidden
+ ItemIconPos[0][0] = -9999;
+ }
+ } else {
+ ItemIconPos[0][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[0][0]);
+ ItemIconPos[0][1] = ItemIconPos_ori[0][1];
+ }
+ //C button Left
+ if (CVar_GetS32("gCBtnLPosType", 0) != 0) {
+ ItemIconPos[1][1] = CVar_GetS32("gCBtnLPosY", 0)+Y_Margins_CL+PosY_adjust;
+ if (CVar_GetS32("gCBtnLPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {X_Margins_CL = Left_HUD_Margin;};
+ ItemIconPos[1][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL+PosX_adjust);
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnLUseMargins", 0) != 0) {X_Margins_CL = Right_HUD_Margin;};
+ ItemIconPos[1][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnLPosX", 0)+X_Margins_CL+PosX_adjust);
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 3) {//Anchor None
+ ItemIconPos[1][0] = CVar_GetS32("gCBtnLPosX", 0)+PosX_adjust;
+ } else if (CVar_GetS32("gCBtnLPosType", 0) == 4) {//Hidden
+ ItemIconPos[1][0] = -9999;
+ }
+ } else {
+ ItemIconPos[1][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[1][0]);
+ ItemIconPos[1][1] = ItemIconPos_ori[1][1];
+ }
+ //C Button down
+ if (CVar_GetS32("gCBtnDPosType", 0) != 0) {
+ ItemIconPos[2][1] = CVar_GetS32("gCBtnDPosY", 0)+Y_Margins_CD+PosY_adjust;
+ if (CVar_GetS32("gCBtnDPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Left_HUD_Margin;};
+ ItemIconPos[2][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD+PosX_adjust);
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnDUseMargins", 0) != 0) {X_Margins_CD = Right_HUD_Margin;};
+ ItemIconPos[2][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnDPosX", 0)+X_Margins_CD+PosX_adjust);
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 3) {//Anchor None
+ ItemIconPos[2][0] = CVar_GetS32("gCBtnDPosX", 0)+PosX_adjust;
+ } else if (CVar_GetS32("gCBtnDPosType", 0) == 4) {//Hidden
+ ItemIconPos[2][0] = -9999;
+ }
+ } else {
+ ItemIconPos[2][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[2][0]);
+ ItemIconPos[2][1] = ItemIconPos_ori[2][1];
+ }
+ //C button Right
+ if (CVar_GetS32("gCBtnRPosType", 0) != 0) {
+ ItemIconPos[3][1] = CVar_GetS32("gCBtnRPosY", 0)+Y_Margins_CR+PosY_adjust;
+ if (CVar_GetS32("gCBtnRPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {X_Margins_CR = Left_HUD_Margin;};
+ ItemIconPos[3][0] = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR+PosX_adjust);
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCBtnRUseMargins", 0) != 0) {X_Margins_CR = Right_HUD_Margin;};
+ ItemIconPos[3][0] = OTRGetDimensionFromRightEdge(CVar_GetS32("gCBtnRPosX", 0)+X_Margins_CR+PosX_adjust);
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 3) {//Anchor None
+ ItemIconPos[3][0] = CVar_GetS32("gCBtnRPosX", 0)+PosX_adjust;
+ } else if (CVar_GetS32("gCBtnRPosType", 0) == 4) {//Hidden
+ ItemIconPos[3][0] = -9999;
+ }
+ } else {
+ ItemIconPos[3][0] = OTRGetRectDimensionFromRightEdge(ItemIconPos_ori[3][0]);
+ ItemIconPos[3][1] = ItemIconPos_ori[3][1];
+ }
OPEN_DISPS(globalCtx->state.gfxCtx);
@@ -3267,14 +3979,13 @@ void Interface_DrawAmmoCount(GlobalContext* globalCtx, s16 button, s16 alpha) {
}
if (i != 0) {
- OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, (u8*)_gAmmoDigit0Tex[i], 8, 8,
- OTRGetRectDimensionFromRightEdge(gItemAmmoX[button] + Right_HUD_Margin),
- gItemAmmoY[button] + (Top_HUD_Margin * -1), 8, 8, 1 << 10, 1 << 10);
+ OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, (u8*)_gAmmoDigit0Tex[i], 8, 8,
+ ItemIconPos[button][0], ItemIconPos[button][1], 8, 8, 1 << 10, 1 << 10);
}
- OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, (u8*)_gAmmoDigit0Tex[ammo], 8, 8,
- OTRGetRectDimensionFromRightEdge(gItemAmmoX[button] + Right_HUD_Margin) + 6,
- gItemAmmoY[button] + (Top_HUD_Margin * -1), 8, 8, 1 << 10, 1 << 10);
+ OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, (u8*)_gAmmoDigit0Tex[ammo], 8, 8,
+ ItemIconPos[button][0] + 6, ItemIconPos[button][1], 8, 8, 1 << 10, 1 << 10);
+
}
CLOSE_DISPS(globalCtx->state.gfxCtx);
@@ -3442,7 +4153,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
{ 0x82, 0x82, 0xFF }, // Adult's Wallet (Blue)
{ 0xFF, 0x64, 0x64 }, // Giant's Wallet (Red)
};
-
+ s16 rColor[3] = { 200, 255, 100 };
static s16 spoilingItemEntrances[] = { 0x01AD, 0x0153, 0x0153 };
static f32 D_80125B54[] = { -40.0f, -35.0f }; // unused
static s16 D_80125B5C[] = { 91, 91 }; // unused
@@ -3485,24 +4196,68 @@ void Interface_Draw(GlobalContext* globalCtx) {
if (fullUi) {
// Rupee Icon
- s16* rColor;
-
- if (CVar_GetS32("gDynamicWalletIcon", 0)) {
- rColor = &rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)];
+ if (CVar_GetS32("gHudColors", 1) == 2) {
+ //Custom Color is on but check if Dynamic Wallet is on.
+ if (CVar_GetS32("gDynamicWalletIcon", 0) != 0) {
+ //if on let's use Dynamic Colors
+ rColor[0] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][0];
+ rColor[1] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][1];
+ rColor[2] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][2];
+ } else {
+ //else use our custom color
+ rColor[0] = CVar_GetS32("gCCRupeePrimR", &rupeeWalletColors[0][0]);
+ rColor[1] = CVar_GetS32("gCCRupeePrimG", &rupeeWalletColors[0][1]);
+ rColor[2] = CVar_GetS32("gCCRupeePrimB", &rupeeWalletColors[0][2]);
+ }
} else {
- rColor = &rupeeWalletColors[0];
+ //Custom colors is off so check if Dynamic Wallet is on.
+ if (CVar_GetS32("gDynamicWalletIcon", 0) != 0) {
+ rColor[0] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][0];
+ rColor[1] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][1];
+ rColor[2] = rupeeWalletColors[CUR_UPG_VALUE(UPG_WALLET)][2];
+ } else {
+ rColor[0] = rupeeWalletColors[0][0];
+ rColor[1] = rupeeWalletColors[0][1];
+ rColor[2] = rupeeWalletColors[0][2];
+ }
}
-
- if (CVar_GetS32("gHudColors", 1) == 2) {
- gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCRupeePrimR", rColor[0]), CVar_GetS32("gCCRupeePrimG", rColor[1]), CVar_GetS32("gCCRupeePrimB", rColor[2]), interfaceCtx->magicAlpha);
- gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255); //We reset this here so it match user color :)
+ if (CVar_GetS32("gHudColors", 1) == 2 && CVar_GetS32("gDynamicWalletIcon", 0) != 1) {
+ //We reset this here so it match user color only if both HUD is on and Dynamic is off.
+ gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 255);
+ }
+ //Rupee icon & counter
+ s16 X_Margins_RC;
+ s16 Y_Margins_RC;
+ if (CVar_GetS32("gRCUseMargins", 0) != 0) {
+ if (CVar_GetS32("gRCPosType", 0) == 0) {X_Margins_RC = Left_HUD_Margin;};
+ Y_Margins_RC = Bottom_HUD_Margin;
+ } else {
+ X_Margins_RC = 0;
+ Y_Margins_RC = 0;
+ }
+ s16 PosX_RC_ori = OTRGetRectDimensionFromLeftEdge(26+X_Margins_RC);
+ s16 PosY_RC_ori = 206+Y_Margins_RC;
+ s16 PosX_RC;
+ s16 PosY_RC;
+ if (CVar_GetS32("gRCPosType", 0) != 0) {
+ PosY_RC = CVar_GetS32("gRCPosY", 0)+Y_Margins_RC;
+ if (CVar_GetS32("gRCPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gRCUseMargins", 0) != 0) {X_Margins_RC = Left_HUD_Margin;};
+ PosX_RC = OTRGetDimensionFromLeftEdge(CVar_GetS32("gRCPosX", 0)+X_Margins_RC);
+ } else if (CVar_GetS32("gRCPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gRCUseMargins", 0) != 0) {X_Margins_RC = Right_HUD_Margin;};
+ PosX_RC = OTRGetDimensionFromRightEdge(CVar_GetS32("gRCPosX", 0)+X_Margins_RC);
+ } else if (CVar_GetS32("gRCPosType", 0) == 3) {//Anchor None
+ PosX_RC = CVar_GetS32("gRCPosX", 0);
+ } else if (CVar_GetS32("gRCPosType", 0) == 4) {//Hidden
+ PosX_RC = -9999;
+ }
} else {
- gDPSetPrimColor(OVERLAY_DISP++, 0, 0, rColor[0], rColor[1], rColor[2], interfaceCtx->magicAlpha);
- gDPSetEnvColor(OVERLAY_DISP++, 0, 80, 0, 255);
+ PosY_RC = PosY_RC_ori;
+ PosX_RC = PosX_RC_ori;
}
-
- OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gRupeeCounterIconTex, 16, 16, OTRGetRectDimensionFromLeftEdge(26+(Left_HUD_Margin*-1)),
- 206+(Bottom_HUD_Margin), 16, 16, 1 << 10, 1 << 10);
+ gDPSetPrimColor(OVERLAY_DISP++, 0, 0, rColor[0], rColor[1], rColor[2], interfaceCtx->magicAlpha);
+ OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gRupeeCounterIconTex, 16, 16, PosX_RC, PosY_RC, 16, 16, 1 << 10, 1 << 10);
switch (globalCtx->sceneNum) {
case SCENE_BMORI1:
@@ -3520,6 +4275,36 @@ void Interface_Draw(GlobalContext* globalCtx) {
case SCENE_GANONTIKA_SONOGO:
case SCENE_TAKARAYA:
if (gSaveContext.inventory.dungeonKeys[gSaveContext.mapIndex] >= 0) {
+ s16 X_Margins_SKC;
+ s16 Y_Margins_SKC;
+ if (CVar_GetS32("gSKCUseMargins", 0) != 0) {
+ if (CVar_GetS32("gSKCPosType", 0) == 0) {X_Margins_SKC = Left_HUD_Margin;};
+ Y_Margins_SKC = Bottom_HUD_Margin;
+ } else {
+ X_Margins_SKC = 0;
+ Y_Margins_SKC = 0;
+ }
+ s16 PosX_SKC_ori = OTRGetRectDimensionFromLeftEdge(26+X_Margins_SKC);
+ s16 PosY_SKC_ori = 190+Y_Margins_SKC;
+ s16 PosX_SKC;
+ s16 PosY_SKC;
+ if (CVar_GetS32("gSKCPosType", 0) != 0) {
+ PosY_SKC = CVar_GetS32("gSKCPosY", 0)+Y_Margins_SKC;
+ if (CVar_GetS32("gSKCPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gSKCUseMargins", 0) != 0) {X_Margins_SKC = Left_HUD_Margin;};
+ PosX_SKC = OTRGetDimensionFromLeftEdge(CVar_GetS32("gSKCPosX", 0)+X_Margins_SKC);
+ } else if (CVar_GetS32("gSKCPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gSKCUseMargins", 0) != 0) {X_Margins_SKC = Right_HUD_Margin;};
+ PosX_SKC = OTRGetDimensionFromRightEdge(CVar_GetS32("gSKCPosX", 0)+X_Margins_SKC);
+ } else if (CVar_GetS32("gSKCPosType", 0) == 3) {//Anchor None
+ PosX_SKC = CVar_GetS32("gSKCPosX", 0);
+ } else if (CVar_GetS32("gSKCPosType", 0) == 4) {//Hidden
+ PosX_SKC = -9999;
+ }
+ } else {
+ PosY_SKC = PosY_SKC_ori;
+ PosX_SKC = PosX_SKC_ori;
+ }
// Small Key Icon
gDPPipeSync(OVERLAY_DISP++);
@@ -3530,7 +4315,7 @@ void Interface_Draw(GlobalContext* globalCtx) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 200, 230, 255, interfaceCtx->magicAlpha);
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 20, 255);
}
- OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gSmallKeyCounterIconTex, 16, 16, OTRGetRectDimensionFromLeftEdge(26+(Left_HUD_Margin*-1)), 190+(Bottom_HUD_Margin), 16, 16,
+ OVERLAY_DISP = Gfx_TextureIA8(OVERLAY_DISP, gSmallKeyCounterIconTex, 16, 16, PosX_SKC, PosY_SKC, 16, 16,
1 << 10, 1 << 10);
// Small Key Counter
@@ -3547,17 +4332,11 @@ void Interface_Draw(GlobalContext* globalCtx) {
interfaceCtx->counterDigits[3] -= 10;
}
- svar3 = OTRGetRectDimensionFromLeftEdge(42+(Left_HUD_Margin*-1));
-
if (interfaceCtx->counterDigits[2] != 0) {
- OVERLAY_DISP = Gfx_TextureI8(OVERLAY_DISP, ((u8*)((u8*)digitTextures[interfaceCtx->counterDigits[2]])), 8,
- 16, svar3, 190+(Bottom_HUD_Margin), 8, 16, 1 << 10, 1 << 10);
- svar3 += 8;
+ OVERLAY_DISP = Gfx_TextureI8(OVERLAY_DISP, ((u8*)((u8*)digitTextures[interfaceCtx->counterDigits[2]])), 8, 16, PosX_SKC+8, PosY_SKC, 8, 16, 1 << 10, 1 << 10);
}
- OVERLAY_DISP = Gfx_TextureI8(OVERLAY_DISP,
- ((u8*)digitTextures[interfaceCtx->counterDigits[3]]), 8, 16,
- svar3, 190+(Bottom_HUD_Margin), 8, 16, 1 << 10, 1 << 10);
+ OVERLAY_DISP = Gfx_TextureI8(OVERLAY_DISP, ((u8*)digitTextures[interfaceCtx->counterDigits[3]]), 8, 16, PosX_SKC+16, PosY_SKC, 8, 16, 1 << 10, 1 << 10);
}
break;
default:
@@ -3598,10 +4377,10 @@ void Interface_Draw(GlobalContext* globalCtx) {
svar2 = rupeeDigitsFirst[CUR_UPG_VALUE(UPG_WALLET)];
svar5 = rupeeDigitsCount[CUR_UPG_VALUE(UPG_WALLET)];
- for (svar1 = 0, svar3 = 42; svar1 < svar5; svar1++, svar2++, svar3 += 8) {
+ for (svar1 = 0, svar3 = 16; svar1 < svar5; svar1++, svar2++, svar3 += 8) {
OVERLAY_DISP =
Gfx_TextureI8(OVERLAY_DISP, ((u8*)digitTextures[interfaceCtx->counterDigits[svar2]]), 8, 16,
- OTRGetRectDimensionFromLeftEdge(svar3+(Left_HUD_Margin*-1)), 206+(Bottom_HUD_Margin), 8, 16, 1 << 10, 1 << 10);
+ PosX_RC+svar3, PosY_RC, 8, 16, 1 << 10, 1 << 10);
}
}
else {
@@ -3653,6 +4432,47 @@ void Interface_Draw(GlobalContext* globalCtx) {
}
} else {
// B Button Do Action Label
+ s16 PosX_adjust;
+ s16 PosY_adjust;
+ if (gSaveContext.language == 2) {
+ PosX_adjust = -12;
+ PosY_adjust = 5;
+ } else if (gSaveContext.language == 1) { //ger
+ PosY_adjust = 6;
+ PosX_adjust = -9;
+ } else {
+ PosY_adjust = 6;
+ PosX_adjust = -10;
+ }
+
+ s16 BbtnPosX;
+ s16 BbtnPosY;
+ s16 X_Margins_BtnB_label;
+ s16 Y_Margins_BtnB_label;
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {
+ if (CVar_GetS32("gBBtnPosType", 0) == 0) {X_Margins_BtnB_label = Right_HUD_Margin;};
+ Y_Margins_BtnB_label = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_BtnB_label = 0;
+ Y_Margins_BtnB_label = 0;
+ }
+ if (CVar_GetS32("gBBtnPosType", 0) != 0) {
+ BbtnPosY = CVar_GetS32("gBBtnPosY", 0)+Y_Margins_BtnB_label+PosY_adjust;
+ if (CVar_GetS32("gBBtnPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {X_Margins_BtnB_label = Left_HUD_Margin;};
+ BbtnPosX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB_label+PosX_adjust);
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gBBtnUseMargins", 0) != 0) {X_Margins_BtnB_label = Right_HUD_Margin;};
+ BbtnPosX = OTRGetDimensionFromRightEdge(CVar_GetS32("gBBtnPosX", 0)+X_Margins_BtnB_label+PosX_adjust);
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 3) {//Anchor None
+ BbtnPosX = CVar_GetS32("gBBtnPosX", 0)+PosX_adjust;
+ } else if (CVar_GetS32("gBBtnPosType", 0) == 4) {//Hidden
+ BbtnPosX = -9999;
+ }
+ } else {
+ BbtnPosX = OTRGetRectDimensionFromRightEdge(R_B_LABEL_X(gSaveContext.language)+X_Margins_BtnB_label);
+ BbtnPosY = R_B_LABEL_Y(gSaveContext.language)+Y_Margins_BtnB_label;
+ }
gDPPipeSync(OVERLAY_DISP++);
gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0,
PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
@@ -3663,10 +4483,9 @@ void Interface_Draw(GlobalContext* globalCtx) {
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
R_B_LABEL_DD = (1 << 10) / (WREG(37 + gSaveContext.language) / 100.0f);
- const s16 rBLabelX = OTRGetRectDimensionFromRightEdge(R_B_LABEL_X(gSaveContext.language)+Right_HUD_Margin);
- gSPWideTextureRectangle(OVERLAY_DISP++, rBLabelX << 2, R_B_LABEL_Y(gSaveContext.language)+(Top_HUD_Margin*-1) << 2,
- (rBLabelX + DO_ACTION_TEX_WIDTH) << 2,
- (R_B_LABEL_Y(gSaveContext.language) + DO_ACTION_TEX_HEIGHT) << 2, G_TX_RENDERTILE, 0, 0,
+ gSPWideTextureRectangle(OVERLAY_DISP++, BbtnPosX << 2, BbtnPosY << 2,
+ (BbtnPosX + DO_ACTION_TEX_WIDTH) << 2,
+ (BbtnPosY + DO_ACTION_TEX_HEIGHT) << 2, G_TX_RENDERTILE, 0, 0,
R_B_LABEL_DD, R_B_LABEL_DD);
}
@@ -3716,16 +4535,48 @@ void Interface_Draw(GlobalContext* globalCtx) {
interfaceCtx->dpadRightAlpha);
// Draw DPad
+ s16 DpadPosX;
+ s16 DpadPosY;
+ s16 X_Margins_Dpad;
+ s16 Y_Margins_Dpad;
+ if (CVar_GetS32("gDPadUseMargins", 0) != 0) {
+ if (CVar_GetS32("gDPadPosType", 0) == 0) {X_Margins_Dpad = Right_HUD_Margin;};
+ Y_Margins_Dpad = (Top_HUD_Margin*-1);
+ } else {
+ Y_Margins_Dpad = 0;
+ X_Margins_Dpad = 0;
+ }
+ if (CVar_GetS32("gDPadPosType", 0) != 0) {
+ DpadPosY = CVar_GetS32("gDPadPosY", 0)+Y_Margins_Dpad;
+ if (CVar_GetS32("gDPadPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gDPadUseMargins", 0) != 0) {X_Margins_Dpad = Left_HUD_Margin;};
+ DpadPosX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_Dpad);
+ } else if (CVar_GetS32("gDPadPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gDPadUseMargins", 0) != 0) {X_Margins_Dpad = Right_HUD_Margin;};
+ DpadPosX = OTRGetDimensionFromRightEdge(CVar_GetS32("gDPadPosX", 0)+X_Margins_Dpad);
+ } else if (CVar_GetS32("gDPadPosType", 0) == 3) {//Anchor None
+ DpadPosX = CVar_GetS32("gDPadPosX", 0);
+ } else if (CVar_GetS32("gDPadPosType", 0) == 4) {//Hidden
+ DpadPosX = -9999;
+ }
+ } else {
+ DpadPosX = OTRGetRectDimensionFromRightEdge(DPAD_X+X_Margins_Dpad);
+ DpadPosY = DPAD_Y+Y_Margins_Dpad;
+ }
+
gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
- gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, dpadAlpha);
+
+ if (CVar_GetS32("gHudColors", 1) == 2) {
+ gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCDpadPrimR", 255), CVar_GetS32("gCCDpadPrimG", 255), CVar_GetS32("gCCDpadPrimB", 255), dpadAlpha);
+ } else {
+ gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, dpadAlpha);
+ }
gDPLoadTextureBlock(OVERLAY_DISP++, ResourceMgr_LoadFileRaw("assets/ship_of_harkinian/buttons/dpad.bin"),
G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 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);
- gSPWideTextureRectangle(OVERLAY_DISP++, OTRGetRectDimensionFromRightEdge(DPAD_X + Right_HUD_Margin) << 2,
- (DPAD_Y + (Top_HUD_Margin * -1)) << 2,
- (OTRGetRectDimensionFromRightEdge(DPAD_X + Right_HUD_Margin) + 32) << 2,
- (DPAD_Y + 32 + (Top_HUD_Margin * -1)) << 2, G_TX_RENDERTILE, 0, 0, (1 << 10),
- (1 << 10));
+ gSPWideTextureRectangle(OVERLAY_DISP++, DpadPosX << 2, DpadPosY << 2,
+ (DpadPosX + 32) << 2, (DpadPosY + 32) << 2,
+ G_TX_RENDERTILE, 0, 0, (1 << 10), (1 << 10));
// DPad-Up Button Icon & Ammo Count
if (gSaveContext.equips.buttonItems[4] < 0xF0) {
@@ -3774,8 +4625,46 @@ void Interface_Draw(GlobalContext* globalCtx) {
// A Button
func_80094A14(globalCtx->state.gfxCtx);
- const f32 rABtnX = OTRGetDimensionFromRightEdge(R_A_BTN_X+Right_HUD_Margin);
- //func_8008A8B8(globalCtx, R_A_BTN_Y, R_A_BTN_Y + 45, rABtnX, rABtnX + 45);
+ s16 X_Margins_BtnA;
+ s16 Y_Margins_BtnA;
+ if (CVar_GetS32("gABtnUseMargins", 0) != 0) {
+ X_Margins_BtnA = Right_HUD_Margin;
+ Y_Margins_BtnA = (Top_HUD_Margin*-1);
+ } else {
+ X_Margins_BtnA = 0;
+ Y_Margins_BtnA = 0;
+ }
+ s16 PosX_BtnA_ori = OTRGetDimensionFromRightEdge(R_A_BTN_X+X_Margins_BtnA);
+ s16 PosY_BtnA_ori = R_A_BTN_Y+Y_Margins_BtnA;
+ const f32 rAIconX_ori = OTRGetDimensionFromRightEdge(R_A_ICON_X+X_Margins_BtnA);
+ const f32 rAIconY_ori = 98.0f - (R_A_ICON_Y+Y_Margins_BtnA);
+ s16 PosX_BtnA;
+ s16 PosY_BtnA;
+ s16 rAIconX;
+ s16 rAIconY;
+ if (CVar_GetS32("gABtnPosType", 0) != 0) {
+ PosY_BtnA = CVar_GetS32("gABtnPosY", 0)+Y_Margins_BtnA;
+ rAIconY = 98.0f - PosY_BtnA;
+ if (CVar_GetS32("gABtnPosType", 0) == 1) {//Anchor Left
+ PosX_BtnA = OTRGetDimensionFromLeftEdge(CVar_GetS32("gABtnPosX", 0)+X_Margins_BtnA);
+ rAIconX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gABtnPosX", 0)+X_Margins_BtnA);
+ } else if (CVar_GetS32("gABtnPosType", 0) == 2) {//Anchor Right
+ X_Margins_BtnA = Right_HUD_Margin;
+ PosX_BtnA = OTRGetDimensionFromRightEdge(CVar_GetS32("gABtnPosX", 0)+X_Margins_BtnA);
+ rAIconX= OTRGetDimensionFromRightEdge(CVar_GetS32("gABtnPosX", 0)+X_Margins_BtnA);
+ } else if (CVar_GetS32("gABtnPosType", 0) == 3) {//Anchor None
+ PosX_BtnA = CVar_GetS32("gABtnPosX", 0);
+ rAIconX = CVar_GetS32("gABtnPosX", 0);
+ } else if (CVar_GetS32("gABtnPosType", 0) == 4) {//Hidden
+ PosX_BtnA = -9999;
+ rAIconX = -9999;
+ }
+ } else {
+ PosY_BtnA = PosY_BtnA_ori;
+ PosX_BtnA = PosX_BtnA_ori;
+ rAIconY = rAIconY_ori;
+ rAIconX = rAIconX_ori;
+ }
gSPClearGeometryMode(OVERLAY_DISP++, G_CULL_BOTH);
gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
if (CVar_GetS32("gHudColors", 1) == 0) {
@@ -3786,17 +4675,15 @@ void Interface_Draw(GlobalContext* globalCtx) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, CVar_GetS32("gCCABtnPrimR", R_A_BTN_COLOR(0)), CVar_GetS32("gCCABtnPrimG", R_A_BTN_COLOR(1)), CVar_GetS32("gCCABtnPrimB", R_A_BTN_COLOR(2)), interfaceCtx->aAlpha);
}
if (fullUi) {
- Interface_DrawActionButton(globalCtx, rABtnX, R_A_BTN_Y+(Top_HUD_Margin*-1));
+ Interface_DrawActionButton(globalCtx, PosX_BtnA, PosY_BtnA);
}
gDPPipeSync(OVERLAY_DISP++);
- const f32 rAIconX = OTRGetDimensionFromRightEdge(R_A_ICON_X+Right_HUD_Margin);
- //func_8008A8B8(globalCtx, R_A_ICON_Y, R_A_ICON_Y + 45, rAIconX, rAIconX + 45);
gSPSetGeometryMode(OVERLAY_DISP++, G_CULL_BACK);
gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0,
PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->aAlpha);
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 0);
- Matrix_Translate(-138.0f + rAIconX, 98.0f - (R_A_ICON_Y+(Top_HUD_Margin*-1)), WREG(46 + gSaveContext.language) / 10.0f, MTXMODE_NEW);
+ Matrix_Translate(-138.0f + rAIconX, rAIconY, WREG(46 + gSaveContext.language) / 10.0f, MTXMODE_NEW);
Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY);
Matrix_RotateX(interfaceCtx->unk_1F4 / 10000.0f, MTXMODE_APPLY);
gSPMatrix(OVERLAY_DISP++, MATRIX_NEWMTX(globalCtx->state.gfxCtx),
@@ -3875,7 +4762,24 @@ void Interface_Draw(GlobalContext* globalCtx) {
G_TX_NOLOD, G_TX_NOLOD);
// Draw 6 carrots
- for (svar1 = 1, svar5 = ZREG(14); svar1 < 7; svar1++, svar5 += 16) {
+ s16 CarrotsPosX = ZREG(14);
+ s16 CarrotsPosY = ZREG(15);
+ s16 CarrotsMargins_X = 0;
+ if (CVar_GetS32("gCarrotsPosType", 0) != 0) {
+ CarrotsPosY = CVar_GetS32("gCarrotsPosY", 0);
+ if (CVar_GetS32("gCarrotsPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gCarrotsUseMargins", 0) != 0) {CarrotsMargins_X = Left_HUD_Margin;};
+ CarrotsPosX = OTRGetDimensionFromLeftEdge(CVar_GetS32("gCarrotsPosX", 0)+CarrotsMargins_X);
+ } else if (CVar_GetS32("gCarrotsPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gCarrotsUseMargins", 0) != 0) {CarrotsMargins_X = Right_HUD_Margin;};
+ CarrotsPosX = OTRGetDimensionFromRightEdge(CVar_GetS32("gCarrotsPosX", 0)+CarrotsMargins_X);
+ } else if (CVar_GetS32("gCarrotsPosType", 0) == 3) {//Anchor None
+ CarrotsPosX = CVar_GetS32("gCarrotsPosX", 0);
+ } else if (CVar_GetS32("gCarrotsPosType", 0) == 4) {//Hidden
+ CarrotsPosX = -9999;
+ }
+ }
+ for (svar1 = 1, svar5 = CarrotsPosX; svar1 < 7; svar1++, svar5 += 16) {
// Carrot Color (based on availability)
if ((interfaceCtx->numHorseBoosts == 0) || (interfaceCtx->numHorseBoosts < svar1)) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 0, 150, 255, interfaceCtx->aAlpha);
@@ -3883,13 +4787,36 @@ void Interface_Draw(GlobalContext* globalCtx) {
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->aAlpha);
}
- gSPTextureRectangle(OVERLAY_DISP++, svar5 << 2, ZREG(15) << 2, (svar5 + 16) << 2,
- (ZREG(15) + 16) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
+ gSPWideTextureRectangle(OVERLAY_DISP++, svar5 << 2, CarrotsPosY << 2, (svar5 + 16) << 2,
+ (CarrotsPosY + 16) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
}
}
} else {
// Score for the Horseback Archery
- svar5 = OTRGetRectDimensionFromRightEdge(WREG(32));
+ s32 X_Margins_Archery;
+ if (CVar_GetS32("gASUseMargins", 0) != 0) {
+ if (CVar_GetS32("gASPosType", 0) == 0) {X_Margins_Archery = Right_HUD_Margin;};
+ } else {
+ X_Margins_Archery = 0;
+ }
+ s16 ArcheryPos_Y = ZREG(15);
+ s16 ArcheryPos_X = OTRGetRectDimensionFromRightEdge(WREG(32)+X_Margins_Archery);
+
+ if (CVar_GetS32("gASPosType", 0) != 0) {
+ ArcheryPos_Y = CVar_GetS32("gASPosY", 0);
+ if (CVar_GetS32("gASPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gASUseMargins", 0) != 0) {X_Margins_Archery = Left_HUD_Margin;};
+ ArcheryPos_X = OTRGetRectDimensionFromLeftEdge(CVar_GetS32("gASPosX", 0)+X_Margins_Archery);
+ } else if (CVar_GetS32("gASPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gASUseMargins", 0) != 0) {X_Margins_Archery = Right_HUD_Margin;};
+ ArcheryPos_X = OTRGetRectDimensionFromRightEdge(CVar_GetS32("gASPosX", 0)+X_Margins_Archery);
+ } else if (CVar_GetS32("gASPosType", 0) == 3) {//Anchor None
+ ArcheryPos_X = CVar_GetS32("gASPosX", 0)+204+X_Margins_Archery;
+ } else if (CVar_GetS32("gASPosType", 0) == 4) {//Hidden
+ ArcheryPos_X = -9999;
+ }
+ }
+
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->bAlpha);
// Target Icon
@@ -3897,22 +4824,22 @@ void Interface_Draw(GlobalContext* globalCtx) {
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++, (svar5 + 28) << 2, ZREG(15) << 2, (svar5 + 52) << 2,
- (ZREG(15) + 16) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
+ gSPWideTextureRectangle(OVERLAY_DISP++, (ArcheryPos_X + 28) << 2, ArcheryPos_Y << 2, (ArcheryPos_X + 52) << 2,
+ (ArcheryPos_Y + 16) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10);
// Score Counter
gDPPipeSync(OVERLAY_DISP++);
gDPSetCombineLERP(OVERLAY_DISP++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE,
TEXEL0, 0, PRIMITIVE, 0);
- svar5 = OTRGetRectDimensionFromRightEdge(WREG(32)) + 6 * 9;
+ ArcheryPos_X = ArcheryPos_X + 6 * 9;
for (svar1 = svar2 = 0; svar1 < 4; svar1++) {
if (sHBAScoreDigits[svar1] != 0 || (svar2 != 0) || (svar1 >= 3)) {
OVERLAY_DISP = Gfx_TextureI8(
- OVERLAY_DISP, digitTextures[sHBAScoreDigits[svar1]], 8, 16, svar5,
- (ZREG(15) - 2), digitWidth[0], VREG(42), VREG(43) << 1, VREG(43) << 1);
- svar5 += 9;
+ OVERLAY_DISP, digitTextures[sHBAScoreDigits[svar1]], 8, 16, ArcheryPos_X,
+ (ArcheryPos_Y - 2), digitWidth[0], VREG(42), VREG(43) << 1, VREG(43) << 1);
+ ArcheryPos_X += 9;
svar2++;
}
}
@@ -4303,8 +5230,29 @@ void Interface_Draw(GlobalContext* globalCtx) {
gDPPipeSync(OVERLAY_DISP++);
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, 255);
gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 0);
- svar5 = OTRGetRectDimensionFromLeftEdge(gSaveContext.timerX[svar6]);
+ s32 X_Margins_Timer;
+ if (CVar_GetS32("gTimersUseMargins", 0) != 0) {
+ if (CVar_GetS32("gTimersPosType", 0) == 0) {X_Margins_Timer = Left_HUD_Margin;};
+ } else {
+ X_Margins_Timer = 0;
+ }
+ svar5 = OTRGetRectDimensionFromLeftEdge(gSaveContext.timerX[svar6]+X_Margins_Timer);
svar2 = gSaveContext.timerY[svar6];
+ if (CVar_GetS32("gTimersPosType", 0) != 0) {
+ svar2 = (CVar_GetS32("gTimersPosY", 0));
+ if (CVar_GetS32("gTimersPosType", 0) == 1) {//Anchor Left
+ if (CVar_GetS32("gTimersUseMargins", 0) != 0) {X_Margins_Timer = Left_HUD_Margin;};
+ svar5 = OTRGetRectDimensionFromLeftEdge(CVar_GetS32("gTimersPosX", 0)+X_Margins_Timer);
+ } else if (CVar_GetS32("gTimersPosType", 0) == 2) {//Anchor Right
+ if (CVar_GetS32("gTimersUseMargins", 0) != 0) {X_Margins_Timer = Right_HUD_Margin;};
+ svar5 = OTRGetRectDimensionFromRightEdge(CVar_GetS32("gTimersPosX", 0)+X_Margins_Timer);
+ } else if (CVar_GetS32("gTimersPosType", 0) == 3) {//Anchor None
+ svar5 = CVar_GetS32("gTimersPosX", 0)+204+X_Margins_Timer;
+ } else if (CVar_GetS32("gTimersPosType", 0) == 4) {//Hidden
+ svar5 = -9999;
+ }
+ }
+
OVERLAY_DISP =
Gfx_TextureIA8(OVERLAY_DISP, gClockIconTex, 16, 16, svar5, svar2 + 2, 16, 16, 1 << 10, 1 << 10);
@@ -4329,10 +5277,11 @@ void Interface_Draw(GlobalContext* globalCtx) {
for (svar1 = 0; svar1 < 5; svar1++) {
// clang-format off
- svar5 = OTRGetRectDimensionFromLeftEdge(gSaveContext.timerX[svar6]);
+ //svar5 = svar5 + 8;
+ //svar5 = OTRGetRectDimensionFromLeftEdge(gSaveContext.timerX[svar6]);
OVERLAY_DISP = Gfx_TextureI8(OVERLAY_DISP, digitTextures[timerDigits[svar1]], 8, 16,
svar5 + timerDigitLeftPos[svar1],
- svar2 = gSaveContext.timerY[svar6], digitWidth[svar1], VREG(42), VREG(43) << 1,
+ svar2, digitWidth[svar1], VREG(42), VREG(43) << 1,
VREG(43) << 1);
// clang-format on
}
@@ -4365,17 +5314,10 @@ void Interface_Update(GlobalContext* globalCtx) {
u16 action;
Input* debugInput = &globalCtx->state.input[2];
- if (CVar_GetS32("gHUDMargins", 0) != 0) {
- Top_HUD_Margin = CVar_GetS32("gHUDMargin_T", 0);
- Left_HUD_Margin = CVar_GetS32("gHUDMargin_L", 0);
- Right_HUD_Margin = CVar_GetS32("gHUDMargin_R", 0);
- Bottom_HUD_Margin = CVar_GetS32("gHUDMargin_B", 0);
- } else {
- Top_HUD_Margin = 0;
- Left_HUD_Margin = 0;
- Right_HUD_Margin = 0;
- Bottom_HUD_Margin = 0;
- }
+ Top_HUD_Margin = CVar_GetS32("gHUDMargin_T", 0);
+ Left_HUD_Margin = CVar_GetS32("gHUDMargin_L", 0);
+ Right_HUD_Margin = CVar_GetS32("gHUDMargin_R", 0);
+ Bottom_HUD_Margin = CVar_GetS32("gHUDMargin_B", 0);
if (CHECK_BTN_ALL(debugInput->press.button, BTN_DLEFT)) {
gSaveContext.language = LANGUAGE_ENG;