From 2a03651e21b0e8f977497d10be241729db8af864 Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Sun, 25 May 2025 16:46:58 -0400 Subject: [PATCH] More PWR exchange, sounds --- src/k_kart.c | 24 ++++++++++++++++++++++++ src/k_pwrlv.c | 4 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index aa1ab78c6..8978b1903 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -4307,6 +4307,30 @@ void K_CheckpointCrossAward(player_t *player) } player_t *opp = K_DuelOpponent(player); + boolean clutch = (player->duelscore - opp->duelscore == (DUELWINNINGSCORE-1)); + boolean win = (player->duelscore - opp->duelscore == DUELWINNINGSCORE); + + if (!win) + { + for (UINT8 i = 0; i < MAXSPLITSCREENPLAYERS; i++) + { + player_t *check = &players[displayplayers[i]]; + if (check == player) + { + S_StartSound(NULL, sfx_mbs45); + if (clutch) + S_StartSoundAtVolume(NULL, sfx_s3k9c, 170); + } + + else if (check == opp) + { + S_StartSound(NULL, sfx_s3k96); + if (clutch) + S_StartSound(NULL, sfx_s3kbes); + } + + } + } if (player->duelscore - opp->duelscore == DUELWINNINGSCORE) { diff --git a/src/k_pwrlv.c b/src/k_pwrlv.c index da04b3981..3571c5258 100644 --- a/src/k_pwrlv.c +++ b/src/k_pwrlv.c @@ -304,10 +304,10 @@ void K_UpdatePowerLevels(player_t *player, UINT8 lap, boolean forfeit) // Long duels mean players were closer. Less PWR changes hands when there's a lot of back-and-forth. INT32 winnerscore = (yourScore > theirScore) ? player->duelscore : players[i].duelscore; - INT32 divisor = DUELWINNINGSCORE; + INT32 divisor = 1; if (winnerscore > DUELWINNINGSCORE) // Opponent scored at least one point. - divisor += 2*(winnerscore - DUELWINNINGSCORE); + divisor += (winnerscore - DUELWINNINGSCORE); inc /= divisor;