diff --git a/src/p_mobj.c b/src/p_mobj.c index 5a9f0925e..9550b0c41 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -3059,7 +3059,16 @@ void P_MobjCheckWater(mobj_t *mobj) return; // The rest of this code only executes on a water state change. - if (waterwasnotset || !!(mobj->eflags & MFE_UNDERWATER) == wasinwater) + if (!!(mobj->eflags & MFE_UNDERWATER) == wasinwater) + return; + + if (p && !p->waterskip && + p->curshield != KSHIELD_BUBBLE && wasinwater) + { + S_StartSound(mobj, sfx_gasp); + } + + if (waterwasnotset) return; if ((p) // Players