diff options
author | Eugene Sandulenko | 2016-06-17 08:06:47 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-08-03 23:40:36 +0200 |
commit | f58de432c5d7ab1e465fccfe9a449fe955a7865b (patch) | |
tree | 5a17436d4de7f0b7a1d447cd591e5f95b9a0a3c6 | |
parent | 23c79a2786aad39251768bd644779607a04682ca (diff) | |
download | scummvm-rg350-f58de432c5d7ab1e465fccfe9a449fe955a7865b.tar.gz scummvm-rg350-f58de432c5d7ab1e465fccfe9a449fe955a7865b.tar.bz2 scummvm-rg350-f58de432c5d7ab1e465fccfe9a449fe955a7865b.zip |
DIRECTOR: Lingo: Fix script compilation
-rw-r--r-- | engines/director/lingo/lingo.cpp | 10 | ||||
-rw-r--r-- | engines/director/lingo/lingo.h | 7 |
2 files changed, 10 insertions, 7 deletions
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp index d7bd1dca87..ddb1cb11f3 100644 --- a/engines/director/lingo/lingo.cpp +++ b/engines/director/lingo/lingo.cpp @@ -73,21 +73,21 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) { _eventHandlerTypes[t->handler] = t->name; _currentScript = 0; + + warning("Lingo Inited"); } Lingo::~Lingo() { } void Lingo::addCode(Common::String code, ScriptType type, uint16 id) { - debug(0, "Add code %s for type %d with id %d", code.c_str(), type, id); + debug(0, "Add code \"%s\" for type %d with id %d", code.c_str(), type, id); - //FIXME - return; if (_scripts[type].contains(id)) { - free(_scripts[type][id]); + delete _scripts[type][id]; } - _currentScript = new Common::Array<inst>(); + _currentScript = new ScriptData; _scripts[type][id] = _currentScript; parse(code.c_str()); diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index c819779a31..2e5c7b47eb 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -73,6 +73,9 @@ enum LEvent { typedef void (*inst)(void); #define STOP (inst)0 +typedef Common::Array<inst> ScriptData; +typedef Common::HashMap<int32, ScriptData *> ScriptHash; + class Lingo { public: Lingo(DirectorEngine *vm); @@ -101,8 +104,8 @@ private: Common::HashMap<uint32, const char *> _eventHandlerTypes; Common::HashMap<Common::String, Audio::AudioStream *> _audioAliases; - Common::HashMap<int32, Common::Array<inst> *> _scripts[kMaxScriptType]; - Common::Array<inst> *_currentScript; + ScriptHash _scripts[kMaxScriptType + 1]; + ScriptData *_currentScript; DirectorEngine *_vm; }; |