diff --git a/src/k_battle.c b/src/k_battle.c index f4ed87c7a..1304489a3 100644 --- a/src/k_battle.c +++ b/src/k_battle.c @@ -41,17 +41,21 @@ INT32 K_StartingBumperCount(void) { if (battleprisons) { - if (grandprixinfo.gp == true && grandprixinfo.masterbots == true) - return 0; - switch (gamespeed) + if (grandprixinfo.gp) { - case KARTSPEED_HARD: - return 1; - case KARTSPEED_NORMAL: - return 2; - case KARTSPEED_EASY: - return 3; + switch (grandprixinfo.gamespeed) + { + case KARTSPEED_HARD: + return (grandprixinfo.masterbots == true) ? 0 : 1; + case KARTSPEED_NORMAL: + return 2; + case KARTSPEED_EASY: + return 3; + } + } + + return 2; // Normal } return cv_kartbumpers.value; diff --git a/src/k_kart.c b/src/k_kart.c index 490faec6f..919c09b91 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -12445,7 +12445,14 @@ tic_t K_TimeLimitForGametype(void) { if (battleprisons) { - return (gamespeed == KARTSPEED_EASY) ? 30*TICRATE : 20*TICRATE; + if (grandprixinfo.gp) + { + if (grandprixinfo.masterbots) + return 15*TICRATE; + else if (grandprixinfo.gamespeed == KARTSPEED_EASY) + return 30*TICRATE; + } + return 20*TICRATE; } return gametypeDefault; diff --git a/src/p_inter.c b/src/p_inter.c index 689ffdc2d..012d0717b 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -1082,7 +1082,16 @@ static void P_AddBrokenPrison(mobj_t *target, mobj_t *inflictor, mobj_t *source) S_StartSound(NULL, sfx_s221); if (timelimitintics) { - extratimeintics += (gamespeed == KARTSPEED_EASY) ? 15*TICRATE : 10*TICRATE; + extratimeintics = 10*TICRATE; + + if (grandprixinfo.gp) + { + if (grandprixinfo.masterbots) + extratimeintics = 8*TICRATE; + else if (grandprixinfo.gamespeed == KARTSPEED_EASY) + extratimeintics = 15*TICRATE; + } + secretextratime = TICRATE/2; }