diff options
author | Eugene Sandulenko | 2017-02-07 20:57:32 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2017-02-07 20:57:32 +0100 |
commit | a09d15e89266fb0f9f655dab8083484fc11ac232 (patch) | |
tree | e8125a907ba9cebb8ce2a13270be306b65a54de1 /engines/director/lingo/lingo-funcs.cpp | |
parent | 355435e9a7bbcfcc0e4dc23e45dfce3b5337a1cd (diff) | |
download | scummvm-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.cpp | 23 |
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; } |