mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-02-20 19:02:34 +00:00
SDL mixer: Fix no looping bug when changing song position
# Conflicts: # src/sdl12/mixer_sound.c
This commit is contained in:
parent
662c366830
commit
2e9dba352a
1 changed files with 9 additions and 3 deletions
|
@ -793,9 +793,15 @@ boolean I_SetSongPosition(UINT32 position)
|
|||
{
|
||||
if(midimode || !music)
|
||||
return false;
|
||||
Mix_PlayMusic(music, 0);
|
||||
Mix_SetMusicPosition((float)(position/1000.0L));
|
||||
music_bytes = position/1000.0L*44100.0L*4; //assume 44.1khz, 4-byte length (see I_GetSongPositon)
|
||||
Mix_RewindMusic(); // needed for mp3
|
||||
if(Mix_SetMusicPosition((float)(position/1000.0L)) == 0)
|
||||
music_bytes = position/1000.0L*44100.0L*4; //assume 44.1khz, 4-byte length (see I_GetSongPositon)
|
||||
else
|
||||
// NOTE: This block fires on incorrect song format,
|
||||
// NOT if position input is greater than song length.
|
||||
// This means music_bytes will be inaccurate because we can't compare to
|
||||
// max song length. So, don't write your scripts to seek beyond the song.
|
||||
music_bytes = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue