From: divverent Date: Mon, 15 Dec 2008 09:31:55 +0000 (+0000) Subject: 1. also play sounds outside cdtracks/ as CD tracks X-Git-Tag: xonotic-v0.1.0preview~2001 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=91c60a348c2c4a1ca134588d2adfb0b09b146833;p=xonotic%2Fdarkplaces.git 1. also play sounds outside cdtracks/ as CD tracks 2. "cdaudio 4": play a random CD track for named tracks git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@8589 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/cd_shared.c b/cd_shared.c index ebe091dc..36bae127 100644 --- a/cd_shared.c +++ b/cd_shared.c @@ -43,7 +43,7 @@ extern void CDAudio_SysShutdown (void); // used by menu to ghost CD audio slider cvar_t cdaudioinitialized = {CVAR_READONLY,"cdaudioinitialized","0","indicates if CD Audio system is active"}; -cvar_t cdaudio = {CVAR_SAVE,"cdaudio","1","CD playing mode (0 = never access CD drive, 1 = play CD tracks if no replacement available, 2 = play fake tracks if no CD track available, 3 = play only real CD tracks)"}; +cvar_t cdaudio = {CVAR_SAVE,"cdaudio","1","CD playing mode (0 = never access CD drive, 1 = play CD tracks if no replacement available, 2 = play fake tracks if no CD track available, 3 = play only real CD tracks, 4 = play real CD tracks even instead of named fake tracks)"}; static qboolean wasPlaying = false; static qboolean initialized = false; @@ -187,11 +187,29 @@ void CDAudio_Play_byName (const char *trackname, qboolean looping) if(cdaudio.integer == 2) // prefer real CD track over fake { - if(CDAudio_Play_real(track, looping, false)) - goto success; + if(CDAudio_Play_real(track, looping, false)) + goto success; } } + if(cdaudio.integer == 4) // only play real CD tracks, EVEN instead of fake tracks! + { + if(CDAudio_Play_real(track, looping, false)) + goto success; + + if(cdValid && maxTrack > 0) + { + track = 1 + (rand() % maxTrack); + if(CDAudio_Play_real(track, looping, true)) + goto success; + } + else + { + Con_Print ("No CD in player.\n"); + } + return; + } + // Try playing a fake track (sound file) first if(track >= 1) { @@ -208,6 +226,10 @@ void CDAudio_Play_byName (const char *trackname, qboolean looping) sfx = S_PrecacheSound (va("cdtracks/%s.wav", trackname), false, false); if (sfx == NULL || !S_IsSoundPrecached (sfx)) sfx = S_PrecacheSound (va("cdtracks/%s", trackname), false, false); + if (sfx == NULL || !S_IsSoundPrecached (sfx)) + sfx = S_PrecacheSound (va("%s.wav", trackname), false, false); + if (sfx == NULL || !S_IsSoundPrecached (sfx)) + sfx = S_PrecacheSound (va("%s", trackname), false, false); } if (sfx != NULL) {