diff options
| -rw-r--r-- | engines/simon/simon.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/engines/simon/simon.cpp b/engines/simon/simon.cpp index 405d2dbe7e..0d680ba6cd 100644 --- a/engines/simon/simon.cpp +++ b/engines/simon/simon.cpp @@ -397,8 +397,10 @@ SimonEngine::SimonEngine(OSystem *syst) memset(_speechIdArray4, 0, sizeof(_speechIdArray4)); memset(_bitArray, 0, sizeof(_bitArray)); + memset(_variableArray, 0, sizeof(_variableArray)); memset(_variableArray2, 0, sizeof(_variableArray2)); + _variableArrayPtr = 0; memset(_windowArray, 0, sizeof(_windowArray)); @@ -995,8 +997,12 @@ uint SimonEngine::getVarOrByte() { uint SimonEngine::getVarOrWord() { uint a = READ_BE_UINT16(_codePtr); _codePtr += 2; - if (a >= 30000 && a < 30512) - return readVariable(a - 30000); + if (a >= 30000 && a < 30512) { + if (getGameType() == GType_FF) + return (uint16)readVariable(a - 30000); + else + return readVariable(a - 30000); + } return a; } @@ -3509,6 +3515,8 @@ int SimonEngine::go() { else _numTextBoxes = 20; + _variableArrayPtr = _variableArray; + _startMainScript = false; _continousMainScript = false; _startVgaScript = false; |
