From b2349ed6bf2a66df5b24cf231a6ee854466b5a3d Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Tue, 24 Oct 2023 01:44:56 -0700 Subject: [PATCH 1/2] Spawn Duel items in GP Bonus --- src/k_kart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 182e0a7cb..e08f86287 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -263,7 +263,7 @@ void K_TimerInit(void) timelimitintics = K_TimeLimitForGametype(); g_pointlimit = K_PointLimitForGametype(); - if (inDuel == true) + if (inDuel == true || (grandprixinfo.gp && grandprixinfo.eventmode == GPEVENT_BONUS)) { K_SpawnDuelOnlyItems(); } From 1a75bc2e00b43b4ad8fa4b1d33177a850e9bb9c1 Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Sun, 29 Oct 2023 05:28:45 -0700 Subject: [PATCH 2/2] Fix Duel Bonus items being shortcircuited in P_AllowMobjSpawn --- src/k_kart.c | 7 ++++++- src/k_kart.h | 2 ++ src/p_mobj.c | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index e08f86287..17d607238 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 || (grandprixinfo.gp && grandprixinfo.eventmode == GPEVENT_BONUS)) + if (K_ShouldSpawnDuelItems()) { K_SpawnDuelOnlyItems(); } diff --git a/src/k_kart.h b/src/k_kart.h index 7d0379760..151274254 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -210,6 +210,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)