commit 48bb550452bef6f90112018bce4a618a7a8af87f
Author: ceski <56656010+ceski-1@users.noreply.github.com>
AuthorDate: Mon May 15 10:08:21 2023 -0700
Commit: ceski <56656010+ceski-1@users.noreply.github.com>
CommitDate: Mon May 15 10:08:21 2023 -0700
Fix EMIDI global looping
---
src/i_winmusic.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/i_winmusic.c b/src/i_winmusic.c
index cfb8927b..9271064e 100644
--- a/src/i_winmusic.c
+++ b/src/i_winmusic.c
@@ -940,7 +940,10 @@ static boolean AddToBuffer(unsigned int delta_time, midi_event_t *event,
{
song.tracks[i].emidi_loop_count = count;
MIDI_SetLoopPoint(song.tracks[i].iter);
+ song.tracks[i].saved_end_of_track = song.tracks[i].end_of_track;
+ song.tracks[i].saved_elapsed_time = song.tracks[i].elapsed_time;
}
+ song.saved_elapsed_time = song.elapsed_time;
SendNOPMsg(delta_time);
break;
@@ -952,6 +955,9 @@ static boolean AddToBuffer(unsigned int delta_time, midi_event_t *event,
if (song.tracks[i].emidi_loop_count != 0)
{
MIDI_RestartAtLoopPoint(song.tracks[i].iter);
+ song.tracks[i].end_of_track = song.tracks[i].saved_end_of_track;
+ song.tracks[i].elapsed_time = song.tracks[i].saved_elapsed_time;
+ song.elapsed_time = song.saved_elapsed_time;
}
if (song.tracks[i].emidi_loop_count > 0)