X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=snd_mem.c;h=c620d23664392e2f530a2922f0b4545b1984ed21;hp=81b0db1537fcbdb9d97eb28d2b99a34fedd4f6ff;hb=3906ee88f870a0d0f8cd95eac2c7f80c624aea86;hpb=182da1050452db7352b3e8c32b5c0cac065b698a diff --git a/snd_mem.c b/snd_mem.c index 81b0db15..c620d236 100644 --- a/snd_mem.c +++ b/snd_mem.c @@ -225,6 +225,10 @@ sfxcache_t *S_LoadWavFile (const char *filename, sfx_t *s) if (!data) return NULL; + // Don't try to load it if it's not a WAV file + if (memcmp (data, "RIFF", 4) || memcmp (data + 8, "WAVE", 4)) + return NULL; + info = GetWavinfo (s->name, data, fs_filesize); // Stereo sounds are allowed (intended for music) if (info.channels < 1 || info.channels > 2) @@ -238,7 +242,6 @@ sfxcache_t *S_LoadWavFile (const char *filename, sfx_t *s) len = (int) ((double) info.samples * (double) shm->speed / (double) info.rate); len = len * info.width * info.channels; - // FIXME: add S_UnloadSounds or something? Mem_FreePool(&s->mempool); s->mempool = Mem_AllocPool(s->name); sc = s->sfxcache = Mem_Alloc(s->mempool, len + sizeof(sfxcache_t)); @@ -281,8 +284,6 @@ sfxcache_t *S_LoadSound (sfx_t *s, int complain) if (s->sfxcache && (s->sfxcache->speed == shm->speed)) return s->sfxcache; - s->silentlymissing = !complain; - len = snprintf (namebuffer, sizeof (namebuffer), "sound/%s", s->name); if (len >= sizeof (namebuffer)) return NULL; @@ -303,6 +304,10 @@ sfxcache_t *S_LoadSound (sfx_t *s, int complain) return sc; // Can't load the sound! + if (!complain) + s->flags |= SFXFLAG_SILENTLYMISSING; + else + s->flags &= ~SFXFLAG_SILENTLYMISSING; if (complain) { if (modified_name)