diff --git a/src/p_enemy.c b/src/p_enemy.c index 4b8d14170..08c6eb306 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -4110,15 +4110,18 @@ void A_SetSolidSteam(mobj_t *actor) #endif actor->flags &= ~MF_NOCLIP; actor->flags |= MF_SOLID; - if (P_RandomChance(FRACUNIT/8)) + if (!(actor->flags2 & MF2_AMBUSH)) { - if (actor->info->deathsound) - S_StartSound(actor, actor->info->deathsound); // Hiss! - } - else - { - if (actor->info->painsound) - S_StartSound(actor, actor->info->painsound); + if (P_RandomChance(FRACUNIT/8)) + { + if (actor->info->deathsound) + S_StartSound(actor, actor->info->deathsound); // Hiss! + } + else + { + if (actor->info->painsound) + S_StartSound(actor, actor->info->painsound); + } } P_SetObjectMomZ (actor, 1, true); diff --git a/src/p_mobj.c b/src/p_mobj.c index f01cd4383..f8d1a4239 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -10120,8 +10120,8 @@ ML_NOCLIMB : Direction not controllable mobj->flags &= ~MF_SCENERY; mobj->fuse = mthing->angle + mobj->info->speed; } - // Use per-thing collision for spikes if the deaf flag is checked. - if (mthing->options & MTF_AMBUSH && !metalrecording) + // Use per-thing collision for spikes if the deaf flag isn't checked. + if (!(mthing->options & MTF_AMBUSH) && !metalrecording) { P_UnsetThingPosition(mobj); mobj->flags &= ~(MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIPHEIGHT); @@ -10137,8 +10137,8 @@ ML_NOCLIMB : Direction not controllable mobj->flags &= ~MF_SCENERY; mobj->fuse = mobj->info->speed; } - // Use per-thing collision for spikes if the deaf flag is checked. - if (mthing->options & MTF_AMBUSH && !metalrecording) + // Use per-thing collision for spikes if the deaf flag isn't checked. + if (!(mthing->options & MTF_AMBUSH) && !metalrecording) { P_UnsetThingPosition(mobj); mobj->flags &= ~(MF_NOBLOCKMAP|MF_NOCLIPHEIGHT);