diff --git a/src/k_hud.cpp b/src/k_hud.cpp index d234d1fb3..b8b599f03 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -4314,6 +4314,20 @@ static void K_drawRingCounter(boolean gametypeinfoshown) boolean colorring = false; INT32 ringx = 0, fy = 0; + UINT16 superringcolor = SKINCOLOR_SAPPHIRE; + if (stplyr->momentboost) + { + if (!cv_reducevfx.value) + { + if (leveltime % 2) + superringcolor = SKINCOLOR_GOLD; + } + else + { + superringcolor = SKINCOLOR_GOLD; + } + } + rn[0] = ((abs(stplyr->hudrings) / 10) % 10); rn[1] = (abs(stplyr->hudrings) % 10); @@ -4466,7 +4480,7 @@ static void K_drawRingCounter(boolean gametypeinfoshown) if (stplyr->superringdisplay && !(stplyr->superringalert % 2)) { using srb2::Draw; - Draw row = Draw(fr+19+superoffset, fy).flags(V_HUDTRANS|V_SLIDEIN|splitflags).font(Draw::Font::kPing).colorize(SKINCOLOR_SAPPHIRE); + Draw row = Draw(fr+19+superoffset, fy).flags(V_HUDTRANS|V_SLIDEIN|splitflags).font(Draw::Font::kPing).colorize(superringcolor); row.text("+{:01}", abs(stplyr->superringdisplay)); } } @@ -4573,7 +4587,7 @@ static void K_drawRingCounter(boolean gametypeinfoshown) if (stplyr->superringdisplay && !(stplyr->superringalert % 2)) { using srb2::Draw; - Draw row = Draw(LAPS_X+23+3+15, fy-4).flags(V_HUDTRANS|V_SLIDEIN|splitflags).font(Draw::Font::kThinTimer).colorize(SKINCOLOR_SAPPHIRE); + Draw row = Draw(LAPS_X+23+3+15, fy-4).flags(V_HUDTRANS|V_SLIDEIN|splitflags).font(Draw::Font::kThinTimer).colorize(superringcolor); row.text("+{:01}", abs(stplyr->superringdisplay)); } } diff --git a/src/k_kart.c b/src/k_kart.c index f1db0188e..560026527 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -15190,10 +15190,12 @@ void K_MoveKartPlayer(player_t *player, boolean onground) dumprate = 2; if (!G_CompatLevel(0x0011)) + { player->momentboost += 3; - - // angle_t flingangle = player->mo->angle + ((P_RandomByte(PR_ITEM_RINGS) & 1) ? -ANGLE_90 : ANGLE_90); - // P_FlingBurst(player, flingangle, MT_DEBTSPIKE, 0, 3 * FRACUNIT / 2, player->superring, 4*FRACUNIT); + angle_t flingangle = player->mo->angle + ((P_RandomByte(PR_ITEM_RINGS) & 1) ? -ANGLE_90 : ANGLE_90); + P_FlingBurst(player, flingangle, MT_DEBTSPIKE, 0, 3 * FRACUNIT / 2, 20, 4*FRACUNIT); + S_StartSound(player->mo, sfx_gshae); + } } else