From e7726fe42fa41be1f604df4cad4149202ef147a1 Mon Sep 17 00:00:00 2001 From: Eukara Date: Sun, 11 Aug 2019 05:34:37 +0000 Subject: [PATCH] Fixed crash with the getchannellevel QC builtin git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5508 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/snd_dma.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/engine/client/snd_dma.c b/engine/client/snd_dma.c index 65a8b52ff..5cd10f2c9 100644 --- a/engine/client/snd_dma.c +++ b/engine/client/snd_dma.c @@ -3143,7 +3143,10 @@ float S_GetChannelLevel(int entnum, int entchannel) if (sc->channel[i].entnum == entnum && sc->channel[i].entchannel == entchannel && sc->channel[i].sfx) { ssamplepos_t spos = sc->GetChannelPos?sc->GetChannelPos(sc, &sc->channel[i]):(sc->channel[i].pos>>PITCHSHIFT); - scache = sc->channel[i].sfx->decoder.decodedata(sc->channel[i].sfx, &scachebuf, spos, 1); + if (sc->channel[i].sfx->decoder.decodedata)scache = sc->channel[i].sfx->decoder.decodedata(sc->channel[i].sfx, &scachebuf, spos, 1); + else + scache = NULL; + if (!scache) scache = sc->channel[i].sfx->decoder.buf; if (scache && spos >= scache->soundoffset && spos < scache->soundoffset+scache->length)