diff options
author | Strangerke | 2012-04-08 15:03:41 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2018-03-28 17:36:57 +0200 |
commit | a2fc07a702d28c7a5fe398f8888af5a639c5c64a (patch) | |
tree | 818cddbc97613343448d49a506d9532e0ddf1112 | |
parent | 07f7ddde0f343fc13dbdf52f74519cd96a8f0e37 (diff) | |
download | scummvm-rg350-a2fc07a702d28c7a5fe398f8888af5a639c5c64a.tar.gz scummvm-rg350-a2fc07a702d28c7a5fe398f8888af5a639c5c64a.tar.bz2 scummvm-rg350-a2fc07a702d28c7a5fe398f8888af5a639c5c64a.zip |
LILLIPUT: Complete function getValue2()
-rw-r--r-- | engines/lilliput/script.cpp | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/engines/lilliput/script.cpp b/engines/lilliput/script.cpp index fead98c2bb..372fd0fec5 100644 --- a/engines/lilliput/script.cpp +++ b/engines/lilliput/script.cpp @@ -675,12 +675,22 @@ int LilliputScript::getValue2() { } case 0xFD: return _vm->_word16EFA; - case 0xFC: - warning("TODO: getValue2 - 0xFC"); - return 0; - case 0xFB: - warning("TODO: getValue2 - 0xFB"); - return 0; + case 0xFC: { + int index = curWord & 0xFF; + assert(index < 40); + byte var1 = _vm->_rulesBuffer2_1[index] >> 3; + byte var2 = _vm->_rulesBuffer2_2[index] >> 3; + + return (var1 << 8) + var2; + } + case 0xFB: { + int index = _word16F00; + assert(index < 40); + byte var1 = _vm->_rulesBuffer2_1[index] >> 3; + byte var2 = _vm->_rulesBuffer2_2[index] >> 3; + + return (var1 << 8) + var2; + } case 0xFA: return ((_vm->_byte10999[_vm->_rulesBuffer2PrevIndx] << 8) + _vm->_byte109C1[_vm->_rulesBuffer2PrevIndx]); case 0xF9: @@ -690,9 +700,14 @@ int LilliputScript::getValue2() { assert((index >= 0) && (index < 40)); return _vm->_rulesBuffer12_3[index]; } - case 0xF7: - warning("TODO: getValue2 - 0xF7"); - return 0; + case 0xF7: { + int index = _vm->_rulesBuffer2_15[6]; + assert(index < 40); + byte var1 = _vm->_rulesBuffer2_1[index] >> 3; + byte var2 = _vm->_rulesBuffer2_2[index] >> 3; + + return (var1 << 8) + var2; + } case 0xF6: return _vm->_mouse_savedMousePosDivided; default: |