diff --git a/src/p_inter.c b/src/p_inter.c index 58dc198ebf1a1e422a4959aa901325ed510277b2..5cf55ce0562b117af1abe20416352f216dd347e3 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -334,16 +334,18 @@ void P_DoMatchSuper(player_t *player) } } -static void P_CollectRing(player_t *player, mobj_t *special) +static boolean P_CollectRing(player_t *player, mobj_t *special) { if (!(P_CanPickupItem(player, false)) && !(special->flags2 & MF2_NIGHTSPULL)) - return; + return false; special->momx = special->momy = special->momz = 0; P_GivePlayerRings(player, 1); if ((maptol & TOL_NIGHTS) && special->type != MT_FLINGRING && special->type != MT_FLINGCOIN) P_DoNightsScore(player); + + return true; } /** Takes action based on a ::MF_SPECIAL thing touched by a player. @@ -637,7 +639,8 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) case MT_NIGHTSSTAR: case MT_REDTEAMRING: case MT_BLUETEAMRING: - P_CollectRing(player, special); + if (!P_CollectRing(player, special)) + return; break; case MT_BLUESPHERE: case MT_FLINGBLUESPHERE: