From: terencehill Date: Sun, 4 Aug 2013 11:52:32 +0000 (+0200) Subject: Allow removal of the current playing track X-Git-Tag: xonotic-v0.8.1~157^2~14 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=3004130e18a66e559f8cba0875b0bd7525bc9af9;p=xonotic%2Fxonotic-data.pk3dir.git Allow removal of the current playing track --- diff --git a/qcsrc/menu/xonotic/playlist.c b/qcsrc/menu/xonotic/playlist.c index 4e64cabe4..c1545b18e 100644 --- a/qcsrc/menu/xonotic/playlist.c +++ b/qcsrc/menu/xonotic/playlist.c @@ -88,7 +88,7 @@ void XonoticPlayList_addToPlayList(entity me, string track) void XonoticPlayList_removeFromPlayList(entity me, string track) { - float i; + float i, cpt = FALSE; string s = ""; me.nItems = tokenize_console(cvar_string("music_playlist_list0")); if(me.nItems == 0) @@ -96,10 +96,17 @@ void XonoticPlayList_removeFromPlayList(entity me, string track) for(i = 0; i < me.nItems; ++i) { if(argv(i) == track) - if(cvar("music_playlist_current0") != i) // forbid removing the current playing track, otherwise pause button will resume from another track { - if(cvar("music_playlist_current0") > i) - cvar_set("music_playlist_current0", ftos(cvar("music_playlist_current0") - 1)); + if(cvar("music_playlist_index") == 0 || cvar("music_playlist_index") == 999) + { + if(cvar("music_playlist_current0") == i) + cpt = TRUE; // current playing track (we can't start next track here because startSound calls tokenize_console) + else + { + if(cvar("music_playlist_current0") > i) + cvar_set("music_playlist_current0", ftos(cvar("music_playlist_current0") - 1)); + } + } continue; } s = strcat(s, " ", argv(i)); @@ -108,6 +115,8 @@ void XonoticPlayList_removeFromPlayList(entity me, string track) cvar_set("music_playlist_list0", ""); else cvar_set("music_playlist_list0", substring(s, 1, strlen(s))); //remove initial space + if(cpt) + me.startSound(me, 0); // stop current playing track otherwise pause/play button will resume from another track } float XonoticPlayList_mouseDrag(entity me, vector pos)