aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo/lingo-funcs.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2017-02-07 20:57:32 +0100
committerEugene Sandulenko2017-02-07 20:57:32 +0100
commita09d15e89266fb0f9f655dab8083484fc11ac232 (patch)
treee8125a907ba9cebb8ce2a13270be306b65a54de1 /engines/director/lingo/lingo-funcs.cpp
parent355435e9a7bbcfcc0e4dc23e45dfce3b5337a1cd (diff)
downloadscummvm-rg350-a09d15e89266fb0f9f655dab8083484fc11ac232.tar.gz
scummvm-rg350-a09d15e89266fb0f9f655dab8083484fc11ac232.tar.bz2
scummvm-rg350-a09d15e89266fb0f9f655dab8083484fc11ac232.zip
DIRECTOR: Fixed Lingo's 'go to movie' Red/Blue works
Diffstat (limited to 'engines/director/lingo/lingo-funcs.cpp')
-rw-r--r--engines/director/lingo/lingo-funcs.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp
index ef19293d92..5ae58a9207 100644
--- a/engines/director/lingo/lingo-funcs.cpp
+++ b/engines/director/lingo/lingo-funcs.cpp
@@ -181,19 +181,24 @@ void Lingo::func_goto(Datum &frame, Datum &movie) {
return;
}
- restartLingo();
+ _vm->_nextMovie = *movie.u.s;
+ _vm->_currentScore->_stopPlay = true;
- delete _vm->_currentScore;
+ _vm->_nextMovieFrameS.clear();
+ _vm->_nextMovieFrameI = -1;
- Archive *mov = _vm->openMainArchive(*movie.u.s);
+ if (frame.type == VOID)
+ return;
- _vm->_currentScore = new Score(_vm, mov);
- debug(0, "Score name %s", _vm->_currentScore->getMacName().c_str());
- _vm->_currentScore->loadArchive();
- }
+ if (frame.type == STRING) {
+ _vm->_nextMovieFrameS = *frame.u.s;
+ return;
+ }
+
+ frame.toInt();
+
+ _vm->_nextMovieFrameI = frame.u.i;
- if (!_vm->_currentScore) {
- warning("func_goto: No score is loaded");
return;
}