From 96e81b1807e15bd34c91134ce830437e2b9364a4 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Sat, 24 Jan 2026 15:26:23 -0500 Subject: [PATCH 1/4] Also apply player fading to followers --- src/r_things.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/r_things.cpp b/src/r_things.cpp index 8d18327e0..f26d5dd0d 100644 --- a/src/r_things.cpp +++ b/src/r_things.cpp @@ -3874,9 +3874,19 @@ fixed_t R_GetThingFade(mobj_t *thing) { fixed_t fadealpha = FRACUNIT; - if (!cv_playerfade.value || leveltime < starttime-(3*TICRATE) || !thing->player || thing->player == viewplayer) + if (!cv_playerfade.value || leveltime < starttime-(3*TICRATE)) return fadealpha; + if (thing->type == MT_PLAYER) + { + if (!thing->player || thing->player == viewplayer) + return fadealpha; + } + else if (thing->type != MT_FOLLOWER && thing->type != MT_FOLLOWERBUBBLE_BACK && thing->type != MT_FOLLOWERBUBBLE_FRONT) + { + return fadealpha; + } + const INT32 playerdist = (FixedMul((thing->x - viewx), viewcos) + FixedMul((thing->y - viewy), viewsin)) >> FRACBITS; const INT32 viewplayerdist = (FixedMul((viewplayer->mo->x - viewx), viewcos) + FixedMul((viewplayer->mo->y - viewy), viewsin)) >> FRACBITS; From 772ad54efc77b8b7cae05eef79058e0925cb5c48 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Sat, 24 Jan 2026 15:44:33 -0500 Subject: [PATCH 2/4] fix swapping skins mid-game removing restat --- src/r_skins.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/r_skins.c b/src/r_skins.c index ee9f9e3ba..6f2fc4e24 100644 --- a/src/r_skins.c +++ b/src/r_skins.c @@ -616,8 +616,16 @@ void SetPlayerSkinByNum(INT32 playernum, INT32 skinnum) player->followitem = skin->followitem; - player->kartspeed = skin->kartspeed; - player->kartweight = skin->kartweight; + if (player->kartspeedrestat != 0 || player->kartweightrestat != 0) + { + player->kartspeed = player->kartspeedrestat; + player->kartweight = player->kartweightrestat; + } + else + { + player->kartspeed = skin->kartspeed; + player->kartweight = skin->kartweight; + } #if 0 if (!(cht_debug || devparm) && !(netgame || multiplayer || demo.playback)) From a7196d0106ac723652481aea5a76165fde92375d Mon Sep 17 00:00:00 2001 From: NepDisk Date: Sat, 24 Jan 2026 16:00:01 -0500 Subject: [PATCH 3/4] Add more indication for restated players --- src/k_hud.c | 15 +++++++++++++++ src/v_video.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/src/k_hud.c b/src/k_hud.c index 428db2ed7..e1ac92e04 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -2707,6 +2707,13 @@ static void K_drawKartStatsnLives(void) UINT8 *colormapstat = R_GetTranslationColormap(TC_RAINBOW, SKINCOLOR_BLUE, GTC_CACHE); UINT8 *colormapstat2 = R_GetTranslationColormap(TC_RAINBOW, SKINCOLOR_ORANGE, GTC_CACHE); + if (stplyr->kartspeed != skins[stplyr->skin].kartspeed + || stplyr->kartweight != skins[stplyr->skin].kartweight) + { + colormapstat = R_GetTranslationColormap(TC_RAINBOW, SKINCOLOR_YELLOW, GTC_CACHE); + 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); } @@ -3451,6 +3458,14 @@ static void K_DrawNameTagForPlayer(fixed_t x, fixed_t y, player_t *p) // Draw the name itself V_DrawThinStringAtFixed(x + (5*FRACUNIT), y - (26*FRACUNIT), vflags|V_6WIDTHSPACE|V_ALLOWLOWERCASE|clr, player_names[p - players]); + + // Also draw stats of restated players. + if (p->kartspeed != skins[p->skin].kartspeed + || p->kartweight != skins[p->skin].kartweight) + { + V_DrawSmallStringAtFixed(x + (5*FRACUNIT), y - (31*FRACUNIT), vflags, va("\x84S%d ", p->kartspeed)); + V_DrawSmallStringAtFixed(x + (15*FRACUNIT), y - (31*FRACUNIT), vflags, va("\x87W%d ", p->kartweight)); + } } typedef struct weakspotdraw_t diff --git a/src/v_video.h b/src/v_video.h index c6cd0fcca..2f60d9fad 100644 --- a/src/v_video.h +++ b/src/v_video.h @@ -331,6 +331,8 @@ void V_DrawRightAlignedString(INT32 x, INT32 y, INT32 option, const char *string // draw a string using the hu_font, 0.5x scale #define V_DrawSmallString( x,y,option,string ) \ V__DrawDupxString (x,y,FRACUNIT>>1,option,HU_FONT,string) +#define V_DrawSmallStringAtFixed( x,y,option,string ) \ + V__DrawOneScaleString (x,y,FRACUNIT>>1,option,HU_FONT,string) void V_DrawCenteredSmallString(INT32 x, INT32 y, INT32 option, const char *string); void V_DrawCenteredSmallStringAtFixed(fixed_t x, fixed_t y, INT32 option, const char *string); void V_DrawRightAlignedSmallString(INT32 x, INT32 y, INT32 option, const char *string); From 533d3b0ce61cfb65e94d34c55d7d817bee859a68 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Sat, 24 Jan 2026 16:08:53 -0500 Subject: [PATCH 4/4] Use a switch statement for this check --- src/r_things.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/r_things.cpp b/src/r_things.cpp index f26d5dd0d..1420aafb0 100644 --- a/src/r_things.cpp +++ b/src/r_things.cpp @@ -3882,9 +3882,19 @@ fixed_t R_GetThingFade(mobj_t *thing) if (!thing->player || thing->player == viewplayer) return fadealpha; } - else if (thing->type != MT_FOLLOWER && thing->type != MT_FOLLOWERBUBBLE_BACK && thing->type != MT_FOLLOWERBUBBLE_FRONT) + else { - return fadealpha; + switch (thing->type) + { + case MT_FOLLOWER: + case MT_FOLLOWERBUBBLE_BACK: + case MT_FOLLOWERBUBBLE_FRONT: + break; + + default: + return fadealpha; + break; + } } const INT32 playerdist = (FixedMul((thing->x - viewx), viewcos) + FixedMul((thing->y - viewy), viewsin)) >> FRACBITS;