aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/script_ww.cpp
diff options
context:
space:
mode:
authorTravis Howell2006-10-25 13:38:35 +0000
committerTravis Howell2006-10-25 13:38:35 +0000
commit05fd51d03611fc88041a68da384eac58f3049024 (patch)
treed2e7bc921e00fb7f912325d2170a14a19e3202f6 /engines/agos/script_ww.cpp
parentfc04b2e45adbdc617fb6e20b3de81c88f5f10eff (diff)
downloadscummvm-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.cpp87
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