]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cd_shared.c
Merge remote branch 'origin/master' into akari/irc
[xonotic/darkplaces.git] / cd_shared.c
index 7ca41ed60079493485e6ad7db7323fdf94f30e32..453aba622b1b565afc8b83ac7efd2f99ee3c1745 100644 (file)
@@ -322,15 +322,11 @@ void CDAudio_Play_byName (const char *trackname, qboolean looping, qboolean tryr
                if (!FS_FileExists(filename)) dpsnprintf(filename, sizeof(filename), "music/%s.ogg", trackname); // added by motorsep
                if (!FS_FileExists(filename)) dpsnprintf(filename, sizeof(filename), "music/cdtracks/%s.ogg", trackname); // added by motorsep
        }
-       if (FS_FileExists(filename) && (sfx = S_PrecacheSound (filename, false, true)))
+       if (FS_FileExists(filename) && (sfx = S_PrecacheSound (filename, false, false)))
        {
-               faketrack = S_StartSound_StartPosition (-1, 0, sfx, vec3_origin, cdvolume, 0, startposition);
+               faketrack = S_StartSound_StartPosition_Flags (-1, 0, sfx, vec3_origin, cdvolume, 0, startposition, (looping ? CHANNELFLAG_FORCELOOP : 0) | CHANNELFLAG_FULLVOLUME | CHANNELFLAG_LOCALSOUND);
                if (faketrack != -1)
                {
-                       if (looping)
-                               S_SetChannelFlag (faketrack, CHANNELFLAG_FORCELOOP, true);
-                       S_SetChannelFlag (faketrack, CHANNELFLAG_FULLVOLUME, true);
-                       S_SetChannelFlag (faketrack, CHANNELFLAG_LOCALSOUND, true); // not pausable
                        if(track >= 1)
                        {
                                if(cdaudio.integer != 0) // we don't need these messages if only fake tracks can be played anyway
@@ -393,7 +389,7 @@ void CDAudio_Stop (void)
 
        if (faketrack != -1)
        {
-               S_StopChannel (faketrack, true);
+               S_StopChannel (faketrack, true, true);
                faketrack = -1;
        }
        else if (cdPlaying && (CDAudio_SysStop() == -1))