Fixed looping sounds in the new sound code

svn-id: r46477
This commit is contained in:
Filippos Karapetis 2009-12-22 00:35:27 +00:00
parent fd5e548bb2
commit 0d82924fbe
2 changed files with 3 additions and 3 deletions

View file

@ -611,8 +611,8 @@ void MidiParser_SCI::parseNextEvent(EventInfo &info) {
info.ext.data = _position._play_pos;
_position._play_pos += info.length;
if (info.ext.type == 0x2F) {// end of track reached
int loop = GET_SEL32V(_segMan, _pSnd->soundObj, loop);
if (loop) {
int16 loop = GET_SEL32V(_segMan, _pSnd->soundObj, loop);
if (loop == 0xFFFF) {
jumpToTick(_loopTick);
PUT_SEL32V(_segMan, _pSnd->soundObj, loop, loop--);
} else {

View file

@ -779,7 +779,7 @@ void SoundCommandParser::cmdSetHandlePriority(reg_t obj, int16 value) {
void SoundCommandParser::cmdSetHandleLoop(reg_t obj, int16 value) {
if (!GET_SEL32(_segMan, obj, nodePtr).isNull()) {
PUT_SEL32V(_segMan, obj, loop, value);
PUT_SEL32V(_segMan, obj, loop, value == 0xFFFF ? 0xFFFF : 1);
#ifdef USE_OLD_MUSIC_FUNCTIONS
SongHandle handle = FROBNICATE_HANDLE(obj);
_state->sfx_song_set_loops(handle, value);