Added function S_IsSoundPrecached to the sound engine API. "snd_main.h" shouldn't...
authormolivier <molivier@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 20 Feb 2006 23:33:24 +0000 (23:33 +0000)
committermolivier <molivier@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 20 Feb 2006 23:33:24 +0000 (23:33 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@5999 d7cf8633-e32d-0410-b094-e92efae38249

cd_shared.c
snd_main.c
snd_null.c
sound.h

index 9bca5e5..8ffaa11 100644 (file)
@@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "quakedef.h"
 #include "cdaudio.h"
-#include "snd_main.h"
+#include "sound.h"
 
 #define MAXTRACKS      256
 
@@ -117,7 +117,7 @@ void CDAudio_Play (unsigned char track, qboolean looping)
 
        // Try playing a fake track (sound file) first
        sfx = S_PrecacheSound (va ("cdtracks/track%02u.wav", track), false, false);
-       if (sfx == NULL || sfx->fetcher == NULL)
+       if (sfx == NULL || !S_IsSoundPrecached (sfx))
                sfx = S_PrecacheSound (va ("cdtracks/track%03u.wav", track), false, false);
        if (sfx != NULL)
        {
index 4030d38..33918a3 100644 (file)
@@ -431,6 +431,16 @@ sfx_t *S_PrecacheSound (const char *name, qboolean complain, qboolean lock)
 
 /*
 ==================
+S_IsSoundPrecached
+==================
+*/
+qboolean S_IsSoundPrecached (const sfx_t *sfx)
+{
+       return (sfx != NULL && sfx->fetcher != NULL);
+}
+
+/*
+==================
 S_LockSfx
 
 Add a lock to a SFX
index 5ed2999..3da1059 100755 (executable)
@@ -90,6 +90,11 @@ sfx_t *S_PrecacheSound (const char *sample, qboolean complain, qboolean lock)
        return NULL;
 }
 
+qboolean S_IsSoundPrecached (const sfx_t *sfx)
+{
+       return false;
+}
+
 sfx_t *S_FindName (const char *name)
 {
        return NULL;
diff --git a/sound.h b/sound.h
index af73419..14d1d05 100644 (file)
--- a/sound.h
+++ b/sound.h
@@ -66,6 +66,7 @@ void S_ExtraUpdate (void);
 
 sfx_t *S_PrecacheSound (const char *sample, qboolean complain, qboolean lock);
 void S_ServerSounds (char serversound [][MAX_QPATH], unsigned int numsounds);
+qboolean S_IsSoundPrecached (const sfx_t *sfx);
 
 // S_StartSound returns the channel index, or -1 if an error occurred
 int S_StartSound (int entnum, int entchannel, sfx_t *sfx, vec3_t origin, float fvol, float attenuation);