High Res rank toggle
This commit is contained in:
parent
b5e9e1e4da
commit
d5529f8458
6 changed files with 54 additions and 20 deletions
|
|
@ -103,7 +103,7 @@
|
|||
#define ASSET_HASH_TEXTURES_KART 0xb4211b2f32b6a291
|
||||
#define ASSET_HASH_CHARS_KART 0x1e68a3e01aa5c68b
|
||||
#define ASSET_HASH_MAPS_KART 0x2be29dfb3a146dfa
|
||||
#define ASSET_HASH_MAIN_PK3 0x4ea7e79e2d5d0d63
|
||||
#define ASSET_HASH_MAIN_PK3 0x2b05ed51a1fcbe18
|
||||
#define ASSET_HASH_MAPPATCH_PK3 0x1745690024efbaf8
|
||||
#define ASSET_HASH_BONUSCHARS_KART 0x60e6f13d822a7461
|
||||
#ifdef USE_PATCH_FILE
|
||||
|
|
|
|||
40
src/k_hud.c
40
src/k_hud.c
|
|
@ -115,6 +115,9 @@ consvar_t cv_draftindicator = CVAR_INIT ("draftindicator", "On", CV_SAVE, CV_OnO
|
|||
|
||||
consvar_t cv_showstats = CVAR_INIT ("showstats", "On", CV_SAVE, CV_OnOff, NULL);
|
||||
|
||||
// make char potraits use their high-res version instead
|
||||
consvar_t cv_highresportrait = CVAR_INIT ("highresportrait", "Off", CV_SAVE, CV_OnOff, NULL);
|
||||
|
||||
typedef enum
|
||||
{
|
||||
NT_OFF = 0,
|
||||
|
|
@ -292,6 +295,7 @@ void K_RegisterKartHUDStuff(void)
|
|||
CV_RegisterVar(&cv_newtabranking);
|
||||
CV_RegisterVar(&cv_draftindicator);
|
||||
CV_RegisterVar(&cv_showstats);
|
||||
CV_RegisterVar(&cv_highresportrait);
|
||||
|
||||
// k_items.c
|
||||
CV_RegisterVar(&cv_fancyroulette);
|
||||
|
|
@ -818,6 +822,16 @@ skincolornum_t K_GetHudColor(void)
|
|||
return ((stplyr && gamestate == GS_LEVEL) ? stplyr->skincolor : cv_playercolor[0].value);
|
||||
}
|
||||
|
||||
static boolean K_IsHighResolution(void)
|
||||
{
|
||||
return (vid.width >= 640 && vid.height >= 400);
|
||||
}
|
||||
|
||||
boolean K_UseHighResPortraits(void)
|
||||
{
|
||||
return (cv_highresportrait.value && K_IsHighResolution());
|
||||
}
|
||||
|
||||
static boolean K_BigLapSticker(void)
|
||||
{
|
||||
return ((cv_numlaps.value > 9) && (!stplyr->exiting));
|
||||
|
|
@ -2295,7 +2309,9 @@ static boolean K_drawKartPositionFaces(void)
|
|||
else
|
||||
colormap = R_GetTranslationColormap(players[rankplayer[i]].skin, players[rankplayer[i]].mo->color, GTC_CACHE);
|
||||
|
||||
patch_t *facerank = faceprefix[players[rankplayer[i]].skin][FACE_RANK];
|
||||
boolean hires = K_UseHighResPortraits();
|
||||
|
||||
patch_t *facerank = faceprefix[players[rankplayer[i]].skin][hires ? FACE_WANTED : FACE_RANK];
|
||||
|
||||
offsets.x = facerank->leftoffset;
|
||||
offsets.y = facerank->topoffset;
|
||||
|
|
@ -2314,14 +2330,14 @@ static boolean K_drawKartPositionFaces(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
V_DrawMappedPatch(FACE_X + offsets.x, Y + offsets.y, V_HUDTRANS|V_SNAPTOLEFT, facerank, colormap);
|
||||
V_DrawFixedPatch((FACE_X + offsets.x)<<FRACBITS, (Y + offsets.y)<<FRACBITS, hires ? FRACUNIT / 2 : FRACUNIT, V_HUDTRANS|V_SNAPTOLEFT, facerank, colormap);
|
||||
|
||||
if (players[rankplayer[i]].smonitortimer)
|
||||
{
|
||||
colormap = R_GetTranslationColormap(TC_BLINK, K_SMonitorColor(leveltime / 2), GTC_CACHE);
|
||||
smntrhudtrans = K_SMonitorHUDVisibility(players[rankplayer[i]].smonitortimer);
|
||||
|
||||
V_DrawMappedPatch(FACE_X + offsets.x, Y + offsets.y, smntrhudtrans|V_SNAPTOLEFT|V_ADD, facerank, colormap);
|
||||
V_DrawFixedPatch((FACE_X + offsets.x)<<FRACBITS, (Y + offsets.y)<<FRACBITS, hires ? FRACUNIT / 2 : FRACUNIT, smntrhudtrans|V_SNAPTOLEFT|V_ADD, facerank, colormap);
|
||||
}
|
||||
|
||||
if (LUA_HudEnabled(hud_battlebumpers))
|
||||
|
|
@ -2852,9 +2868,12 @@ void K_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, IN
|
|||
else
|
||||
V_DrawString(x + 20, y2, ((tab[i].num == whiteplayer) ? hightlightcolor : 0)|V_ALLOWLOWERCASE, playername);
|
||||
|
||||
patch_t *facerank = faceprefix[players[tab[i].num].skin][FACE_RANK];
|
||||
boolean hires = K_UseHighResPortraits();
|
||||
patch_t *facerank = faceprefix[players[tab[i].num].skin][hires ? FACE_WANTED : FACE_RANK];
|
||||
INT16 leftoffset = facerank->leftoffset;
|
||||
INT16 topoffset = facerank->topoffset;
|
||||
|
||||
V_DrawMappedPatch(x+facerank->leftoffset, y-4+facerank->topoffset, 0, facerank, colormap);
|
||||
V_DrawFixedPatch((x+leftoffset)<<FRACBITS, (y-4+topoffset)<<FRACBITS, hires ? FRACUNIT/2 : FRACUNIT, 0, facerank, colormap);
|
||||
|
||||
/*if ((gametypes[gametype]->rules & GTR_BUMPERS) && players[tab[i].num].bumper > 0) -- not enough space for this
|
||||
{
|
||||
|
|
@ -3041,8 +3060,11 @@ static void K_drawKartStatsnLives(void)
|
|||
|
||||
// We specify stplyr->skincolor since we want it to match the player and not the hud color.
|
||||
UINT8 *colormap = R_GetTranslationColormap(stplyr->skin, stplyr->skincolor, GTC_CACHE);
|
||||
patch_t *facerank = faceprefix[stplyr->skin][FACE_RANK];
|
||||
V_DrawMappedPatch(fx+59+offsetx+facerank->leftoffset, fy-16+offsety+facerank->topoffset, V_HUDTRANS|splitflags, facerank, colormap);
|
||||
boolean hires = K_UseHighResPortraits();
|
||||
patch_t *facerank = faceprefix[stplyr->skin][hires ? FACE_WANTED : FACE_RANK];
|
||||
INT16 topoffset = hires ? facerank->topoffset / 2 : facerank->topoffset;
|
||||
INT16 leftoffset = hires ? facerank->leftoffset / 2 : facerank->leftoffset;
|
||||
V_DrawFixedPatch((fx+59+offsetx+leftoffset)<<FRACBITS, (fy-16+offsety+topoffset)<<FRACBITS, hires ? FRACUNIT/2 : FRACUNIT, V_HUDTRANS|splitflags, facerank, colormap);
|
||||
if (stplyr->lives >= 0 && uselives)
|
||||
V_DrawScaledPatch(fx+77+offsetx, fy-11+offsety, V_HUDTRANS|splitflags, kp_facenum[(stplyr->lives % 10)]); // make sure this doesn't overflow OR underflow
|
||||
|
||||
|
|
@ -3059,8 +3081,8 @@ static void K_drawKartStatsnLives(void)
|
|||
colormapstat2 = R_GetTranslationColormap(TC_RAINBOW, SKINCOLOR_MUSTARD, GTC_CACHE);
|
||||
}
|
||||
|
||||
V_DrawFixedPatch((fx+56+offsetx+facerank->leftoffset)<< FRACBITS, (fy-19+offsety+facerank->topoffset)<< FRACBITS, FRACUNIT, V_HUDTRANS|splitflags, kp_facenum[(stplyr->kartspeed % 10)], colormapstat);
|
||||
V_DrawFixedPatch((fx+69+offsetx+facerank->leftoffset)<< FRACBITS, (fy-4+offsety+facerank->topoffset)<< FRACBITS, FRACUNIT, V_HUDTRANS|splitflags, kp_facenum[(stplyr->kartweight % 10)], colormapstat2);
|
||||
V_DrawFixedPatch((fx+56+offsetx+leftoffset)<< FRACBITS, (fy-19+offsety+topoffset)<< FRACBITS, FRACUNIT, V_HUDTRANS|splitflags, kp_facenum[(stplyr->kartspeed % 10)], colormapstat);
|
||||
V_DrawFixedPatch((fx+69+offsetx+leftoffset)<< FRACBITS, (fy-4+offsety+topoffset)<< FRACBITS, FRACUNIT, V_HUDTRANS|splitflags, kp_facenum[(stplyr->kartweight % 10)], colormapstat2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,6 +73,8 @@ extern consvar_t cv_newtabranking;
|
|||
|
||||
extern consvar_t cv_kartdebughudtracker;
|
||||
|
||||
extern consvar_t cv_highresportrait;
|
||||
|
||||
extern patch_t *kp_facenum[MAXPLAYERS+1];
|
||||
extern patch_t *kp_itemboxminimap;
|
||||
extern patch_t *kp_minimapdot;
|
||||
|
|
@ -189,6 +191,8 @@ extern patch_t *kp_itemtarget_far[2][2];
|
|||
extern patch_t *kp_itemtarget_far_text[2];
|
||||
extern patch_t *kp_itemtarget_near[2][8];
|
||||
|
||||
boolean K_UseHighResPortraits(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
#include "console.h" // cons_menuhighlight
|
||||
#include "k_itemlist.hpp"
|
||||
#include "k_vote.h"
|
||||
#include "k_hud.h"
|
||||
|
||||
static INT32 votetimer;
|
||||
|
||||
|
|
@ -601,9 +602,11 @@ void Y_VoteDrawer(void)
|
|||
if (players[i].skincolor)
|
||||
{
|
||||
UINT8 *colormap = R_GetTranslationColormap(players[i].skin, players[i].skincolor, GTC_CACHE);
|
||||
patch_t *facerank = faceprefix[players[i].skin][FACE_RANK];
|
||||
boolean hires = K_UseHighResPortraits();
|
||||
patch_t *facerank = faceprefix[players[i].skin][hires ? FACE_WANTED : FACE_RANK];
|
||||
fixed_t hiresscale = hires ? FRACUNIT/2 : FRACUNIT;
|
||||
|
||||
V_DrawMappedPatch(x+24+facerank->leftoffset, y+(highplayers ? smallfaceheight : bigfaceheight)+facerank->topoffset, V_SNAPTOLEFT, facerank, colormap);
|
||||
V_DrawFixedPatch((x+24+facerank->leftoffset)<<FRACBITS, (y+(highplayers ? smallfaceheight : bigfaceheight)+facerank->topoffset)<<FRACBITS, hiresscale, V_SNAPTOLEFT, facerank, colormap);
|
||||
}
|
||||
|
||||
if (!splitscreen && i == consoleplayer)
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ void ST_LoadGraphics(void)
|
|||
|
||||
static boolean ST_IconCanSpinout(UINT8 icon)
|
||||
{
|
||||
return ((icon == FACE_MINIMAP)||(icon == FACE_RANK));
|
||||
return ((icon == FACE_MINIMAP)||(icon == FACE_RANK)||(icon == FACE_WANTED));
|
||||
}
|
||||
|
||||
// made separate so that skins code can reload custom face graphics
|
||||
|
|
@ -215,7 +215,7 @@ void ST_LoadFaceGraphics(INT32 skinnum)
|
|||
|
||||
if ((ST_IconCanSpinout(i)) && (!alreadycentered))
|
||||
{
|
||||
// Auto-center the pivots of all minimap and rank patches with
|
||||
// Auto-center the pivots of all minimap ,rank and wanted patches with
|
||||
// the ability to spinout.
|
||||
// This is a shitty, hacky solution... but it's less work for spinout
|
||||
// rotations!
|
||||
|
|
|
|||
|
|
@ -547,9 +547,12 @@ void Y_IntermissionDrawer(void)
|
|||
UINT8 *colormap = R_GetTranslationColormap(*data.character[i], *data.color[i], GTC_CACHE);
|
||||
patch_t *facerank;
|
||||
|
||||
facerank = faceprefix[*data.character[i]][FACE_RANK];
|
||||
boolean hires = K_UseHighResPortraits() && !manyplayers16 && !displayitemrolls;
|
||||
facerank = faceprefix[*data.character[i]][hires ? FACE_WANTED : FACE_RANK];
|
||||
SINT8 hiresoffsetx = hires ? 8: 0;
|
||||
SINT8 hiresoffsety = hires ? 2: 0;
|
||||
|
||||
fixed_t scale = FRACUNIT;
|
||||
fixed_t scale = hires ? FRACUNIT / 2 : FRACUNIT;
|
||||
|
||||
if (manyplayers16)
|
||||
{
|
||||
|
|
@ -560,8 +563,10 @@ void Y_IntermissionDrawer(void)
|
|||
else
|
||||
{
|
||||
INT32 xoffs, yoffs;
|
||||
INT16 leftoffset = hires ? facerank->leftoffset / 2 : facerank->leftoffset;
|
||||
INT16 topoffset = hires ? facerank->topoffset / 2 :facerank->topoffset;
|
||||
|
||||
scale = (displayitemrolls) ? FRACUNIT/2 : FRACUNIT;
|
||||
scale = (hires || displayitemrolls) ? FRACUNIT/2 : FRACUNIT;
|
||||
|
||||
xoffs = FixedMul(16, scale);
|
||||
yoffs = FixedMul(4, scale);
|
||||
|
|
@ -569,8 +574,8 @@ void Y_IntermissionDrawer(void)
|
|||
if (displayitemrolls)
|
||||
{
|
||||
V_DrawFixedPatch(
|
||||
((x+11-xscroll_px)*FRACUNIT) + ((facerank->leftoffset) * scale),
|
||||
((y+1)*FRACUNIT) + ((facerank->topoffset) * scale),
|
||||
((x+11-xscroll_px)*FRACUNIT) + ((leftoffset) * scale),
|
||||
((y+1)*FRACUNIT) + ((topoffset) * scale),
|
||||
scale,
|
||||
0,
|
||||
facerank,
|
||||
|
|
@ -587,7 +592,7 @@ void Y_IntermissionDrawer(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
V_DrawFixedPatch((x+xoffs)<<FRACBITS, ((y-yoffs)<<FRACBITS), scale, 0, facerank, colormap);
|
||||
V_DrawFixedPatch((x+xoffs+hiresoffsetx)<<FRACBITS, ((y-yoffs- +hiresoffsety)<<FRACBITS), scale, 0, facerank, colormap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue