diff --git a/src/k_kart.c b/src/k_kart.c index 9117ddded..8e6b5b037 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -122,6 +122,11 @@ void K_TimerReset(void) g_pointlimit = 0; } +boolean K_ShouldSpawnDuelItems(void) +{ + return (inDuel == true || (grandprixinfo.gp && grandprixinfo.eventmode == GPEVENT_BONUS)); +} + static void K_SpawnItemCapsules(void) { mapthing_t *mt = mapthings; @@ -263,7 +268,7 @@ void K_TimerInit(void) timelimitintics = K_TimeLimitForGametype(); g_pointlimit = K_PointLimitForGametype(); - if (inDuel == true) + if (K_ShouldSpawnDuelItems()) { K_SpawnDuelOnlyItems(); } diff --git a/src/k_kart.h b/src/k_kart.h index 56f9428bf..cbaf17554 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -214,6 +214,8 @@ void K_KartEbrakeVisuals(player_t *p); void K_HandleDirectionalInfluence(player_t *player); fixed_t K_DefaultPlayerRadius(player_t *player); +boolean K_ShouldSpawnDuelItems(void); + // sound stuff for lua void K_PlayAttackTaunt(mobj_t *source); void K_PlayBoostTaunt(mobj_t *source); diff --git a/src/p_mobj.c b/src/p_mobj.c index e04cd2c5d..16226b024 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -12757,7 +12757,7 @@ static boolean P_AllowMobjSpawn(mapthing_t* mthing, mobjtype_t i) break; } - if (inDuel == false) + if (!K_ShouldSpawnDuelItems()) { if (K_IsDuelItem(i) == true && K_DuelItemAlwaysSpawns(mthing) == false)