diff --git a/src/p_inter.c b/src/p_inter.c index 8643b4275b264121fc21619d7661be5ceefdca03..3d5e32268db99608fb928e5d963a2503b47250f6 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -3426,6 +3426,24 @@ void P_SpecialStageDamage(player_t *player, mobj_t *inflictor, mobj_t *source) if (player->powers[pw_invulnerability] || player->powers[pw_flashing] || player->powers[pw_super]) return; + if (!cv_friendlyfire.value) + { + if (inflictor->type == MT_LHRT && !(player->powers[pw_shield] & SH_NOSTACK)) + { + if (player->revitem != MT_LHRT && player->spinitem != MT_LHRT && player->thokitem != MT_LHRT) // Healers do not get to heal other healers. + { + P_SwitchShield(player, SH_PINK); + S_StartSound(player->mo, mobjinfo[MT_PITY_ICON].seesound); + } + } + + if (source->player->ctfteam == player->ctfteam) + return; + } + + if (inflictor->type == MT_LHRT) + return; + if (player->powers[pw_shield] || player->bot) //If One-Hit Shield { P_RemoveShield(player);