From 857af5beec18b3764a5552041a51ed96edc6bf01 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Fri, 27 Mar 2026 22:14:55 -0400 Subject: [PATCH] Fix EFX crashing with mines --- src/sdl/al_sound.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/sdl/al_sound.c b/src/sdl/al_sound.c index 18902b9e8..c351763ec 100644 --- a/src/sdl/al_sound.c +++ b/src/sdl/al_sound.c @@ -1022,10 +1022,11 @@ void I_UpdateSoundParams(INT32 handle, UINT8 vol, UINT8 sep, UINT8 pitch, efx_t TRY(alSource3i, source, AL_AUXILIARY_SEND_FILTER, efx->al.slot, 0, AL_FILTER_NULL); } else if (origin != NULL && audio.globalefx.enabled + && mapheaderinfo[gamemap-1]->globalEFX->type != EFFECT_NONE && TRY(alIsEffect, audio.globalefx.effect) && TRY(alIsAuxiliaryEffectSlot, audio.globalefx.slot)) { - if (originmobj->type && (originmobj->subsector->sector->flags & MSF_NOEFX)) + if (originmobj && originmobj->type && originmobj->subsector && originmobj->subsector->sector && (originmobj->subsector->sector->flags & MSF_NOEFX)) TRY(alSource3i, source, AL_AUXILIARY_SEND_FILTER, AL_EFFECTSLOT_NULL, 0, AL_FILTER_NULL); else TRY(alSource3i, source, AL_AUXILIARY_SEND_FILTER, audio.globalefx.slot, 0, AL_FILTER_NULL); @@ -2189,6 +2190,9 @@ void I_CreateGlobalEFX(efx_t *efx) if (!cv_soundefx.value || dedicated) return; + if (mapheaderinfo[gamemap-1]->globalEFX->type == EFFECT_NONE) + return; + if (efx == NULL) return;