diff options
-rw-r--r-- | engines/director/lingo/lingo-funcs.cpp | 6 | ||||
-rw-r--r-- | engines/director/score.cpp | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp index 5ddfd0db62..ddc51f4149 100644 --- a/engines/director/lingo/lingo-funcs.cpp +++ b/engines/director/lingo/lingo-funcs.cpp @@ -242,6 +242,8 @@ void Lingo::func_gotoloop() { return; _vm->getCurrentScore()->gotoLoop(); + + g_director->_skipFrameAdvance = true; } void Lingo::func_gotonext() { @@ -249,6 +251,8 @@ void Lingo::func_gotonext() { return; _vm->getCurrentScore()->gotoNext(); + + g_director->_skipFrameAdvance = true; } void Lingo::func_gotoprevious() { @@ -256,6 +260,8 @@ void Lingo::func_gotoprevious() { return; _vm->getCurrentScore()->gotoPrevious(); + + g_director->_skipFrameAdvance = true; } void Lingo::func_cursor(int c) { diff --git a/engines/director/score.cpp b/engines/director/score.cpp index ca016d0051..76393e5449 100644 --- a/engines/director/score.cpp +++ b/engines/director/score.cpp @@ -639,6 +639,8 @@ void Score::gotoLoop() { } } } + + g_director->_skipFrameAdvance = true; } int Score::getCurrentLabelNumber() { @@ -657,11 +659,15 @@ int Score::getCurrentLabelNumber() { void Score::gotoNext() { // we can just try to use the current frame and get the next label _currentFrame = getNextLabelNumber(_currentFrame); + + g_director->_skipFrameAdvance = true; } void Score::gotoPrevious() { // we actually need the frame of the label prior to the most recent label. _currentFrame = getPreviousLabelNumber(getCurrentLabelNumber()); + + g_director->_skipFrameAdvance = true; } int Score::getNextLabelNumber(int referenceFrame) { |