SDL mixer: Fix no looping bug when changing song position

# Conflicts:
#	src/sdl12/mixer_sound.c
This commit is contained in:
mazmazz 2018-08-15 02:02:33 -04:00
parent ca3ceb30b9
commit 58727a3bba

View file

@ -793,9 +793,15 @@ boolean I_SetSongPosition(UINT32 position)
{ {
if(midimode || !music) if(midimode || !music)
return false; return false;
Mix_PlayMusic(music, 0); Mix_RewindMusic(); // needed for mp3
Mix_SetMusicPosition((float)(position/1000.0L)); 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) 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; return true;
} }