]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cd_shared.c
fixed 3 digit cdtracks loading (it was improperly checking the returned sfx, which...
[xonotic/darkplaces.git] / cd_shared.c
index c0f0514c48cb9fa314af94dd33e5e2a2aa34142f..575540268228bcce31bf67b0c6db61809c2e01b9 100644 (file)
@@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 // rights reserved.
 
 #include "quakedef.h"
+#include "snd_main.h"
 
 #define MAXTRACKS      256
 
@@ -107,15 +108,15 @@ void CDAudio_Play (qbyte track, qboolean looping)
                return;
        }
 
-       if (cdPlaying && cdPlayTrack == track)
+       if (cdPlaying && cdPlayTrack == track && faketrack == -1)
                return;
        CDAudio_Stop ();
 
        // Try playing a fake track (sound file) first
-       sfx = S_PrecacheSound (va ("cdtracks/track%02u.wav", track), false, true, false);
+       sfx = S_PrecacheSound (va ("cdtracks/track%02u.wav", track), false, false);
        // FIXME: perhaps force it to be always %03u (but for compatibility?):
-       if (!sfx)
-               sfx = S_PrecacheSound (va ("cdtracks/track%03u.wav", track), false, true, false);
+       if (sfx == NULL || sfx->fetcher == NULL)
+               sfx = S_PrecacheSound (va ("cdtracks/track%03u.wav", track), false, false);
        if (sfx != NULL)
        {
                faketrack = S_StartSound (-1, 0, sfx, vec3_origin, cdvolume, 0);