mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-02 06:04:21 +00:00
Adjust position of Rings/Lives, Spheres, Speedometer and Accessibility Icons when gametype info is not drawn
Necessary to make Tutorial/Sealed Stars not have a huge gap where the big information used to be
This commit is contained in:
parent
8d66b279f8
commit
c174e25401
1 changed files with 89 additions and 35 deletions
114
src/k_hud.c
114
src/k_hud.c
|
|
@ -2488,7 +2488,7 @@ static void K_DrawLivesDigits(INT32 x, INT32 y, INT32 width, INT32 flags, patch_
|
||||||
V_DrawScaledPatch(x, y, flags, font[stplyr->lives % 10]);
|
V_DrawScaledPatch(x, y, flags, font[stplyr->lives % 10]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void K_drawRingCounter(void)
|
static void K_drawRingCounter(boolean gametypeinfoshown)
|
||||||
{
|
{
|
||||||
const boolean uselives = G_GametypeUsesLives();
|
const boolean uselives = G_GametypeUsesLives();
|
||||||
SINT8 ringanim_realframe = stplyr->karthud[khud_ringframe];
|
SINT8 ringanim_realframe = stplyr->karthud[khud_ringframe];
|
||||||
|
|
@ -2547,43 +2547,57 @@ static void K_drawRingCounter(void)
|
||||||
|
|
||||||
fr = fx;
|
fr = fx;
|
||||||
|
|
||||||
|
if (gametypeinfoshown)
|
||||||
|
{
|
||||||
|
fy -= 10;
|
||||||
|
}
|
||||||
|
|
||||||
// Rings
|
// Rings
|
||||||
if (!uselives)
|
if (!uselives)
|
||||||
{
|
{
|
||||||
V_DrawScaledPatch(fx-2 + (flipflag ? (SHORT(kp_ringstickersplit[1]->width) - 3) : 0), fy-10, V_HUDTRANS|V_SLIDEIN|splitflags|flipflag, kp_ringstickersplit[1]);
|
V_DrawScaledPatch(fx-2 + (flipflag ? (SHORT(kp_ringstickersplit[1]->width) - 3) : 0), fy, V_HUDTRANS|V_SLIDEIN|splitflags|flipflag, kp_ringstickersplit[1]);
|
||||||
if (flipflag)
|
if (flipflag)
|
||||||
fr += 15;
|
fr += 15;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
V_DrawScaledPatch(fx-2 + (flipflag ? (SHORT(kp_ringstickersplit[0]->width) - 3) : 0), fy-10, V_HUDTRANS|V_SLIDEIN|splitflags|flipflag, kp_ringstickersplit[0]);
|
V_DrawScaledPatch(fx-2 + (flipflag ? (SHORT(kp_ringstickersplit[0]->width) - 3) : 0), fy, V_HUDTRANS|V_SLIDEIN|splitflags|flipflag, kp_ringstickersplit[0]);
|
||||||
|
|
||||||
V_DrawMappedPatch(fr+ringx, fy-13, V_HUDTRANS|V_SLIDEIN|splitflags|ringflip, kp_smallring[ringanim_realframe], (colorring ? ringmap : NULL));
|
V_DrawMappedPatch(fr+ringx, fy-3, V_HUDTRANS|V_SLIDEIN|splitflags|ringflip, kp_smallring[ringanim_realframe], (colorring ? ringmap : NULL));
|
||||||
|
|
||||||
if (stplyr->rings < 0) // Draw the minus for ring debt
|
if (stplyr->rings < 0) // Draw the minus for ring debt
|
||||||
V_DrawMappedPatch(fr+7, fy-10, V_HUDTRANS|V_SLIDEIN|splitflags, kp_ringdebtminussmall, ringmap);
|
V_DrawMappedPatch(fr+7, fy, V_HUDTRANS|V_SLIDEIN|splitflags, kp_ringdebtminussmall, ringmap);
|
||||||
|
|
||||||
V_DrawMappedPatch(fr+11, fy-10, V_HUDTRANS|V_SLIDEIN|splitflags, fontv[PINGNUM_FONT].font[rn[0]], ringmap);
|
V_DrawMappedPatch(fr+11, fy, V_HUDTRANS|V_SLIDEIN|splitflags, fontv[PINGNUM_FONT].font[rn[0]], ringmap);
|
||||||
V_DrawMappedPatch(fr+15, fy-10, V_HUDTRANS|V_SLIDEIN|splitflags, fontv[PINGNUM_FONT].font[rn[1]], ringmap);
|
V_DrawMappedPatch(fr+15, fy, V_HUDTRANS|V_SLIDEIN|splitflags, fontv[PINGNUM_FONT].font[rn[1]], ringmap);
|
||||||
|
|
||||||
// SPB ring lock
|
// SPB ring lock
|
||||||
if (stplyr->pflags & PF_RINGLOCK)
|
if (stplyr->pflags & PF_RINGLOCK)
|
||||||
V_DrawScaledPatch(fr-12, fy-23, V_HUDTRANS|V_SLIDEIN|splitflags, kp_ringspblocksmall[stplyr->karthud[khud_ringspblock]]);
|
V_DrawScaledPatch(fr-12, fy-13, V_HUDTRANS|V_SLIDEIN|splitflags, kp_ringspblocksmall[stplyr->karthud[khud_ringspblock]]);
|
||||||
|
|
||||||
// Lives
|
// Lives
|
||||||
if (uselives)
|
if (uselives)
|
||||||
{
|
{
|
||||||
UINT8 *colormap = R_GetTranslationColormap(stplyr->skin, stplyr->skincolor, GTC_CACHE);
|
UINT8 *colormap = R_GetTranslationColormap(stplyr->skin, stplyr->skincolor, GTC_CACHE);
|
||||||
V_DrawMappedPatch(fr+21, fy-13, V_HUDTRANS|V_SLIDEIN|splitflags, faceprefix[stplyr->skin][FACE_MINIMAP], colormap);
|
V_DrawMappedPatch(fr+21, fy-3, V_HUDTRANS|V_SLIDEIN|splitflags, faceprefix[stplyr->skin][FACE_MINIMAP], colormap);
|
||||||
if (stplyr->lives >= 0)
|
if (stplyr->lives >= 0)
|
||||||
K_DrawLivesDigits(fr+34, fy-10, 4, V_HUDTRANS|V_SLIDEIN|splitflags, fontv[PINGNUM_FONT].font);
|
K_DrawLivesDigits(fr+34, fy, 4, V_HUDTRANS|V_SLIDEIN|splitflags, fontv[PINGNUM_FONT].font);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fy = LAPS_Y-11;
|
fy = LAPS_Y;
|
||||||
|
|
||||||
|
if (gametypeinfoshown)
|
||||||
|
{
|
||||||
|
fy -= 11;
|
||||||
|
|
||||||
if ((gametyperules & (GTR_BUMPERS|GTR_CIRCUIT)) == GTR_BUMPERS)
|
if ((gametyperules & (GTR_BUMPERS|GTR_CIRCUIT)) == GTR_BUMPERS)
|
||||||
fy -= 4;
|
fy -= 4;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fy += 9;
|
||||||
|
}
|
||||||
|
|
||||||
// Rings
|
// Rings
|
||||||
if (!uselives)
|
if (!uselives)
|
||||||
|
|
@ -2622,9 +2636,9 @@ static void K_drawRingCounter(void)
|
||||||
|
|
||||||
#undef RINGANIM_FLIPFRAME
|
#undef RINGANIM_FLIPFRAME
|
||||||
|
|
||||||
static void K_drawKartAccessibilityIcons(INT32 fx)
|
static void K_drawKartAccessibilityIcons(boolean gametypeinfoshown, INT32 fx)
|
||||||
{
|
{
|
||||||
INT32 fy = LAPS_Y-25;
|
INT32 fy = LAPS_Y-14;
|
||||||
INT32 splitflags = V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_SPLITSCREEN;
|
INT32 splitflags = V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_SPLITSCREEN;
|
||||||
//INT32 step = 1; -- if there's ever more than one accessibility icon
|
//INT32 step = 1; -- if there's ever more than one accessibility icon
|
||||||
|
|
||||||
|
|
@ -2632,10 +2646,19 @@ static void K_drawKartAccessibilityIcons(INT32 fx)
|
||||||
|
|
||||||
if (r_splitscreen < 2) // adjust to speedometer height
|
if (r_splitscreen < 2) // adjust to speedometer height
|
||||||
{
|
{
|
||||||
|
if (gametypeinfoshown)
|
||||||
|
{
|
||||||
|
fy -= 11;
|
||||||
|
|
||||||
if ((gametyperules & (GTR_BUMPERS|GTR_CIRCUIT)) == GTR_BUMPERS)
|
if ((gametyperules & (GTR_BUMPERS|GTR_CIRCUIT)) == GTR_BUMPERS)
|
||||||
fy -= 4;
|
fy -= 4;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
fy += 9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
fx = LAPS_X+43;
|
fx = LAPS_X+43;
|
||||||
fy = LAPS_Y;
|
fy = LAPS_Y;
|
||||||
|
|
@ -2681,13 +2704,13 @@ static void K_drawKartAccessibilityIcons(INT32 fx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void K_drawKartSpeedometer(void)
|
static void K_drawKartSpeedometer(boolean gametypeinfoshown)
|
||||||
{
|
{
|
||||||
static fixed_t convSpeed;
|
static fixed_t convSpeed;
|
||||||
UINT8 labeln = 0;
|
UINT8 labeln = 0;
|
||||||
UINT8 numbers[3];
|
UINT8 numbers[3];
|
||||||
INT32 splitflags = V_SNAPTOBOTTOM|V_SNAPTOLEFT|V_SPLITSCREEN;
|
INT32 splitflags = V_SNAPTOBOTTOM|V_SNAPTOLEFT|V_SPLITSCREEN;
|
||||||
INT32 battleoffset = 0;
|
INT32 fy = LAPS_Y-14;
|
||||||
|
|
||||||
if (!stplyr->exiting) // Keep the same speed value as when you crossed the finish line!
|
if (!stplyr->exiting) // Keep the same speed value as when you crossed the finish line!
|
||||||
{
|
{
|
||||||
|
|
@ -2722,19 +2745,28 @@ static void K_drawKartSpeedometer(void)
|
||||||
numbers[1] = ((convSpeed / 10) % 10);
|
numbers[1] = ((convSpeed / 10) % 10);
|
||||||
numbers[2] = (convSpeed % 10);
|
numbers[2] = (convSpeed % 10);
|
||||||
|
|
||||||
|
if (gametypeinfoshown)
|
||||||
|
{
|
||||||
|
fy -= 11;
|
||||||
|
|
||||||
if ((gametyperules & (GTR_BUMPERS|GTR_CIRCUIT)) == GTR_BUMPERS)
|
if ((gametyperules & (GTR_BUMPERS|GTR_CIRCUIT)) == GTR_BUMPERS)
|
||||||
battleoffset = -4;
|
fy -= 4;
|
||||||
|
}
|
||||||
V_DrawScaledPatch(LAPS_X, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_speedometersticker);
|
else
|
||||||
V_DrawScaledPatch(LAPS_X+7, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_facenum[numbers[0]]);
|
{
|
||||||
V_DrawScaledPatch(LAPS_X+13, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_facenum[numbers[1]]);
|
fy += 9;
|
||||||
V_DrawScaledPatch(LAPS_X+19, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_facenum[numbers[2]]);
|
|
||||||
V_DrawScaledPatch(LAPS_X+29, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_speedometerlabel[labeln]);
|
|
||||||
|
|
||||||
K_drawKartAccessibilityIcons(56);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void K_drawBlueSphereMeter(void)
|
V_DrawScaledPatch(LAPS_X, fy, V_HUDTRANS|V_SLIDEIN|splitflags, kp_speedometersticker);
|
||||||
|
V_DrawScaledPatch(LAPS_X+7, fy, V_HUDTRANS|V_SLIDEIN|splitflags, kp_facenum[numbers[0]]);
|
||||||
|
V_DrawScaledPatch(LAPS_X+13, fy, V_HUDTRANS|V_SLIDEIN|splitflags, kp_facenum[numbers[1]]);
|
||||||
|
V_DrawScaledPatch(LAPS_X+19, fy, V_HUDTRANS|V_SLIDEIN|splitflags, kp_facenum[numbers[2]]);
|
||||||
|
V_DrawScaledPatch(LAPS_X+29, fy, V_HUDTRANS|V_SLIDEIN|splitflags, kp_speedometerlabel[labeln]);
|
||||||
|
|
||||||
|
K_drawKartAccessibilityIcons(gametypeinfoshown, 56);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void K_drawBlueSphereMeter(boolean gametypeinfoshown)
|
||||||
{
|
{
|
||||||
const UINT8 maxBars = 4;
|
const UINT8 maxBars = 4;
|
||||||
const UINT8 segColors[] = {73, 64, 52, 54, 55, 35, 34, 33, 202, 180, 181, 182, 164, 165, 166, 153, 152};
|
const UINT8 segColors[] = {73, 64, 52, 54, 55, 35, 34, 33, 202, 180, 181, 182, 164, 165, 166, 153, 152};
|
||||||
|
|
@ -2752,7 +2784,17 @@ static void K_drawBlueSphereMeter(void)
|
||||||
if (r_splitscreen < 2) // don't change shit for THIS splitscreen.
|
if (r_splitscreen < 2) // don't change shit for THIS splitscreen.
|
||||||
{
|
{
|
||||||
fx = LAPS_X;
|
fx = LAPS_X;
|
||||||
fy = LAPS_Y-22;
|
fy = LAPS_Y-7;
|
||||||
|
|
||||||
|
if (gametypeinfoshown)
|
||||||
|
{
|
||||||
|
fy -= 11 + 4;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fy += 9;
|
||||||
|
}
|
||||||
|
|
||||||
V_DrawScaledPatch(fx, fy, splitflags|flipflag, kp_spheresticker);
|
V_DrawScaledPatch(fx, fy, splitflags|flipflag, kp_spheresticker);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -2771,7 +2813,12 @@ static void K_drawBlueSphereMeter(void)
|
||||||
flipflag = V_FLIP; // make the string right aligned and other shit
|
flipflag = V_FLIP; // make the string right aligned and other shit
|
||||||
xstep = -xstep;
|
xstep = -xstep;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gametypeinfoshown)
|
||||||
|
{
|
||||||
fy -= 16;
|
fy -= 16;
|
||||||
|
}
|
||||||
|
|
||||||
V_DrawScaledPatch(fx, fy, splitflags|flipflag, kp_splitspheresticker);
|
V_DrawScaledPatch(fx, fy, splitflags|flipflag, kp_splitspheresticker);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5068,6 +5115,8 @@ void K_drawKartHUD(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
boolean gametypeinfoshown = false;
|
||||||
|
|
||||||
if (LUA_HudEnabled(hud_position))
|
if (LUA_HudEnabled(hud_position))
|
||||||
{
|
{
|
||||||
if (bossinfo.valid)
|
if (bossinfo.valid)
|
||||||
|
|
@ -5088,32 +5137,37 @@ void K_drawKartHUD(void)
|
||||||
if (LUA_HudEnabled(hud_gametypeinfo))
|
if (LUA_HudEnabled(hud_gametypeinfo))
|
||||||
{
|
{
|
||||||
if (gametyperules & GTR_CIRCUIT)
|
if (gametyperules & GTR_CIRCUIT)
|
||||||
|
{
|
||||||
|
if (numlaps > 1)
|
||||||
{
|
{
|
||||||
K_drawKartLaps();
|
K_drawKartLaps();
|
||||||
|
gametypeinfoshown = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (gametyperules & GTR_BUMPERS)
|
else if (gametyperules & GTR_BUMPERS)
|
||||||
{
|
{
|
||||||
K_drawKartBumpersOrKarma();
|
K_drawKartBumpersOrKarma();
|
||||||
|
gametypeinfoshown = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw the speedometer and/or accessibility icons
|
// Draw the speedometer and/or accessibility icons
|
||||||
if (cv_kartspeedometer.value && !r_splitscreen && (LUA_HudEnabled(hud_speedometer)))
|
if (cv_kartspeedometer.value && !r_splitscreen && (LUA_HudEnabled(hud_speedometer)))
|
||||||
{
|
{
|
||||||
K_drawKartSpeedometer();
|
K_drawKartSpeedometer(gametypeinfoshown);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
K_drawKartAccessibilityIcons(0);
|
K_drawKartAccessibilityIcons(gametypeinfoshown, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gametyperules & GTR_SPHERES)
|
if (gametyperules & GTR_SPHERES)
|
||||||
{
|
{
|
||||||
K_drawBlueSphereMeter();
|
K_drawBlueSphereMeter(gametypeinfoshown);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
K_drawRingCounter();
|
K_drawRingCounter(gametypeinfoshown);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (modeattacking && !bossinfo.valid)
|
if (modeattacking && !bossinfo.valid)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue