mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-28 04:51:42 +00:00
Add blue sphere meter
This commit is contained in:
parent
69e4a1c59f
commit
362c98e5d6
1 changed files with 37 additions and 2 deletions
39
src/k_hud.c
39
src/k_hud.c
|
|
@ -50,6 +50,7 @@ static patch_t *kp_bumperstickerwide;
|
||||||
static patch_t *kp_capsulesticker;
|
static patch_t *kp_capsulesticker;
|
||||||
static patch_t *kp_capsulestickerwide;
|
static patch_t *kp_capsulestickerwide;
|
||||||
static patch_t *kp_karmasticker;
|
static patch_t *kp_karmasticker;
|
||||||
|
static patch_t *kp_spheresticker;
|
||||||
static patch_t *kp_splitkarmabomb;
|
static patch_t *kp_splitkarmabomb;
|
||||||
static patch_t *kp_timeoutsticker;
|
static patch_t *kp_timeoutsticker;
|
||||||
|
|
||||||
|
|
@ -174,6 +175,7 @@ void K_LoadKartHUDGraphics(void)
|
||||||
kp_capsulesticker = W_CachePatchName("K_STCAPN", PU_HUDGFX);
|
kp_capsulesticker = W_CachePatchName("K_STCAPN", PU_HUDGFX);
|
||||||
kp_capsulestickerwide = W_CachePatchName("K_STCAPW", PU_HUDGFX);
|
kp_capsulestickerwide = W_CachePatchName("K_STCAPW", PU_HUDGFX);
|
||||||
kp_karmasticker = W_CachePatchName("K_STKARM", PU_HUDGFX);
|
kp_karmasticker = W_CachePatchName("K_STKARM", PU_HUDGFX);
|
||||||
|
kp_spheresticker = W_CachePatchName("K_STBSMT", PU_HUDGFX);
|
||||||
kp_splitkarmabomb = W_CachePatchName("K_SPTKRM", PU_HUDGFX);
|
kp_splitkarmabomb = W_CachePatchName("K_SPTKRM", PU_HUDGFX);
|
||||||
kp_timeoutsticker = W_CachePatchName("K_STTOUT", PU_HUDGFX);
|
kp_timeoutsticker = W_CachePatchName("K_STTOUT", PU_HUDGFX);
|
||||||
|
|
||||||
|
|
@ -1951,7 +1953,7 @@ static void K_drawKartSpeedometer(void)
|
||||||
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;
|
||||||
UINT8 battleoffset = 0;
|
INT32 battleoffset = 0;
|
||||||
|
|
||||||
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!
|
||||||
{
|
{
|
||||||
|
|
@ -1986,7 +1988,7 @@ static void K_drawKartSpeedometer(void)
|
||||||
numbers[2] = (convSpeed % 10);
|
numbers[2] = (convSpeed % 10);
|
||||||
|
|
||||||
if (gametype == GT_BATTLE)
|
if (gametype == GT_BATTLE)
|
||||||
battleoffset = 8;
|
battleoffset = -4;
|
||||||
|
|
||||||
V_DrawScaledPatch(LAPS_X, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_speedometersticker);
|
V_DrawScaledPatch(LAPS_X, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_speedometersticker);
|
||||||
V_DrawScaledPatch(LAPS_X+7, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_facenum[numbers[0]]);
|
V_DrawScaledPatch(LAPS_X+7, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_facenum[numbers[0]]);
|
||||||
|
|
@ -1995,6 +1997,34 @@ static void K_drawKartSpeedometer(void)
|
||||||
V_DrawScaledPatch(LAPS_X+29, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_speedometerlabel[labeln]);
|
V_DrawScaledPatch(LAPS_X+29, LAPS_Y-25 + battleoffset, V_HUDTRANS|V_SLIDEIN|splitflags, kp_speedometerlabel[labeln]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void K_drawBlueSphereMeter(void)
|
||||||
|
{
|
||||||
|
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 sphere = max(min(stplyr->spheres, 40), 0);
|
||||||
|
|
||||||
|
UINT8 numBars = min((sphere / 10), maxBars);
|
||||||
|
UINT8 color = segColors[(sphere * sizeof(segColors)) / (40 + 1)];
|
||||||
|
INT32 x = LAPS_X + 25;
|
||||||
|
UINT8 i;
|
||||||
|
|
||||||
|
V_DrawScaledPatch(LAPS_X, LAPS_Y - 22, V_HUDTRANS|V_SLIDEIN|V_SNAPTOBOTTOM|V_SNAPTOLEFT|V_SPLITSCREEN, kp_spheresticker);
|
||||||
|
|
||||||
|
for (i = 0; i <= numBars; i++)
|
||||||
|
{
|
||||||
|
UINT8 segLen = 10;
|
||||||
|
|
||||||
|
if (i == numBars)
|
||||||
|
{
|
||||||
|
segLen = (sphere % 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
V_DrawFill(x, LAPS_Y - 16, segLen, 6, color | V_HUDTRANS|V_SLIDEIN|V_SNAPTOBOTTOM|V_SNAPTOLEFT|V_SPLITSCREEN);
|
||||||
|
|
||||||
|
x += 15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void K_drawKartBumpersOrKarma(void)
|
static void K_drawKartBumpersOrKarma(void)
|
||||||
{
|
{
|
||||||
UINT8 *colormap = R_GetTranslationColormap(TC_DEFAULT, stplyr->skincolor, GTC_CACHE);
|
UINT8 *colormap = R_GetTranslationColormap(TC_DEFAULT, stplyr->skincolor, GTC_CACHE);
|
||||||
|
|
@ -3995,6 +4025,11 @@ void K_drawKartHUD(void)
|
||||||
if (LUA_HudEnabled(hud_gametypeinfo))
|
if (LUA_HudEnabled(hud_gametypeinfo))
|
||||||
K_drawKartBumpersOrKarma();
|
K_drawKartBumpersOrKarma();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gametyperules & GTR_SPHERES)
|
||||||
|
{
|
||||||
|
K_drawBlueSphereMeter();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw the countdowns after everything else.
|
// Draw the countdowns after everything else.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue