aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/director/lingo/lingo-funcs.cpp2
-rw-r--r--engines/director/lingo/lingo.cpp21
-rw-r--r--engines/director/lingo/lingo.h2
3 files changed, 25 insertions, 0 deletions
diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp
index a71eb3db77..d9e9ee4b92 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 01b6207566..1416b14c93 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 552a1d6253..a739ee77e7 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<uint32, const char *> _eventHandlerTypes;
Common::HashMap<Common::String, uint32> _eventHandlerTypeIds;
Common::HashMap<Common::String, Audio::AudioStream *> _audioAliases;