diff options
author | Travis Howell | 2006-10-25 13:38:35 +0000 |
---|---|---|
committer | Travis Howell | 2006-10-25 13:38:35 +0000 |
commit | 05fd51d03611fc88041a68da384eac58f3049024 (patch) | |
tree | d2e7bc921e00fb7f912325d2170a14a19e3202f6 /engines/agos/script_ww.cpp | |
parent | fc04b2e45adbdc617fb6e20b3de81c88f5f10eff (diff) | |
download | scummvm-rg350-05fd51d03611fc88041a68da384eac58f3049024.tar.gz scummvm-rg350-05fd51d03611fc88041a68da384eac58f3049024.tar.bz2 scummvm-rg350-05fd51d03611fc88041a68da384eac58f3049024.zip |
Cleanup
svn-id: r24501
Diffstat (limited to 'engines/agos/script_ww.cpp')
-rw-r--r-- | engines/agos/script_ww.cpp | 87 |
1 files changed, 71 insertions, 16 deletions
diff --git a/engines/agos/script_ww.cpp b/engines/agos/script_ww.cpp index b544383841..8946f4b2fa 100644 --- a/engines/agos/script_ww.cpp +++ b/engines/agos/script_ww.cpp @@ -45,20 +45,20 @@ void AGOSEngine::setupWaxworksOpcodes(OpcodeProc *op) { op[39] = &AGOSEngine::oe1_weigh; op[54] = &AGOSEngine::oww_moveDirn; op[55] = &AGOSEngine::oww_goto; - op[65] = &AGOSEngine::o_addTextBox; - op[66] = &AGOSEngine::o_setShortText; - op[67] = &AGOSEngine::o_setLongText; - op[70] = &AGOSEngine::o1_printLongText; - op[83] = &AGOSEngine::o1_rescan; + op[65] = &AGOSEngine::oww_addTextBox; + op[66] = &AGOSEngine::oww_setShortText; + op[67] = &AGOSEngine::oww_setLongText; + op[70] = &AGOSEngine::oww_printLongText; + op[83] = &AGOSEngine::oe1_rescan; op[85] = &AGOSEngine::oww_whereTo; op[89] = &AGOSEngine::oe1_loadGame; op[94] = &AGOSEngine::oe1_findMaster; op[95] = &AGOSEngine::oe1_nextMaster; - op[98] = &AGOSEngine::o1_animate; - op[99] = &AGOSEngine::o1_stopAnimate; + op[98] = &AGOSEngine::oe1_animate; + op[99] = &AGOSEngine::oe1_stopAnimate; op[105] = &AGOSEngine::oww_menu; op[106] = &AGOSEngine::oww_textMenu; - op[127] = &AGOSEngine::o1_playTune; + op[127] = &AGOSEngine::os1_playTune; op[144] = &AGOSEngine::oe2_setDoorOpen; op[145] = &AGOSEngine::oe2_setDoorClosed; op[146] = &AGOSEngine::oe2_setDoorLocked; @@ -67,19 +67,19 @@ void AGOSEngine::setupWaxworksOpcodes(OpcodeProc *op) { op[149] = &AGOSEngine::oe2_ifDoorClosed; op[150] = &AGOSEngine::oe2_ifDoorLocked; op[162] = &AGOSEngine::oww_screenTextMsg; - op[175] = &AGOSEngine::o_getDollar2; - op[179] = &AGOSEngine::o_isAdjNoun; - op[180] = &AGOSEngine::o_b2Set; - op[181] = &AGOSEngine::o_b2Clear; - op[182] = &AGOSEngine::o_b2Zero; - op[183] = &AGOSEngine::o_b2NotZero; + op[175] = &AGOSEngine::oe2_getDollar2; + op[179] = &AGOSEngine::oe2_isAdjNoun; + op[180] = &AGOSEngine::oe2_b2Set; + op[181] = &AGOSEngine::oe2_b2Clear; + op[182] = &AGOSEngine::oe2_b2Zero; + op[183] = &AGOSEngine::oe2_b2NotZero; op[184] = &AGOSEngine::oww_boxMessage; op[185] = &AGOSEngine::oww_boxMsg; op[186] = &AGOSEngine::oww_boxLongText; op[187] = &AGOSEngine::oww_printBox; op[188] = &AGOSEngine::oww_boxPObj; - op[189] = &AGOSEngine::o_lockZones; - op[190] = &AGOSEngine::o_unlockZones; + op[189] = &AGOSEngine::oww_lockZones; + op[190] = &AGOSEngine::oww_unlockZones; } // ----------------------------------------------------------------------- @@ -102,6 +102,50 @@ void AGOSEngine::oww_goto() { setItemParent(me(), derefItem(item)); } +void AGOSEngine::oww_addTextBox() { + // 65: add hit area + uint id = getVarOrWord(); + uint x = getVarOrWord(); + uint y = getVarOrWord(); + uint w = getVarOrWord(); + uint h = getVarOrWord(); + uint number = getVarOrByte(); + if (number < _numTextBoxes) + defineBox(id, x, y, w, h, (number << 8) + 129, 208, _dummyItem2); +} + +void AGOSEngine::oww_setShortText() { + // 66: set item name + uint var = getVarOrByte(); + uint stringId = getNextStringID(); + if (var < _numTextBoxes) { + _shortText[var] = stringId; + } +} + +void AGOSEngine::oww_setLongText() { + // 67: set item description + uint var = getVarOrByte(); + uint stringId = getNextStringID(); + if (getFeatures() & GF_TALKIE) { + uint speechId = getNextWord(); + if (var < _numTextBoxes) { + _longText[var] = stringId; + _longSound[var] = speechId; + } + } else { + if (var < _numTextBoxes) { + _longText[var] = stringId; + } + } +} + +void AGOSEngine::oww_printLongText() { + // 70: show string from array + const char *str = (const char *)getStringPtrByID(_longText[getVarOrByte()]); + showMessageFormat("%s\n", str); +} + void AGOSEngine::oww_whereTo() { // 85: where to Item *i = getNextItemPtr(); @@ -159,4 +203,15 @@ void AGOSEngine::oww_boxPObj() { boxTextMsg((const char *)getStringPtrByID(subObject->objectFlagValue[0])); } +void AGOSEngine::oww_lockZones() { + // 189: lock zone + _vgaMemBase = _vgaMemPtr; +} + +void AGOSEngine::oww_unlockZones() { + // 190: unlock zone + _vgaMemPtr = _vgaFrozenBase; + _vgaMemBase = _vgaFrozenBase; +} + } // End of namespace AGOS |