From 78f3d62808ab95da8587372a34eb7b5f3e248fbb Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Thu, 11 Apr 2024 02:14:20 -0400 Subject: [PATCH] No thunderdome in GP --- src/k_kart.c | 12 +++++++++++- src/k_kart.h | 2 ++ src/objects/random-item.c | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index f96710a29..0430d0dd6 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -72,6 +72,16 @@ // comeback is Battle Mode's karma comeback, also bool // mapreset is set when enough players fill an empty server +boolean K_ThunderDome(void) +{ + if (K_CanChangeRules(true)) + { + return (boolean)cv_thunderdome.value; + } + + return false; +} + // lat: used for when the player is in some weird state where it wouldn't be wise for it to be overwritten by another object that does similarly wacky shit. boolean K_isPlayerInSpecialState(player_t *p) { @@ -12181,7 +12191,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground) if (player->ringboxdelay == 0) { UINT32 award = 5*player->ringboxaward + 10; - if (!cv_thunderdome.value) + if (!K_ThunderDome()) award = 3 * award / 2; if (modeattacking & ATTACKING_SPB) diff --git a/src/k_kart.h b/src/k_kart.h index 0c3ceb41e..eec786f93 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -274,6 +274,8 @@ void K_MakeObjectReappear(mobj_t *mo); void K_BumperInflate(player_t *player); +boolean K_ThunderDome(void); + #ifdef __cplusplus } // extern "C" #endif diff --git a/src/objects/random-item.c b/src/objects/random-item.c index 72ff9557d..b6e79aad5 100644 --- a/src/objects/random-item.c +++ b/src/objects/random-item.c @@ -19,6 +19,7 @@ #include "../k_battle.h" #include "../m_random.h" #include "../k_specialstage.h" // specialstageinfo +#include "../k_kart.h" #define FLOAT_HEIGHT ( 12 * FRACUNIT ) #define FLOAT_TIME ( 2 * TICRATE ) @@ -122,7 +123,7 @@ void Obj_RandomItemVisuals(mobj_t *mobj) // the player's cleared out a good portion of the map. // // Then extraval1 starts ticking up and triggers the transformation from Ringbox to Random Item. - if (mobj->fuse == 0 && !(mobj->flags & MF_NOCLIPTHING) && !(mobj->flags2 & MF2_BOSSDEAD) && !cv_thunderdome.value + if (mobj->fuse == 0 && !(mobj->flags & MF_NOCLIPTHING) && !(mobj->flags2 & MF2_BOSSDEAD) && !K_ThunderDome() && (modeattacking == ATTACKING_NONE || !!(modeattacking & ATTACKING_SPB) || specialstageinfo.valid)) // Time Attacking in Special is a fucked-looking exception { mobj->extravalue1++;