From 3a102e6f24f756d7dad15c709dd32be8c46f19c1 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 18 May 2012 16:48:49 +0200 Subject: LILLIPUT: Some more renaming, fix issue in OC_sub17640, implement OC_sub18690 --- engines/lilliput/lilliput.cpp | 36 ++++----- engines/lilliput/lilliput.h | 14 ++-- engines/lilliput/script.cpp | 168 +++++++++++++++++++++--------------------- engines/lilliput/script.h | 10 +-- 4 files changed, 115 insertions(+), 113 deletions(-) (limited to 'engines/lilliput') diff --git a/engines/lilliput/lilliput.cpp b/engines/lilliput/lilliput.cpp index d5700be5a1..97f7239874 100644 --- a/engines/lilliput/lilliput.cpp +++ b/engines/lilliput/lilliput.cpp @@ -203,8 +203,8 @@ LilliputEngine::LilliputEngine(OSystem *syst, const LilliputGameDescription *gd) _rulesBuffer2_10[i] = 0; _rulesBuffer2_11[i] = 0; _rulesBuffer2_12[i] = 0; - _rulesBuffer2_13[i] = 0; - _rulesBuffer2_14[i] = 0; + _rulesBuffer2_13_posX[i] = 0; + _rulesBuffer2_14_posY[i] = 0; _array1289F[i] = 0xFFFF; } @@ -1135,7 +1135,7 @@ void LilliputEngine::displayFunction18(int var1, int var2, int var3, int var4) { } void LilliputEngine::displayString(byte *buf, Common::Point pos) { - debugC(2, kDebugEngineTBC, "displayString(buf, %d - %d)", pos.x, pos.y); + debugC(2, kDebugEngine, "displayString(%s, %d - %d)", buf, pos.x, pos.y); int index = (pos.y * 320) + pos.x; @@ -1148,7 +1148,7 @@ void LilliputEngine::displayString(byte *buf, Common::Point pos) { } void LilliputEngine::displayChar(int index, int var1) { - debugC(2, kDebugEngineTBC, "displayChar(%d, %d)", index, var1); + debugC(2, kDebugEngine, "displayChar(%d, %d)", index, var1); int indexVga = index; int indexChar = var1 << 5; @@ -1633,15 +1633,15 @@ void LilliputEngine::sub16A08(int index) { } void LilliputEngine::addCharToBuf(byte character) { - debugC(2, kDebugEngineTBC, "addCharToBuf(%c)", character); + debugC(2, kDebugEngine, "addCharToBuf(%c)", character); _displayStringBuf[_displayStringIndex] = character; if (_displayStringIndex < 158) ++_displayStringIndex; } -void LilliputEngine::prepareGoldAmount(int param1) { - debugC(2, kDebugEngineTBC, "prepareGoldAmount(%d)", param1); +void LilliputEngine::numberToString(int param1) { + debugC(2, kDebugEngine, "numberToString(%d)", param1); static const int _array18AE3[6] = {10000, 1000, 100, 10, 1}; @@ -2454,8 +2454,8 @@ void LilliputEngine::loadRules() { _rulesBuffer2_10[j] = f.readByte(); _rulesBuffer2_11[j] = f.readByte(); _rulesBuffer2_12[j] = f.readByte(); - _rulesBuffer2_13[j] = f.readByte(); - _rulesBuffer2_14[j] = f.readByte(); + _rulesBuffer2_13_posX[j] = f.readByte(); + _rulesBuffer2_14_posY[j] = f.readByte(); for (int k = 0; k < 32; k++) _characterVariables_[(j * 32) + k] = f.readByte(); @@ -2546,10 +2546,10 @@ void LilliputEngine::loadRules() { _rulesBuffer13_1[i] = f.readByte(); for (int i = 0 ; i < 20; i++) - _interfaceHotspotsX[i] = f.readUint16LE(); + _interfaceHotspotsX[i] = f.readSint16LE(); for (int i = 0 ; i < 20; i++) - _interfaceHotspotsY[i] = f.readUint16LE(); + _interfaceHotspotsY[i] = f.readSint16LE(); for (int i = 0; i < 20; i++) { byte curByte = f.readByte(); @@ -2611,16 +2611,16 @@ void LilliputEngine::initPalette() { _system->getPaletteManager()->setPalette(_curPalette, 0, 256); } -void LilliputEngine::sub170EE(int index) { - debugC(1, kDebugEngineTBC, "sub170EE(%d)", index); +void LilliputEngine::setCurrentCharacter(int index) { + debugC(1, kDebugEngine, "setCurrentCharacter(%d)", index); _currentScriptCharacter = index; assert (index < 40); - int var2 = _characterPositionX[index]; - int var4 = _characterPositionY[index]; + int posX = _characterPositionX[index]; + int posY = _characterPositionY[index]; - _currentScriptCharacterPos = Common::Point(var2 >> 3, var4 >> 3); + _currentScriptCharacterPos = Common::Point(posX >> 3, posY >> 3); _currentCharacterVariables = getCharacterVariablesPtr(_currentScriptCharacter * 32); } @@ -2637,7 +2637,7 @@ void LilliputEngine::handleMenu() { if ((_byte12FCE == 1) && (_byte16F07_menuId != 3)) return; - sub170EE(_word10804); + setCurrentCharacter(_word10804); debugC(1, kDebugScriptTBC, "========================== Menu Script =============================="); _scriptHandler->runMenuScript(ScriptStream(_menuScript, _menuScriptSize)); debugC(1, kDebugScriptTBC, "========================== End of Menu Script=============================="); @@ -2668,7 +2668,7 @@ void LilliputEngine::handleGameScripts() { _scriptHandler->_characterScriptEnabled[index] = 0; - sub170EE(index); + setCurrentCharacter(index); _word16EFE = _array11D49[index]; diff --git a/engines/lilliput/lilliput.h b/engines/lilliput/lilliput.h index 93b1ff17d5..84b1a60105 100644 --- a/engines/lilliput/lilliput.h +++ b/engines/lilliput/lilliput.h @@ -161,8 +161,8 @@ public: byte _rulesBuffer2_10[40]; byte _rulesBuffer2_11[40]; byte _rulesBuffer2_12[40]; - byte _rulesBuffer2_13[40]; - byte _rulesBuffer2_14[40]; + byte _rulesBuffer2_13_posX[40]; + byte _rulesBuffer2_14_posY[40]; byte _characterVariables_[1400 + 3120]; byte *_currentCharacterVariables; byte _rulesBuffer2_16[40 * 32]; @@ -187,8 +187,8 @@ public: Common::Point _rulesBuffer12Pos4[40]; int _word12F68_ERULES; byte _rulesBuffer13_1[20]; - int _interfaceHotspotsX[20]; - int _interfaceHotspotsY[20]; + int16 _interfaceHotspotsX[20]; + int16 _interfaceHotspotsY[20]; byte _rulesBuffer13_4[20]; int16 _array10999PosX[40]; int16 _array109C1PosY[40]; @@ -216,7 +216,7 @@ public: void newInt8(); void update(); - void display16x16IndexedBuf(byte *buf, int var1, Common::Point pos); + void display16x16IndexedBuf(byte *buf, int index, Common::Point pos); void display16x16Buf(byte *buf, Common::Point pos); void SaveSurfaceUnderMouseCursor(byte *buf, Common::Point pos); void fill16x16Rect(byte col, Common::Point pos); @@ -267,7 +267,7 @@ public: byte sub16799(int index, Common::Point param1); int getDirection(Common::Point param1, Common::Point param2); void addCharToBuf(byte character); - void prepareGoldAmount(int param1); + void numberToString(int param1); void sub12F37(); byte sub16675(int idx, Common::Point var1); void sub16685(int idx, Common::Point var1); @@ -343,7 +343,7 @@ public: void pollEvent(); - void sub170EE(int index); + void setCurrentCharacter(int index); void sub130DD(); void moveCharacters(); void setNextDisplayCharacter(int var1); diff --git a/engines/lilliput/script.cpp b/engines/lilliput/script.cpp index 2e43114399..2f784f8373 100644 --- a/engines/lilliput/script.cpp +++ b/engines/lilliput/script.cpp @@ -353,7 +353,7 @@ void LilliputScript::handleOpcodeType2(int curWord) { OC_resetWord16EFE(); break; case 0x24: - OC_sub17CEF(); + OC_enableCurrentCharacterScript(); break; case 0x25: OC_IncCurrentCharacterVar1(); @@ -464,7 +464,7 @@ void LilliputScript::handleOpcodeType2(int curWord) { OC_sub18367(); break; case 0x49: - OC_sub17D04(); + OC_enableCharacterScript(); break; case 0x4A: OC_sub18387(); @@ -512,7 +512,7 @@ void LilliputScript::handleOpcodeType2(int curWord) { OC_initSmallAnim(); break; case 0x59: - OC_sub18678(); + OC_setCharacterHeroismBar(); break; case 0x5A: OC_sub18690(); @@ -545,7 +545,7 @@ void LilliputScript::handleOpcodeType2(int curWord) { OC_sub1875D_snd(); break; case 0x64: - OC_sub18764(); + OC_setArray128E(); break; case 0x65: OC_initGameAreaDisplay(); @@ -647,7 +647,7 @@ static const OpCode opCodes2[] = { /* 0x21 */ { "OC_sub17CB9", 3, kImmediateValue, kGetValue1, kImmediateValue, kNone, kNone }, /* 0x22 */ { "OC_sub17CD1", 2, kImmediateValue, kImmediateValue, kNone, kNone, kNone }, /* 0x23 */ { "OC_resetWord16EFE", 0, kNone, kNone, kNone, kNone, kNone }, -/* 0x24 */ { "OC_sub17CEF", 1, kImmediateValue, kNone, kNone, kNone, kNone }, // stop script +/* 0x24 */ { "OC_enableCurrentCharacterScript", 1, kImmediateValue, kNone, kNone, kNone, kNone }, // stop script /* 0x25 */ { "OC_IncCurrentCharacterVar1", 0, kNone, kNone, kNone, kNone, kNone }, /* 0x26 */ { "OC_sub17D23", 2, kImmediateValue, kgetPosFromScript, kNone, kNone, kNone }, /* 0x27 */ { "OC_sub17E6D", 1, kImmediateValue, kNone, kNone, kNone, kNone }, @@ -684,7 +684,7 @@ static const OpCode opCodes2[] = { /* 0x46 */ { "OC_sub1834C", 1, kImmediateValue, kNone, kNone, kNone, kNone }, /* 0x47 */ { "OC_setArray122C1", 1, kImmediateValue, kNone, kNone, kNone, kNone }, /* 0x48 */ { "OC_sub18367", 0, kNone, kNone, kNone, kNone, kNone }, -/* 0x49 */ { "OC_sub17D04", 2, kGetValue1, kImmediateValue, kNone, kNone, kNone }, +/* 0x49 */ { "OC_enableCharacterScript", 2, kGetValue1, kImmediateValue, kNone, kNone, kNone }, /* 0x4a */ { "OC_sub18387", 2, kGetValue1, kImmediateValue, kNone, kNone, kNone }, /* 0x4b */ { "OC_setDebugFlag", 0, kNone, kNone, kNone, kNone, kNone }, /* 0x4c */ { "OC_setByte14837", 0, kNone, kNone, kNone, kNone, kNone }, @@ -700,7 +700,7 @@ static const OpCode opCodes2[] = { /* 0x56 */ { "OC_initGameAreaDisplay", 0, kNone, kNone, kNone, kNone, kNone }, /* 0x57 */ { "OC_sub1864D", 6, kGetValue1, kImmediateValue, kImmediateValue, kImmediateValue, kImmediateValue}, /* 0x58 */ { "OC_initSmallAnim", 11, kImmediateValue, kImmediateValue, kImmediateValue, kImmediateValue, kImmediateValue }, -/* 0x59 */ { "OC_sub18678", 4, kGetValue1, kImmediateValue, kImmediateValue, kImmediateValue, kNone }, +/* 0x59 */ { "OC_setCharacterHeroismBar", 4, kGetValue1, kImmediateValue, kImmediateValue, kImmediateValue, kNone }, /* 0x5a */ { "OC_sub18690", 2, kGetValue1, kgetPosFromScript, kNone, kNone, kNone }, //TODO /* 0x5b */ { "OC_setViewPortCharacterTarget", 1, kGetValue1, kNone, kNone, kNone, kNone }, /* 0x5c */ { "OC_sub186A1", 3, kGetValue1, kImmediateValue, kImmediateValue, kNone, kNone }, //TODO @@ -711,7 +711,7 @@ static const OpCode opCodes2[] = { /* 0x61 */ { "OC_sub1873F_snd", 1, kgetPosFromScript, kNone, kNone, kNone, kNone }, /* 0x62 */ { "OC_sub18746_snd", 1, kImmediateValue, kNone, kNone, kNone, kNone }, /* 0x63 */ { "OC_sub1875D_snd", 0, kNone, kNone, kNone, kNone, kNone }, -/* 0x64 */ { "OC_sub18764", 2, kGetValue1, kImmediateValue, kNone, kNone, kNone }, +/* 0x64 */ { "OC_setArray128E", 2, kGetValue1, kImmediateValue, kNone, kNone, kNone }, /* 0x65 */ { "OC_initGameAreaDisplay", 0, kNone, kNone, kNone, kNone, kNone } }; @@ -1022,8 +1022,8 @@ void LilliputScript::computeOperation(byte *bufPtr, int oper, int var3) { } } -void LilliputScript::sub1823E(byte index, byte var1, byte *curBufPtr) { - debugC(1, kDebugScriptTBC, "sub1823E(%d, %d, curBufPtr)", index, var1); +void LilliputScript::enableCharacterScript(byte index, byte var1, byte *curBufPtr) { + debugC(1, kDebugScript, "enableCharacterScript(%d, %d, curBufPtr)", index, var1); assert (index < 40); _characterScriptEnabled[index] = 1; @@ -1174,7 +1174,7 @@ void LilliputScript::decodePackedText(char *buf) { var1 = buf[index]; ++index; if (var1 == '#') { - _vm->prepareGoldAmount(_byte18823); + _vm->numberToString(_byte18823); } } else { _vm->addCharToBuf(var1); @@ -1307,11 +1307,11 @@ Common::Point LilliputScript::getPosFromScript() { switch(tmpVal) { case 0xFF: assert((_vm->_currentScriptCharacter >= 0) && (_vm->_currentScriptCharacter < 40)); - return Common::Point(_vm->_rulesBuffer2_13[_vm->_currentScriptCharacter], _vm->_rulesBuffer2_14[_vm->_currentScriptCharacter]); + return Common::Point(_vm->_rulesBuffer2_13_posX[_vm->_currentScriptCharacter], _vm->_rulesBuffer2_14_posY[_vm->_currentScriptCharacter]); case 0xFE: { int8 index = curWord & 0xFF; assert((index >= 0) && (index < 40)); - return Common::Point(_vm->_rulesBuffer2_13[index], _vm->_rulesBuffer2_14[index]); + return Common::Point(_vm->_rulesBuffer2_13_posX[index], _vm->_rulesBuffer2_14_posY[index]); } case 0xFD: return _vm->_currentScriptCharacterPos; @@ -1481,7 +1481,7 @@ byte LilliputScript::OC_compWord18776() { } byte LilliputScript::OC_checkSaveFlag() { - debugC(1, kDebugScriptTBC, "OC_checkSaveFlag()"); + debugC(1, kDebugScript, "OC_checkSaveFlag()"); if (_vm->_saveFlag) return 1; @@ -1602,7 +1602,7 @@ byte LilliputScript::OC_compareRandomCharacterId() { } byte LilliputScript::OC_IsCurrentCharacterIndex() { - debugC(1, kDebugScriptTBC, "OC_IsCurrentCharacterIndex()"); + debugC(1, kDebugScript, "OC_IsCurrentCharacterIndex()"); int tmpVal = getValue1(); if (tmpVal == _vm->_currentScriptCharacter) @@ -1611,10 +1611,9 @@ byte LilliputScript::OC_IsCurrentCharacterIndex() { } byte LilliputScript::OC_sub175C8() { - debugC(1, kDebugScriptTBC, "OC_sub175C8()"); + debugC(1, kDebugScript, "OC_sub175C8()"); byte var4 = _currScript->readUint16LE() & 0xFF; - int tmpVal = _currScript->readUint16LE(); if (tmpVal < 2000) { @@ -1643,11 +1642,9 @@ byte LilliputScript::OC_sub175C8() { byte var4b = tmpVal & 0xFF; for (int i = 0; i < _vm->_numCharacters; i++) { int var1 = _array10B51[(_vm->_currentScriptCharacter * 40) + i]; - if ((var1 & 0xFF) >= var4) { - if (_vm->_rulesBuffer2_12[i] == var4b) { - _word16F00 = i; - return 1; - } + if (((var1 & 0xFF) >= var4) && (_vm->_rulesBuffer2_12[i] == var4b)) { + _word16F00 = i; + return 1; } } @@ -1655,41 +1652,13 @@ byte LilliputScript::OC_sub175C8() { } byte LilliputScript::OC_sub17640() { - debugC(1, kDebugScriptTBC, "OC_sub176C4()"); + debugC(1, kDebugScript, "OC_sub176C4()"); int var4 = _currScript->readUint16LE(); int index = _vm->_currentScriptCharacter * 40; int tmpVal = _currScript->readUint16LE(); - if (tmpVal >= 2000) { - int var1 = tmpVal; - - if (var1 == 3000) { - for (int i = 0; i < _vm->_numCharacters; i++) { - tmpVal = _array10B51[index + i]; - byte v1 = tmpVal & 0xFF; - byte v2 = tmpVal >> 8; - if ((v1 >= (var4 & 0xFF)) && (v2 < (var4 & 0xFF))) { - _word16F00 = i; - return 1; - } - } - return 0; - } else { - var1 -= 2000; - var4 &= ((var1 & 0xFF) << 8); - for (int i = 0; i < _vm->_numCharacters; i++) { - tmpVal = _array10B51[index + i]; - byte v1 = tmpVal & 0xFF; - byte v2 = tmpVal >> 8; - if ((v1 >= (var4 & 0xFF)) && (v2 < (var4 & 0xFF)) && (_vm->_rulesBuffer2_12[i] != (var4 >> 8))) { - _word16F00 = i; - return 1; - } - } - return 0; - } - } else { + if (tmpVal < 2000) { _currScript->seek(_currScript->pos() - 2); int subIndex = getValue1(); tmpVal = _array10B51[index + subIndex]; @@ -1700,6 +1669,33 @@ byte LilliputScript::OC_sub17640() { _word16F00 = subIndex; return 1; } + + int var1 = tmpVal; + if (var1 == 3000) { + for (int i = 0; i < _vm->_numCharacters; i++) { + tmpVal = _array10B51[index + i]; + byte v1 = tmpVal & 0xFF; + byte v2 = tmpVal >> 8; + if ((v1 >= (var4 & 0xFF)) && (v2 < (var4 & 0xFF))) { + _word16F00 = i; + return 1; + } + } + return 0; + } + + var1 -= 2000; + var4 = ((var1 & 0xFF) << 8) + (var4 & 0xFF); + for (int i = 0; i < _vm->_numCharacters; i++) { + tmpVal = _array10B51[index + i]; + byte v1 = tmpVal & 0xFF; + byte v2 = tmpVal >> 8; + if ((v1 >= (var4 & 0xFF)) && (v2 < (var4 & 0xFF)) && (_vm->_rulesBuffer2_12[i] == (var4 >> 8))) { + _word16F00 = i; + return 1; + } + } + return 0; } byte LilliputScript::OC_sub176C4() { @@ -1811,7 +1807,7 @@ byte LilliputScript::OC_IsCharacterValid() { } byte LilliputScript::OC_compWord16EFE() { - debugC(1, kDebugScriptTBC, "OC_compWord16EFE()"); + debugC(1, kDebugScript, "OC_compWord16EFE()"); byte curByte = _currScript->readUint16LE() & 0xFF; byte tmpVal = _vm->_word16EFE >> 8; @@ -1824,7 +1820,7 @@ byte LilliputScript::OC_compWord16EFE() { } byte LilliputScript::OC_AreCurrentCharacterVar0AndVar1EqualsTo() { - debugC(1, kDebugScriptTBC, "OC_AreCurrentCharacterVar0AndVar1EqualsTo()"); + debugC(1, kDebugScript, "OC_AreCurrentCharacterVar0AndVar1EqualsTo()"); byte var1 = _currScript->readUint16LE() & 0xFF; byte var2 = _currScript->readUint16LE() & 0xFF; @@ -1838,7 +1834,7 @@ byte LilliputScript::OC_AreCurrentCharacterVar0AndVar1EqualsTo() { } byte LilliputScript::OC_CurrentCharacterVar0Equals() { - debugC(1, kDebugScriptTBC, "OC_CurrentCharacterVar0Equals()"); + debugC(1, kDebugScript, "OC_CurrentCharacterVar0Equals()"); byte curByte = (_currScript->readUint16LE() & 0xFF); assert(_vm->_currentCharacterVariables != NULL); @@ -1920,7 +1916,7 @@ byte LilliputScript::OC_skipNextOpcode() { } byte LilliputScript::OC_CurrentCharacterVar2Equals1() { - debugC(1, kDebugScriptTBC, "OC_CurrentCharacterVar2Equals1()"); + debugC(1, kDebugScript, "OC_CurrentCharacterVar2Equals1()"); assert(_vm->_currentCharacterVariables != NULL); if (_vm->_currentCharacterVariables[2] == 1) @@ -1980,7 +1976,7 @@ byte LilliputScript::OC_sub1790F() { } byte LilliputScript::OC_CurrentCharacterVar1Equals() { - debugC(1, kDebugScriptTBC, "OC_CurrentCharacterVar1Equals()"); + debugC(1, kDebugScript, "OC_CurrentCharacterVar1Equals()"); assert(_vm->_currentCharacterVariables != NULL); byte curByte = (_currScript->readUint16LE() & 0xFF); @@ -2004,7 +2000,7 @@ byte LilliputScript::OC_sub1793E() { } byte LilliputScript::OC_CurrentCharacterVar3Equals1() { - debugC(1, kDebugScriptTBC, "OC_CurrentCharacterVar3Equals1()"); + debugC(1, kDebugScript, "OC_CurrentCharacterVar3Equals1()"); assert(_vm->_currentCharacterVariables != NULL); if (_vm->_currentCharacterVariables[3] == 1) @@ -2361,7 +2357,7 @@ void LilliputScript::OC_callScript() { int index = _currScript->readUint16LE(); int var1 = getValue1(); - _vm->sub170EE(var1); + _vm->setCurrentCharacter(var1); int tmpIndex = _vm->_currentScriptCharacter; assert(index < _vm->_gameScriptIndexSize); @@ -2380,11 +2376,11 @@ void LilliputScript::OC_callScript() { _currScript = _scriptStack.pop(); - _vm->sub170EE(tmpIndex); + _vm->setCurrentCharacter(tmpIndex); } void LilliputScript::OC_callScriptAndReturn() { - debugC(1, kDebugScriptTBC, "OC_callScriptAndReturn()"); + debugC(1, kDebugScript, "OC_callScriptAndReturn()"); OC_callScript(); sub17B6C(0); @@ -2468,7 +2464,7 @@ void LilliputScript::OC_sub17C76() { void LilliputScript::OC_sub17AFC() { debugC(1, kDebugScriptTBC, "OC_sub17AFC()"); int var1 = getValue1(); - _vm->sub170EE(var1); + _vm->setCurrentCharacter(var1); } void LilliputScript::sub171AF(int var1, int var2, int var4) { @@ -2535,11 +2531,11 @@ void LilliputScript::OC_resetWord16EFE() { _vm->_word16EFE = 0xFFFF; } -void LilliputScript::OC_sub17CEF() { - debugC(1, kDebugScriptTBC, "OC_sub17CEF()"); +void LilliputScript::OC_enableCurrentCharacterScript() { + debugC(1, kDebugScriptTBC, "OC_enableCurrentCharacterScript()"); int var1 = _currScript->readUint16LE(); - sub1823E(_vm->_currentScriptCharacter , var1, _vm->_currentCharacterVariables); + enableCharacterScript(_vm->_currentScriptCharacter , var1, _vm->_currentCharacterVariables); sub17B6C(0); } @@ -2917,7 +2913,7 @@ void LilliputScript::OC_sub18213() { maxItem = _array1813BPos[i].x; } } - sub1823E(_vm->_currentScriptCharacter, maxItem, _vm->_currentCharacterVariables); + enableCharacterScript(_vm->_currentScriptCharacter, maxItem, _vm->_currentCharacterVariables); } void LilliputScript::OC_sub18252() { @@ -3002,13 +2998,13 @@ void LilliputScript::OC_sub18367() { _vm->_currentCharacterVariables[3] = 0; } -void LilliputScript::OC_sub17D04() { - debugC(1, kDebugScriptTBC, "OC_sub17D04()"); +void LilliputScript::OC_enableCharacterScript() { + debugC(1, kDebugScript, "OC_enableCharacterScript()"); int16 index = getValue1(); byte var2 = _currScript->readUint16LE() & 0xFF; - sub1823E(index, var2, _vm->getCharacterVariablesPtr(index * 32)); + enableCharacterScript(index, var2, _vm->getCharacterVariablesPtr(index * 32)); } void LilliputScript::OC_sub18387() { @@ -3036,13 +3032,13 @@ void LilliputScript::OC_setByte14837() { void LilliputScript::OC_sub183A2() { warning("OC_sub183A2"); } + void LilliputScript::OC_sub183C6() { debugC(1, kDebugScriptTBC, "OC_sub183C6()"); - int var1 = _currScript->readUint16LE(); - int var2 = _currScript->readUint16LE(); - _array122FD[var1] = (var2 & 0xff); - _array122E9[var1] = 1; + int index = _currScript->readUint16LE(); + _array122FD[index] = (_currScript->readUint16LE() & 0xff); + _array122E9[index] = 1; _vm->displayInterfaceHotspots(); } @@ -3113,7 +3109,7 @@ void LilliputScript::displayNumber(byte var1, Common::Point pos) { _vm->_displayStringBuf[2] = 32; _vm->_displayStringBuf[3] = 0; - _vm->prepareGoldAmount(var1); + _vm->numberToString(var1); _vm->displayString(_vm->_displayStringBuf, pos); } @@ -3207,15 +3203,21 @@ void LilliputScript::OC_initSmallAnim() { _vm->_smallAnims[index]._frameIndex[i] = _currScript->readUint16LE(); } -void LilliputScript::OC_sub18678() { - debugC(1, kDebugScriptTBC, "OC_initArr18578()"); +void LilliputScript::OC_setCharacterHeroismBar() { + debugC(1, kDebugScript, "OC_setCharacterHeroismBar()"); + _savedBuffer215Ptr = getCharacterVariablePtr(); _heroismBarX = _currScript->readUint16LE(); _heroismBarBottomY = _currScript->readUint16LE(); } void LilliputScript::OC_sub18690() { - warning("OC_sub18690"); + debugC(1, kDebugScriptTBC, "OC_sub18690()"); + + int index = getValue1(); + Common::Point pos = getPosFromScript(); + _vm->_rulesBuffer2_13_posX[index] = pos.x; + _vm->_rulesBuffer2_14_posY[index] = pos.y; } void LilliputScript::OC_setViewPortCharacterTarget() { @@ -3257,7 +3259,7 @@ void LilliputScript::OC_sub186E5_snd() { } void LilliputScript::OC_sub1870A_snd() { - debugC(1, kDebugScriptTBC, "OC_sub1870A_snd()"); + debugC(1, kDebugScript, "OC_sub1870A_snd()"); Common::Point var3 = getPosFromScript(); Common::Point var4 = var3; @@ -3302,19 +3304,19 @@ void LilliputScript::OC_sub18746_snd() { } void LilliputScript::OC_sub1875D_snd() { - debugC(1, kDebugScriptTBC, "OC_sub1875D_snd()"); + debugC(1, kDebugScript, "OC_sub1875D_snd()"); _vm->_soundHandler->contentFct6(); } -void LilliputScript::OC_sub18764() { - debugC(1, kDebugScriptTBC, "OC_sub18764()"); +void LilliputScript::OC_setArray128E() { + debugC(1, kDebugScript, "OC_setArray128E()"); int index = getValue1(); - int var1 = _currScript->readUint16LE(); + int val = _currScript->readUint16LE(); assert(index < 40); - _array128EF[index] = var1 & 0xFF; + _array128EF[index] = val & 0xFF; } } // End of namespace diff --git a/engines/lilliput/script.h b/engines/lilliput/script.h index f73121a100..4bd8ad31a5 100644 --- a/engines/lilliput/script.h +++ b/engines/lilliput/script.h @@ -121,7 +121,7 @@ private: byte handleOpcodeType1(int curWord); void handleOpcodeType2(int curWord); - void sub1823E(byte index, byte var1, byte *curBufPtr); + void enableCharacterScript(byte index, byte var1, byte *curBufPtr); void sub17B6C(int var1); void sub16C86(int index, byte *buf); void sub16C5C(int index, byte var3); @@ -234,7 +234,7 @@ private: void OC_sub17CB9(); void OC_sub17CD1(); void OC_resetWord16EFE(); - void OC_sub17CEF(); + void OC_enableCurrentCharacterScript(); void OC_IncCurrentCharacterVar1(); void OC_sub17D23(); void OC_sub17E6D(); @@ -272,7 +272,7 @@ private: void OC_sub1834C(); void OC_setArray122C1(); void OC_sub18367(); - void OC_sub17D04(); + void OC_enableCharacterScript(); void OC_sub18387(); void OC_setDebugFlag(); void OC_setByte14837(); @@ -288,7 +288,7 @@ private: void OC_initGameAreaDisplay(); void OC_sub1864D(); void OC_initSmallAnim(); - void OC_sub18678(); + void OC_setCharacterHeroismBar(); void OC_sub18690(); void OC_setViewPortCharacterTarget(); void OC_sub186A1(); @@ -299,7 +299,7 @@ private: void OC_sub1873F_snd(); void OC_sub18746_snd(); void OC_sub1875D_snd(); - void OC_sub18764(); + void OC_setArray128E(); }; } // End of namespace Lilliput -- cgit v1.2.3