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; }