diff --git a/engines/lilliput/lilliput.cpp b/engines/lilliput/lilliput.cpp index 23d9645c01d..8904b867f4f 100644 --- a/engines/lilliput/lilliput.cpp +++ b/engines/lilliput/lilliput.cpp @@ -154,7 +154,7 @@ LilliputEngine::LilliputEngine(OSystem *syst, const LilliputGameDescription *gd) _currentScriptCharacterPos = Common::Point(0, 0); _word10804 = 0; _nextCharacterIndex = 0; - _word16EFE = 0xFFFF; + _word16EFE = -1; _word1817B = 0; _savedSurfaceUnderMousePos = Common::Point(0, 0); _word15AC2 = 0; diff --git a/engines/lilliput/lilliput.h b/engines/lilliput/lilliput.h index c58c37fd3c6..43ac74b6742 100644 --- a/engines/lilliput/lilliput.h +++ b/engines/lilliput/lilliput.h @@ -141,7 +141,7 @@ public: byte _numCharacters; Common::Point _currentScriptCharacterPos; int _nextCharacterIndex; - int _word16EFE; + int16 _word16EFE; uint16 _word1817B; Common::Point _savedSurfaceUnderMousePos; int _word15AC2; diff --git a/engines/lilliput/script.cpp b/engines/lilliput/script.cpp index 8b5ebe3c03c..fd30b969520 100644 --- a/engines/lilliput/script.cpp +++ b/engines/lilliput/script.cpp @@ -2481,14 +2481,14 @@ void LilliputScript::OC_setCurrentCharacter() { _vm->setCurrentCharacter(var1); } -void LilliputScript::sub171AF(int16 var1, uint16 var2, int16 var4) { - debugC(2, kDebugScript, "sub171AF()"); +void LilliputScript::sub171AF(int16 var1, byte var2h, byte characterId, int16 var4) { + debugC(2, kDebugScript, "sub171AF(%d, %d, %d, %d)", var1, var2h, characterId, var4); int index = 0; for (int i = 0; i < 10; i++) { if (_vm->_array12861[index + 1] == -1) { _vm->_array12861[index + 1] = var1; - _vm->_array12861[index + 2] = var2; + _vm->_array12861[index + 2] = (var2h << 8) + characterId; _vm->_array12861[index + 0] = _vm->_word1289D + var4; return; } @@ -2501,10 +2501,9 @@ void LilliputScript::OC_sub17C8B() { int16 type = 2 << 8; int16 var4 = _currScript->readSint16LE(); - byte tmpVal = (_currScript->readUint16LE() & 0xFF); - uint16 var2 = (tmpVal << 8) + _vm->_currentScriptCharacter; + byte var2h = (_currScript->readUint16LE() & 0xFF); - sub171AF(type, var2, var4); + sub171AF(type, var2h, _vm->_currentScriptCharacter, var4); } void LilliputScript::OC_sub17CA2() { @@ -2512,21 +2511,19 @@ void LilliputScript::OC_sub17CA2() { int16 type = 1 << 8; int16 var4 = _currScript->readSint16LE(); - byte tmpVal = (_currScript->readUint16LE() & 0xFF); - uint16 var2 = (tmpVal << 8) + _vm->_currentScriptCharacter; + byte var2h = (_currScript->readUint16LE() & 0xFF); - sub171AF(type, var2, var4); + sub171AF(type, var2h, _vm->_currentScriptCharacter, var4); } void LilliputScript::OC_sub17CB9() { - debugC(1, kDebugScript, "OC_sub17CB9()"); + debugC(1, kDebugScriptTBC, "OC_sub17CB9()"); int16 var4 = _currScript->readSint16LE(); - int16 var1 = getValue1(); - byte tmpVal = (_currScript->readUint16LE() & 0xFF); - uint16 var2 = (tmpVal << 8) + _vm->_currentScriptCharacter; + int16 type = getValue1(); + byte var2h = (_currScript->readUint16LE() & 0xFF); - sub171AF(var1, var2, var4); + sub171AF(type, var2h, _vm->_currentScriptCharacter, var4); } void LilliputScript::OC_sub17CD1() { @@ -2534,16 +2531,15 @@ void LilliputScript::OC_sub17CD1() { int16 type = 3 << 8; int16 var4 = _currScript->readSint16LE(); - int tmpVal = (_currScript->readUint16LE() & 0xFF); - uint16 var2 = (tmpVal << 8) + _vm->_currentScriptCharacter; + byte var2h = (_currScript->readUint16LE() & 0xFF); - sub171AF(type, var2, var4); + sub171AF(type, var2h, _vm->_currentScriptCharacter, var4); } void LilliputScript::OC_resetWord16EFE() { debugC(1, kDebugScriptTBC, "OC_resetWord16EFE()"); - _vm->_word16EFE = 0xFFFF; + _vm->_word16EFE = -1; } void LilliputScript::OC_enableCurrentCharacterScript() { diff --git a/engines/lilliput/script.h b/engines/lilliput/script.h index 59ffb4da197..9500531385e 100644 --- a/engines/lilliput/script.h +++ b/engines/lilliput/script.h @@ -127,7 +127,7 @@ private: void displayNumber(byte var1, Common::Point pos); byte *getMapPtr(Common::Point val); byte *getCurrentCharacterVarFromScript(); - void sub171AF(int16 var1, uint16 var2, int16 var4); + void sub171AF(int16 var1, byte var2h, byte characterId, int16 var4); void getSpeechVariant(int speechIndex, int speechVariant); void sub189B8(); void formatSpeechString();