diff options
author | Strangerke | 2012-05-24 21:11:00 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2018-03-28 17:36:57 +0200 |
commit | 3103cf448a586045469e328a11e680d2cb3ace48 (patch) | |
tree | 5d559206c5144890e6c40ede2823619ac0806de7 | |
parent | f602ca7408fb35d8c18330e9e53c20a9fdb78898 (diff) | |
download | scummvm-rg350-3103cf448a586045469e328a11e680d2cb3ace48.tar.gz scummvm-rg350-3103cf448a586045469e328a11e680d2cb3ace48.tar.bz2 scummvm-rg350-3103cf448a586045469e328a11e680d2cb3ace48.zip |
LILLIPUT: Fix a bug in sub171AF
-rw-r--r-- | engines/lilliput/lilliput.cpp | 6 | ||||
-rw-r--r-- | engines/lilliput/script.cpp | 17 | ||||
-rw-r--r-- | engines/lilliput/script.h | 4 |
3 files changed, 14 insertions, 13 deletions
diff --git a/engines/lilliput/lilliput.cpp b/engines/lilliput/lilliput.cpp index 68a4e32910..ee37f02c18 100644 --- a/engines/lilliput/lilliput.cpp +++ b/engines/lilliput/lilliput.cpp @@ -343,7 +343,7 @@ void LilliputEngine::display16x16IndexedBuf(byte *buf, int index, Common::Point int index1 = index * 16 * 16; byte *newBuf = &buf[index1]; - int index2 = pos.x + (pos.y * 320); + int vgaIndex = pos.x + (pos.y * 320); for (int i = 0; i < 16; i++) { // clip on y @@ -351,10 +351,10 @@ void LilliputEngine::display16x16IndexedBuf(byte *buf, int index, Common::Point for (int j = 0; j < 16; j++) { // clip on x if ((newBuf[j] != 0) && (pos.x + j < 320)) - ((byte *)_mainSurface->getPixels())[index2 + j] = newBuf[j]; + ((byte *)_mainSurface->getPixels())[vgaIndex + j] = newBuf[j]; } } - index2 += 320; + vgaIndex += 320; newBuf += 16; } _system->copyRectToScreen((byte *)_mainSurface->getPixels(), 320, 0, 0, 320, 200); diff --git a/engines/lilliput/script.cpp b/engines/lilliput/script.cpp index 1eda4235e3..ecdf1ac1f6 100644 --- a/engines/lilliput/script.cpp +++ b/engines/lilliput/script.cpp @@ -64,7 +64,7 @@ LilliputScript::LilliputScript(LilliputEngine *vm) : _vm(vm), _currScript(NULL) _array128EF[i] = 15; _array10AB1[i] = 0; _array12811[i] = 16; - _array12839[i] = 0xFF; + _array12839[i] = -1; _array16123PosX[i] = 0; _array1614BPosY[i] = 0; _array122C1[i] = 0; @@ -1066,7 +1066,7 @@ void LilliputScript::sub16C86(int index, byte *buf) { } } -void LilliputScript::sub16C5C(int index, byte var3) { +void LilliputScript::sub16C5C(int index, int8 var3) { debugC(1, kDebugScript, "sub16C5C(%d, %d)", index, var3); assert(index < 40); @@ -1744,9 +1744,9 @@ byte LilliputScript::OC_compWord10804() { } byte LilliputScript::OC_sub17766() { - debugC(1, kDebugScriptTBC, "OC_sub17766()"); + debugC(1, kDebugScript, "OC_sub17766()"); - byte var1 = (_currScript->readUint16LE() & 0xFF); + int8 var1 = (_currScript->readUint16LE() & 0xFF); if ((var1 == _array12839[_vm->_currentScriptCharacter]) && (_array12811[_vm->_currentScriptCharacter] != 16)) return 1; @@ -1756,7 +1756,7 @@ byte LilliputScript::OC_sub17766() { byte LilliputScript::OC_sub17782() { debugC(1, kDebugScript, "OC_sub17782()"); - byte var1 = (_currScript->readUint16LE() & 0xFF); + int8 var1 = (_currScript->readUint16LE() & 0xFF); if ((var1 == _array12839[_vm->_currentScriptCharacter]) && (_array12811[_vm->_currentScriptCharacter] == 16)) return 1; @@ -2394,14 +2394,14 @@ void LilliputScript::OC_resetByte16F04() { void LilliputScript::OC_sub17AE1() { debugC(1, kDebugScript, "OC_sub17AE1()"); - byte var3 = (_currScript->readUint16LE() & 0xFF); + int8 var3 = (_currScript->readUint16LE() & 0xFF); sub16C5C(_vm->_currentScriptCharacter, var3); } void LilliputScript::OC_sub17AEE() { debugC(1, kDebugScript, "OC_sub17AEE()"); - byte var3 = (_currScript->readUint16LE() & 0xFF); + int8 var3 = (_currScript->readUint16LE() & 0xFF); sub16C5C(_vm->_currentScriptCharacter + 1, var3); } @@ -2460,7 +2460,7 @@ void LilliputScript::OC_setCurrentCharacter() { } void LilliputScript::sub171AF(int16 var1, int16 var2, int16 var4) { - debugC(2, kDebugScriptTBC, "sub171AF()"); + debugC(2, kDebugScript, "sub171AF()"); int index = 0; for (int i = 0; i < 10; i++) { @@ -2468,6 +2468,7 @@ void LilliputScript::sub171AF(int16 var1, int16 var2, int16 var4) { _vm->_array12861[index + 1] = var1; _vm->_array12861[index + 2] = var2; _vm->_array12861[index + 0] = _vm->_word1289D + var4; + return; } index += 3; } diff --git a/engines/lilliput/script.h b/engines/lilliput/script.h index d858fe57c7..1196035886 100644 --- a/engines/lilliput/script.h +++ b/engines/lilliput/script.h @@ -80,7 +80,7 @@ public: Common::Point _array12311[640]; byte _array128EF[40]; - byte _array12839[40]; + int8 _array12839[40]; Common::Point _array1813BPos[32]; LilliputScript(LilliputEngine *vm); @@ -120,7 +120,7 @@ private: void enableCharacterScript(byte index, byte var1, byte *curBufPtr); void sub17B6C(int var1); void sub16C86(int index, byte *buf); - void sub16C5C(int index, byte var3); + void sub16C5C(int index, int8 var3); void checkSpeechAllowed(bool &forceReturnFl); void decodePackedText(char *buf); void startSpeech(int var); |