aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sound
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2013-09-21 09:30:42 +0200
committerWillem Jan Palenstijn2013-09-21 09:31:08 +0200
commit3792af8e955bea5a07359c808361a16b15481327 (patch)
tree5a50228ce36d0fbd576473345e5982b0e602ed3b /engines/sci/sound
parent11d425b76c7d6cdae8b72a1c3c438cc74e9c37a0 (diff)
downloadscummvm-rg350-3792af8e955bea5a07359c808361a16b15481327.tar.gz
scummvm-rg350-3792af8e955bea5a07359c808361a16b15481327.tar.bz2
scummvm-rg350-3792af8e955bea5a07359c808361a16b15481327.zip
AUDIO: Simplify SCI inFastForward flag by moving it to MidiParser
Diffstat (limited to 'engines/sci/sound')
-rw-r--r--engines/sci/sound/midiparser_sci.cpp8
-rw-r--r--engines/sci/sound/music.cpp5
-rw-r--r--engines/sci/sound/music.h1
3 files changed, 2 insertions, 12 deletions
diff --git a/engines/sci/sound/midiparser_sci.cpp b/engines/sci/sound/midiparser_sci.cpp
index 0af8e7aedd..40ae91d83d 100644
--- a/engines/sci/sound/midiparser_sci.cpp
+++ b/engines/sci/sound/midiparser_sci.cpp
@@ -543,7 +543,7 @@ void MidiParser_SCI::processEvent(const EventInfo &info, bool fireEvents) {
// That is probably why this signal isn't triggered
// immediately there.
if (_soundVersion <= SCI_VERSION_0_LATE || _position._playTick) {
- if (!_pSnd->inFastForward) {
+ if (!_jumpingToTick) {
_pSnd->setSignal(info.basic.param1);
debugC(4, kDebugLevelSound, "signal %04x", info.basic.param1);
}
@@ -586,15 +586,13 @@ void MidiParser_SCI::processEvent(const EventInfo &info, bool fireEvents) {
// marker set for that song by cmdSetSoundHold.
// If it is, loop back, but don't stop notes when jumping.
if (info.basic.param2 == _pSnd->hold) {
- _pSnd->inFastForward = true;
jumpToTick(_loopTick, false, false);
- _pSnd->inFastForward = false;
// Done with this event.
return;
}
return;
case kUpdateCue:
- if (!_pSnd->inFastForward) {
+ if (!_jumpingToTick) {
int inc;
switch (_soundVersion) {
case SCI_VERSION_0_EARLY:
@@ -658,9 +656,7 @@ void MidiParser_SCI::processEvent(const EventInfo &info, bool fireEvents) {
// (e.g. song 110, during the intro). The original interpreter
// treats this case as an infinite loop (bug #3311911).
if (_pSnd->loop || _pSnd->hold > 0) {
- _pSnd->inFastForward = true;
jumpToTick(_loopTick);
- _pSnd->inFastForward = false;
// Done with this event.
return;
diff --git a/engines/sci/sound/music.cpp b/engines/sci/sound/music.cpp
index 1628a22386..8c6d0d6431 100644
--- a/engines/sci/sound/music.cpp
+++ b/engines/sci/sound/music.cpp
@@ -521,11 +521,7 @@ void SciMusic::soundPlay(MusicEntry *pSnd) {
pSnd->pMidiParser->jumpToTick(0);
else {
// Fast forward to the last position and perform associated events when loading
- pSnd->inFastForward = true;
- // we set this flag, so that the midiparser doesn't set any signals for scripts
- // if we don't do this, at least accessing the debugger will reset previously set signals
pSnd->pMidiParser->jumpToTick(pSnd->ticker, true, true, true);
- pSnd->inFastForward = false;
}
// Restore looping and hold
@@ -765,7 +761,6 @@ MusicEntry::MusicEntry() {
resourceId = 0;
isQueued = false;
- inFastForward = false;
dataInc = 0;
ticker = 0;
diff --git a/engines/sci/sound/music.h b/engines/sci/sound/music.h
index 5924a0fd12..1f798c90d7 100644
--- a/engines/sci/sound/music.h
+++ b/engines/sci/sound/music.h
@@ -65,7 +65,6 @@ public:
uint16 resourceId;
bool isQueued; // for SCI0 only!
- bool inFastForward; // if we are currently fast-forwarding (disables any signals to scripts)
uint16 dataInc;
uint16 ticker;