From f365ef9417dfa171aea24624d1c51e37a81a9444 Mon Sep 17 00:00:00 2001 From: toaster Date: Sat, 18 Nov 2023 18:44:56 +0000 Subject: [PATCH] In Tutorial, always use Ring/Sneaker roulette at the Time Attack speed Also cleans up the conditions for battleprisons and versus mode --- src/k_kart.c | 9 +++++++++ src/k_roulette.c | 10 +++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 362ab9519..00952992d 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -585,6 +585,15 @@ boolean K_TimeAttackRules(void) return true; } + if (gametype == GT_TUTORIAL) + { + // Tutorials are special. By default only one + // player will be playing... but sometimes bots + // can be spawned! So we still guarantee the + // changed behaviour for consistency. + return true; + } + for (i = 0; i < MAXPLAYERS; i++) { if (playeringame[i] == false || players[i].spectator == true) diff --git a/src/k_roulette.c b/src/k_roulette.c index 107908fd7..faa6f0e92 100644 --- a/src/k_roulette.c +++ b/src/k_roulette.c @@ -183,7 +183,7 @@ static kartitems_t K_KartItemReelSpecialEnd[] = KITEM_NONE }; -static kartitems_t K_KartItemReelTimeAttack[] = +static kartitems_t K_KartItemReelRingSneaker[] = { KITEM_SNEAKER, KITEM_SUPERRING, @@ -1228,7 +1228,7 @@ static void K_CalculateRouletteSpeed(itemroulette_t *const roulette) fixed_t progress = 0; fixed_t total = 0; - if (bossinfo.valid == true) + if (K_CheckBossIntro() == true) { // Boss in action, use a speed controlled by boss health total = FixedDiv(bossinfo.healthbar, BOSSHEALTHBARLEN); @@ -1345,7 +1345,7 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet return; } } - else if (gametyperules & GTR_BOSS) + else if (K_CheckBossIntro() == true) { for (i = 0; K_KartItemReelBoss[i] != KITEM_NONE; i++) { @@ -1356,10 +1356,10 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet } else if (K_TimeAttackRules() == true) { - kartitems_t *presetlist = K_KartItemReelTimeAttack; + kartitems_t *presetlist = K_KartItemReelRingSneaker; // If the objective is not to go fast, it's to cause serious damage. - if (gametyperules & GTR_PRISONS) + if (battleprisons == true) { presetlist = K_KartItemReelBreakTheCapsules; }