aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/director/lingo/lingo-funcs.cpp6
-rw-r--r--engines/director/score.cpp6
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) {