mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-21 20:21:09 +00:00
Add a new playback mode ogg_shuffle
== 4
, truly random playback.
912b65ff74
changed mode `3` from random
playback to truly random playback, allowing the same track being played
several times in a row. Since some users might prefer the old behavior
move truly random playback to a new mode `4`. Add it to the menu and
finally document the `ogg_shuffle` cvar.
In addition to #1143
This commit is contained in:
parent
da15696d23
commit
5acb267630
3 changed files with 19 additions and 0 deletions
|
@ -291,6 +291,15 @@ it's `+set busywait 0` (setting the `busywait` cvar) and `-portable`
|
|||
0. Setting this cvar to `1` disables this behavior, the music keeps
|
||||
playing.
|
||||
|
||||
* **ogg_shuffle**: Ogg/Vorbis playback mode. Supported modes are:
|
||||
`0`: Loop the current track (the default).
|
||||
`1`: Play the current track once, then stop.
|
||||
`2`: Play all available tracks in a linear sequence.
|
||||
`3`: Shuffle through the available tracks, never play the same track
|
||||
twice in a row.
|
||||
`4`: Shuffle through the available tracks, may play the same track
|
||||
multiple times in a row.
|
||||
|
||||
* **s_doppler**: If set to `1` doppler effects are enabled. This is only
|
||||
supported by the OpenAL sound backend.
|
||||
|
||||
|
|
|
@ -2371,6 +2371,7 @@ Options_MenuInit(void)
|
|||
"play once",
|
||||
"sequential",
|
||||
"random",
|
||||
"truly random",
|
||||
0
|
||||
};
|
||||
|
||||
|
|
|
@ -530,6 +530,7 @@ OGG_PlayTrack(const char *track, qboolean cdtrack, qboolean immediate)
|
|||
newtrack = (curtrack + 1) % (ogg_maxfileindex + 1) != 0 ? (curtrack + 1) : 2;
|
||||
} break;
|
||||
case 3: // random
|
||||
case 4: // random with true randomness
|
||||
{
|
||||
int retries = 100;
|
||||
newtrack = 0;
|
||||
|
@ -537,6 +538,14 @@ OGG_PlayTrack(const char *track, qboolean cdtrack, qboolean immediate)
|
|||
while (retries-- > 0 && newtrack < 2)
|
||||
{
|
||||
newtrack = randk() % (ogg_maxfileindex + 1);
|
||||
|
||||
if (playback == 3)
|
||||
{
|
||||
if (newtrack == curtrack)
|
||||
{
|
||||
newtrack = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
} break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue