+ // Try playing a fake track (sound file) first
+ sfx = S_PrecacheSound (va ("cdtracks/track%02u.wav", track), false, true);
+ if (sfx != NULL)
+ {
+ faketrack = S_StartSound (-1, 0, sfx, vec3_origin, cdvolume, 0);
+ if (faketrack != -1)
+ {
+ if (looping)
+ S_LoopChannel (faketrack, true);
+ Con_DPrintf ("Fake CD track %u playing...\n", track);
+ }
+ }
+
+ // If we can't play a fake CD track, try the real one
+ if (faketrack == -1)
+ {
+ if (!cdValid)
+ {
+ CDAudio_GetAudioDiskInfo();
+ if (!cdValid)
+ {
+ Con_Print ("No CD in player.\n");
+ return;
+ }
+ }
+
+ if (track > maxTrack)
+ {
+ Con_Printf("CDAudio: Bad track number %u.\n", track);
+ return;
+ }
+
+ if (CDAudio_SysPlay(track) == -1)
+ return;
+ }