aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2009-12-31 11:14:13 +0000
committerFilippos Karapetis2009-12-31 11:14:13 +0000
commitc7ea1a16138c87f0e4da3287ff9dcd049a6639fb (patch)
tree9ad0259a87ac2233b5e2c206d592883445d3f350
parent70a1f7c89ad51579089fe2cd381ae9306a613bca (diff)
downloadscummvm-rg350-c7ea1a16138c87f0e4da3287ff9dcd049a6639fb.tar.gz
scummvm-rg350-c7ea1a16138c87f0e4da3287ff9dcd049a6639fb.tar.bz2
scummvm-rg350-c7ea1a16138c87f0e4da3287ff9dcd049a6639fb.zip
Mention the fact that we derive from SSCI by not caching the loop selector
svn-id: r46797
-rw-r--r--engines/sci/sfx/midiparser.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/engines/sci/sfx/midiparser.cpp b/engines/sci/sfx/midiparser.cpp
index 59d762bda8..6e8dd56bf5 100644
--- a/engines/sci/sfx/midiparser.cpp
+++ b/engines/sci/sfx/midiparser.cpp
@@ -200,6 +200,13 @@ 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
+ // We deviate from SSCI here: in SSCI, the loop is cached, whereas it's
+ // read directly from the sound code here (changed in rev. r46792).
+ // Theoretically, this shouldn't matter at all, as the loop should always
+ // be in sync and should never be changed. In SCI01 and later, the loop is
+ // set from the scripts via cmdSetHandleLoop, so again if there is any
+ // problem with this approach, it'll likely be apparent in SCI0 games
+ // (but no problems have been encountered because of this so far)
int16 loop = GET_SEL32V(segMan, _pSnd->soundObj, loop);
if (loop)
loop--;