diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp index a71eb3db777..d9e9ee4b92e 100644 --- a/engines/director/lingo/lingo-funcs.cpp +++ b/engines/director/lingo/lingo-funcs.cpp @@ -179,6 +179,8 @@ void Lingo::func_goto(Datum &frame, Datum &movie) { return; } + restartLingo(); + delete _vm->_currentScore; Archive *mov = _vm->openMainArchive(*movie.u.s); diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp index 01b6207566f..1416b14c933 100644 --- a/engines/director/lingo/lingo.cpp +++ b/engines/director/lingo/lingo.cpp @@ -306,6 +306,27 @@ void Lingo::processEvent(LEvent event, ScriptType st, int entityId) { } } +void Lingo::restartLingo() { + warning("STUB: restartLingo()"); + + // TODO + // + // reset the following: + // the keyDownScript + // the mouseUpScript + // the mouseDownScript + // the beepOn + // the constraint properties + // the cursor + // the immediate sprite properties + // the puppetSprite + // cursor commands + // custom menus + // + // NOTE: + // tuneousScript is not reset +} + int Lingo::alignTypes(Datum &d1, Datum &d2) { int opType = INT; diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index 552a1d6253a..a739ee77e71 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -509,6 +509,8 @@ private: void push(Datum d); Datum pop(void); + void restartLingo(); + Common::HashMap _eventHandlerTypes; Common::HashMap _eventHandlerTypeIds; Common::HashMap _audioAliases;