diff --git a/src/p_enemy.c b/src/p_enemy.c index 6b3793d32..d3434a828 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -3060,7 +3060,7 @@ void A_JumpShield(mobj_t *actor) if (P_SwitchShield(player, SH_JUMP)) S_StartSound(player->mo, actor->info->seesound); - else if (mariomode) + else S_StartSound(player->mo, sfx_itemup); } @@ -3089,7 +3089,7 @@ void A_RingShield(mobj_t *actor) if (P_SwitchShield(player, SH_ATTRACT)) S_StartSound(player->mo, actor->info->seesound); - else if (mariomode) + else S_StartSound(player->mo, sfx_itemup); } @@ -3319,7 +3319,7 @@ void A_WaterShield(mobj_t *actor) if (P_SwitchShield(player, SH_ELEMENTAL)) S_StartSound(player->mo, actor->info->seesound); - else if (mariomode) + else S_StartSound(player->mo, sfx_itemup); if (player->powers[pw_underwater] && player->powers[pw_underwater] <= 12*TICRATE + 1) @@ -3384,7 +3384,9 @@ void A_ForceShield(mobj_t *actor) S_StartSound(player->mo, actor->info->seesound); } - else if (mariomode) + else if (!mariomode) + S_StartSound(player->mo, actor->info->seesound); + else S_StartSound(player->mo, sfx_itemup); if ((player->powers[pw_shield] & SH_FORCE) && (player->powers[pw_shield] & SH_FORCEHP)) @@ -3429,7 +3431,7 @@ void A_PityShield(mobj_t *actor) if (P_SwitchShield(player, SH_PITY)) S_StartSound(player->mo, actor->info->seesound); - else if (mariomode) + else S_StartSound(player->mo, sfx_itemup); } diff --git a/src/p_user.c b/src/p_user.c index 7a91f5012..6ae507f0c 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1428,9 +1428,11 @@ void P_SpawnShieldOrb(player_t *player) // // P_SwitchShield // -// Handles the possibility of switching -// between shields thoroughly, then -// adds the desired one. +// Handles the possibility of switching between +// the non-stack layer of shields thoroughly, +// then adds the desired one. +// +// Returns whether to play a normal sound or an itemup. // // Not for use if shieldtype would be SH_FORCE. // @@ -1477,7 +1479,7 @@ boolean P_SwitchShield(player_t *player, UINT16 shieldtype) P_SpawnShieldOrb(player); return true; } - return false; + return (!mariomode); } //