From 76ea8c5a20cd8ef77ce5706a9c972a65a941db26 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Mon, 26 May 2014 22:37:41 +0300 Subject: MADS: Add more friendly names for action verbs and nouns Also, add a TODO in doObjectAction() --- engines/mads/nebular/game_nebular.cpp | 116 ++++++++++++++++--------------- engines/mads/nebular/nebular_scenes.h | 45 ++++++++---- engines/mads/nebular/nebular_scenes1.cpp | 4 +- 3 files changed, 96 insertions(+), 69 deletions(-) diff --git a/engines/mads/nebular/game_nebular.cpp b/engines/mads/nebular/game_nebular.cpp index f3b085606a..c6fa60b19a 100644 --- a/engines/mads/nebular/game_nebular.cpp +++ b/engines/mads/nebular/game_nebular.cpp @@ -298,81 +298,81 @@ void GameNebular::doObjectAction() { dialogs.show(445); } else if (action.isAction(VERB_WEAR, NOUN_REBREATHER)) { dialogs.show(scene._currentSceneId > 103 && scene._currentSceneId < 111 ? 446 : 447); - } else if (action.isAction(VERB_SET, 371)) { + } else if (action.isAction(VERB_SET, NOUN_TIMER_MODULE)) { dialogs.show(448); - } else if (action.isAction(951, 35)) { + } else if (action.isAction(VERB_NIBBLE_ON, NOUN_BIG_LEAVES)) { dialogs.show(449); - } else if (action.isAction(203, 276)) { + } else if (action.isAction(VERB_LICK, NOUN_POISON_DARTS)) { dialogs.show(450); - } else if (action.isAction(VERB_EAT, 378)) { + } else if (action.isAction(VERB_EAT, NOUN_TWINKIFRUIT)) { _objects.setRoom(OBJ_TWINKIFRUIT, PLAYER_INVENTORY); dialogs.show(451); - } else if (action.isAction(153, 378)) { + } else if (action.isAction(VERB_GORGE_ON, NOUN_TWINKIFRUIT)) { _objects.setRoom(OBJ_TWINKIFRUIT, PLAYER_INVENTORY); dialogs.show(452); - } else if (action.isAction(152)) { + } else if (action.isAction(VERB_GNAW_ON)) { dialogs.show(453); - } else if (action.isAction(1187, OBJ_PHONE_CELLS)) { + } else if (action.isAction(VERB_MASSAGE, NOUN_AUDIO_TAPE)) { dialogs.show(454); - } else if (action.isAction(1188, 92)) { + } else if (action.isAction(VERB_MANGLE, NOUN_CREDIT_CHIP)) { dialogs.show(455); - } else if (action.isAction(140, 72)) { + } else if (action.isAction(VERB_FONDLE, NOUN_CHARGE_CASES)) { dialogs.show(456); - } else if (action.isAction(1189, OBJ_VASE)) { + } else if (action.isAction(VERB_RUB, NOUN_BOMB)) { dialogs.show(457); - } else if (action.isAction(VERB_SET, 369)) { + } else if (action.isAction(VERB_SET, NOUN_TIMEBOMB)) { dialogs.show(458); - } else if (action.isAction(1192, 774)) { + } else if (action.isAction(VERB_GUZZLE, NOUN_ALIEN_LIQUOR)) { dialogs.show(459); - } else if (action.isAction(1191, 359)) { + } else if (action.isAction(VERB_SMASH, NOUN_TARGET_MODULE)) { dialogs.show(460); - } else if (action.isAction(1190)) { + } else if (action.isAction(VERB_JUGGLE)) { dialogs.show(461); - } else if (action.isAction(934, 277)) { + } else if (action.isAction(VERB_APPLY, NOUN_POLYCEMENT)) { dialogs.show(462); - } else if (action.isAction(329, 277)) { + } else if (action.isAction(VERB_SNIFF, NOUN_POLYCEMENT)) { dialogs.show(465); - } else if (action.isAction(368, 135)) { + } else if (action.isAction(VERB_TIE, NOUN_FISHING_LINE)) { dialogs.show(463); - } else if (action.isAction(25, 135)) { + } else if (action.isAction(VERB_ATTACH, NOUN_FISHING_LINE)) { dialogs.show(463); - } else if (action.isAction(379)) { + } else if (action.isAction(VERB_UNLOCK)) { dialogs.show(464); - } else if (action.isAction(869)) { + } else if (action.isAction(VERB_REFLECT)) { dialogs.show(466); - } else if (action.isAction(530, 288)) { + } else if (action.isAction(VERB_GAZE_INTO, NOUN_REARVIEW_MIRROR)) { dialogs.show(467); - } else if (action.isAction(VERB_EAT, 74)) { + } else if (action.isAction(VERB_EAT, NOUN_CHICKEN_BOMB)) { dialogs.show(469); - } else if (action.isAction(50, 381)) { + } else if (action.isAction(VERB_BREAK, NOUN_VASE)) { dialogs.show(471); - } else if (action.isAction(307, 950)) { + } else if (action.isAction(VERB_SHAKE_HANDS, NOUN_GUARDS_ARM2)) { dialogs.show(472); } else if (action.isAction(VERB_READ, NOUN_LOG)) { dialogs.show(473); - } else if (action.isAction(1189, 43)) { + } else if (action.isAction(VERB_RUB, NOUN_BOMBS)) { dialogs.show(474); - } else if (action.isAction(114, 726)) { + } else if (action.isAction(VERB_DRINK, NOUN_FORMALDEHYDE)) { dialogs.show(475); - } else if (action.isAction(114, 727)) { + } else if (action.isAction(VERB_DRINK, NOUN_PETROX)) { dialogs.show(476); - } else if (action.isAction(114, 937)) { + } else if (action.isAction(VERB_DRINK, NOUN_LECITHIN)) { dialogs.show(477); - } else if (action.isAction(VERB_PUT, 276, NOUN_PLANT_STALK) && _objects.isInInventory(OBJ_POISON_DARTS) + } else if (action.isAction(VERB_PUT, NOUN_POISON_DARTS, NOUN_PLANT_STALK) && _objects.isInInventory(OBJ_POISON_DARTS) && _objects.isInInventory(OBJ_PLANT_STALK)) { _objects.addToInventory(OBJ_BLOWGUN); _objects.setRoom(OBJ_PLANT_STALK, NOWHERE); _globals[kBlowgunStatus] = 0; dialogs.showItem(OBJ_BLOWGUN, 809); - } else if (action.isAction(VERB_PUT, 276, NOUN_BLOWGUN) && _objects.isInInventory(OBJ_POISON_DARTS) + } else if (action.isAction(VERB_PUT, NOUN_POISON_DARTS, NOUN_BLOWGUN) && _objects.isInInventory(OBJ_POISON_DARTS) && _objects.isInInventory(OBJ_BLOWGUN)) { dialogs.show(433); - } else if (action.isAction(1161) && action.isAction(1195) && action.isAction(1197)) { + } else if (action.isAction(VERB_DEFACE) && action.isAction(VERB_FOLD) && action.isAction(VERB_MUTILATE)) { dialogs.show(434); - } else if (action.isAction(1196)) { + } else if (action.isAction(VERB_SPINDLE)) { dialogs.show(479); - } else if ((action.isAction(287) || action.isAction(VERB_LOOK_AT) || action.isAction(VERB_LOOK)) && - action.isAction(936) && _objects.isInInventory(OBJ_NOTE)) { + } else if ((action.isAction(VERB_READ) || action.isAction(VERB_LOOK_AT) || action.isAction(VERB_LOOK)) && + action.isObject(NOUN_NOTE) && _objects.isInInventory(OBJ_NOTE)) { _objects.setRoom(OBJ_NOTE, PLAYER_INVENTORY); _objects.addToInventory(OBJ_COMBINATION); dialogs.showItem(OBJ_COMBINATION, 851); @@ -419,20 +419,26 @@ void GameNebular::doObjectAction() { _objects.addToInventory(OBJ_STUFFED_FISH); dialogs.showItem(OBJ_STUFFED_FISH, 803); } - } else if (action.isAction(VERB_PUT, 26, 357) && _objects.isInInventory(OBJ_AUDIO_TAPE) && + } else if (action.isAction(VERB_PUT, NOUN_AUDIO_TAPE, NOUN_TAPE_PLAYER) && _objects.isInInventory(OBJ_AUDIO_TAPE) && _objects.isInInventory(OBJ_TAPE_PLAYER)) { - _objects.setRoom(OBJ_AUDIO_TAPE, 25); - } else if (action.isAction(118, 357) && _objects.isInInventory(OBJ_TAPE_PLAYER)) { - if (_objects[OBJ_AUDIO_TAPE]._roomNumber == 25) { + _objects.setRoom(OBJ_AUDIO_TAPE, OBJ_TAPE_PLAYER); + } else if (action.isAction(VERB_ACTIVATE, NOUN_TAPE_PLAYER) && _objects.isInInventory(OBJ_TAPE_PLAYER)) { + if (_objects[OBJ_AUDIO_TAPE]._roomNumber == OBJ_TAPE_PLAYER) { + warning("TODO: Show the recipe"); + } else { + dialogs.show(406); + } + } else if (action.isAction(VERB_EJECT, NOUN_TAPE_PLAYER) && _objects.isInInventory(OBJ_TAPE_PLAYER)) { + if (_objects[OBJ_AUDIO_TAPE]._roomNumber == OBJ_TAPE_PLAYER) { _objects.addToInventory(OBJ_AUDIO_TAPE); } else { dialogs.show(407); } - } else if (action.isAction(108, 357)) { + } else if (action.isAction(VERB_DISASSEMBLE, NOUN_TAPE_PLAYER)) { dialogs.show(408); - } else if (action.isAction(14, 291)) { + } else if (action.isAction(VERB_ACTIVATE, NOUN_REMOTE)) { dialogs.show(_globals[kTopButtonPushed] ? 502 : 501); - } else if ((action.isAction(25, 106, 72) || action.isAction(VERB_PUT, 106, 72)) && + } else if ((action.isAction(VERB_ATTACH, NOUN_DETONATORS, NOUN_CHARGE_CASES) || action.isAction(VERB_PUT, NOUN_DETONATORS, NOUN_CHARGE_CASES)) && _objects.isInInventory(OBJ_DETONATORS) && _objects.isInInventory(OBJ_CHARGE_CASES)) { if (_objects[OBJ_CHARGE_CASES].getQuality(3)) { _objects.setRoom(OBJ_CHARGE_CASES, 1); @@ -442,10 +448,10 @@ void GameNebular::doObjectAction() { } else { dialogs.show(405); } - } else if (action.isAction(25, 106)) { + } else if (action.isAction(VERB_ATTACH, NOUN_DETONATORS)) { dialogs.show(470); - } else if ((action.isAction(25, 371, 43) || action.isAction(7, 371, 43) || action.isAction(25, 371, 42) - || action.isAction(VERB_PUT, 371, 42)) && _objects.isInInventory(OBJ_TIMER_MODULE) && ( + } else if ((action.isAction(VERB_ATTACH, NOUN_TIMER_MODULE, NOUN_BOMBS) || action.isAction(VERB_PUT, NOUN_TIMER_MODULE, NOUN_BOMBS) || action.isAction(VERB_ATTACH, NOUN_TIMER_MODULE, NOUN_BOMB) + || action.isAction(VERB_PUT, NOUN_TIMER_MODULE, NOUN_BOMB)) && _objects.isInInventory(OBJ_TIMER_MODULE) && ( _objects.isInInventory(OBJ_BOMBS) || _objects.isInInventory(OBJ_BOMB))) { if (_objects.isInInventory(OBJ_BOMBS)) { _objects.setRoom(OBJ_BOMBS, PLAYER_INVENTORY); @@ -457,19 +463,19 @@ void GameNebular::doObjectAction() { _objects.setRoom(OBJ_TIMER_MODULE, PLAYER_INVENTORY); _objects.addToInventory(OBJ_TIMEBOMB); dialogs.showItem(OBJ_TIMEBOMB, 404); - } else if (action.isAction(140, 271)) { + } else if (action.isAction(VERB_FONDLE, NOUN_PLANT_STALK)) { dialogs.show(410); - } else if (action.isAction(119, 46)) { + } else if (action.isAction(VERB_EMPTY, NOUN_BOTTLE)) { _globals[kBottleStatus] = 0; dialogs.show(432); - } else if (action.isAction(108, 136)) { + } else if (action.isAction(VERB_DISASSEMBLE, NOUN_FISHING_ROD)) { if (_objects[OBJ_FISHING_LINE]._roomNumber == 3) { _objects.addToInventory(OBJ_FISHING_LINE); dialogs.showItem(OBJ_FISHING_LINE, 409); } else { dialogs.show(428); } - } else if (action.isAction(108, 262)) { + } else if (action.isAction(VERB_DISASSEMBLE, NOUN_PENLIGHT)) { switch (_globals[kPenlightCellStatus]) { case 1: case 2: @@ -492,7 +498,7 @@ void GameNebular::doObjectAction() { dialogs.show(478); break; } - } else if (action.isAction(108, 264)) { + } else if (action.isAction(VERB_DISASSEMBLE, NOUN_PHONE_HANDSET)) { switch (_globals[kHandsetCellStatus]) { case 1: _objects.addToInventory(OBJ_DURAFAIL_CELLS); @@ -519,7 +525,7 @@ void GameNebular::doObjectAction() { dialogs.show(478); break; } - } else if (action.isAction(VERB_PUT, 263, 262)) { + } else if (action.isAction(VERB_PUT, NOUN_PHONE_CELLS, NOUN_PENLIGHT)) { if (_globals[kPenlightCellStatus] == 0) { _globals[kPenlightCellStatus] = 3; _objects.setRoom(OBJ_PHONE_CELLS, PLAYER_INVENTORY); @@ -527,7 +533,7 @@ void GameNebular::doObjectAction() { } else { dialogs.show(420); } - } else if (action.isAction(VERB_PUT, 263, 264)) { + } else if (action.isAction(VERB_PUT, NOUN_PHONE_CELLS, NOUN_PHONE_HANDSET)) { if (_globals[kHandsetCellStatus] == 0) { _globals[kHandsetCellStatus] = 3; _objects.setRoom(OBJ_PHONE_CELLS, PLAYER_INVENTORY); @@ -535,7 +541,7 @@ void GameNebular::doObjectAction() { } else { dialogs.show(422); } - } else if (action.isAction(VERB_PUT, 115, 262)) { + } else if (action.isAction(VERB_PUT, NOUN_DURAFAIL_CELLS, NOUN_PENLIGHT)) { if (_globals[kPenlightCellStatus]) { dialogs.show(424); } else { @@ -543,7 +549,7 @@ void GameNebular::doObjectAction() { _globals[kPenlightCellStatus] = _difficulty != 1 || _globals[kDurafailRecharged] ? 1 : 2; dialogs.show(423); } - } else if (action.isAction(VERB_PUT, 115, 264)) { + } else if (action.isAction(VERB_PUT, NOUN_DURAFAIL_CELLS, NOUN_PHONE_HANDSET)) { if (_globals[kHandsetCellStatus]) { dialogs.show(424); } else { @@ -551,9 +557,9 @@ void GameNebular::doObjectAction() { _globals[kDurafailRecharged] = _difficulty != 1 || _globals[kHandsetCellStatus] ? 1 : 2; dialogs.show(425); } - } else if (action.isAction(VERB_SET, 369)) { + } else if (action.isAction(VERB_SET, NOUN_TIMEBOMB)) { dialogs.show(427); - } else if (action.isAction(VERB_PUT, 42, 73) || action.isAction(VERB_PUT, 43, 73)) { + } else if (action.isAction(VERB_PUT, NOUN_BOMB, NOUN_CHICKEN) || action.isAction(VERB_PUT, NOUN_BOMBS, NOUN_CHICKEN)) { _objects.setRoom(OBJ_CHICKEN, PLAYER_INVENTORY); if (_objects.isInInventory(OBJ_BOMBS)) { _objects.setRoom(OBJ_BOMBS, PLAYER_INVENTORY); diff --git a/engines/mads/nebular/nebular_scenes.h b/engines/mads/nebular/nebular_scenes.h index 822aa5689c..516d58d30e 100644 --- a/engines/mads/nebular/nebular_scenes.h +++ b/engines/mads/nebular/nebular_scenes.h @@ -53,14 +53,20 @@ enum Verb { VERB_DIVE_INTO = 0x06D, VERB_DRINK = 0x072, VERB_EAT = 0x075, + VERB_EJECT = 0x076, + VERB_EMPTY = 0x077, VERB_EXAMINE = 0x07D, VERB_FILL = 0x085, + VERB_FONDLE = 0x08C, VERB_HOSE_DOWN = 0x0A6, VERB_IGNITE = 0x0B4, VERB_INFLATE = 0x0B5, VERB_INSERT = 0x0B6, VERB_INSPECT = 0x0B7, + VERB_GNAW_ON = 0x098, + VERB_GORGE_ON = 0x099, VERB_HURL = 0x0A9, + VERB_LICK = 0x0CB, VERB_LOOK_AT = 0x0D1, VERB_LOOK_IN = 0x0D2, VERB_LOOK_THROUGH = 0x0D3, @@ -70,10 +76,12 @@ enum Verb { VERB_PRY = 0x11C, VERB_READ = 0x11F, VERB_SET = 0x132, + VERB_SHAKE_HANDS = 0x133, VERB_SHARPEN = 0x134, VERB_SHOOT = 0x13A, VERB_SIT_IN = 0x13F, VERB_SMELL = 0x147, + VERB_SNIFF = 0x149, VERB_STARE_AT = 0x155, VERB_SWIM_ACROSS = 0x159, VERB_SWIM_INTO = 0x15A, @@ -93,6 +101,7 @@ enum Verb { VERB_LEAVE = 0x1CD, VERB_EXIT_FROM = 0x1CE, VERB_USE = 0x20C, + VERB_GAZE_INTO = 0x212, VERB_SIT_AT = 0x21F, VERB_WALK_UP = 0x227, VERB_WALK_INTO = 0x242, @@ -109,11 +118,23 @@ enum Verb { VERB_WALK = 0x32F, VERB_REFLECT = 0x365, VERB_GET_INTO = 0x36A, + VERB_APPLY = 0x3A6, VERB_STEER_TOWARDS = 0x3B1, + VERB_NIBBLE_ON = 0x3B7, VERB_ENTER = 0x3B8, VERB_PUT_DOWN = 0x46F, VERB_INSTALL = 0x474, - VERB_REMOVE = 0x476 + VERB_REMOVE = 0x476, + VERB_DEFACE = 0x489, + VERB_MASSAGE = 0x4A3, + VERB_MANGLE = 0x4A4, + VERB_RUB = 0x4A5, + VERB_JUGGLE = 0x4A6, + VERB_SMASH = 0x4A7, + VERB_GUZZLE = 0x4A8, + VERB_FOLD = 0x4AB, + VERB_SPINDLE = 0x4AC, + VERB_MUTILATE = 0x4AD }; enum Noun { @@ -423,7 +444,7 @@ enum Noun { NOUN_SEAWEED_BANK = 0x130, NOUN_SECURITY_CARD = 0x131, //NOUN_SET = 0x132, - NOUN_SHAKE_HANDS = 0x133, + //NOUN_SHAKE_HANDS = 0x133, //NOUN_SHARPEN = 0x134, NOUN_SHIELD_ACCESS_PANEL = 0x135, NOUN_SHIELD_GENERATOR = 0x136, @@ -1277,7 +1298,7 @@ enum Noun { NOUN_ICE_CHESTS = 0x486, NOUN_BIRDS = 0x487, NOUN_DOCTORS_OFFICE = 0x488, - NOUN_DEFACE = 0x489, + //NOUN_DEFACE = 0x489, NOUN_LARGE_HEADS = 0x48A, NOUN_SMALL_TABLE = 0x48B, NOUN_COLLOSSEUM = 0x48C, @@ -1303,16 +1324,16 @@ enum Noun { NOUN_HAT = 0x4A0, NOUN_LOGO = 0x4A1, NOUN_MAINTENANCE_BUILDING = 0x4A2, - NOUN_MASSAGE = 0x4A3, - NOUN_MANGLE = 0x4A4, - NOUN_RUB = 0x4A5, - NOUN_JUGGLE = 0x4A6, - NOUN_SMASH = 0x4A7, - NOUN_GUZZLE = 0x4A8, + //NOUN_MASSAGE = 0x4A3, + //NOUN_MANGLE = 0x4A4, + //NOUN_RUB = 0x4A5, + //NOUN_JUGGLE = 0x4A6, + //NOUN_SMASH = 0x4A7, + //NOUN_GUZZLE = 0x4A8, NOUN_WEST_END_OF_PLATFORM = 0x4A9, - NOUN_EAST_END_OF_PLATFORM = 0x4AA, - NOUN_FOLD = 0x4AB, - NOUN_SPINDLE = 0x4AC + NOUN_EAST_END_OF_PLATFORM = 0x4AA + //NOUN_FOLD = 0x4AB, + //NOUN_SPINDLE = 0x4AC, //NOUN_MUTILATE = 0x4AD }; diff --git a/engines/mads/nebular/nebular_scenes1.cpp b/engines/mads/nebular/nebular_scenes1.cpp index cd3b90089e..bd99888ed2 100644 --- a/engines/mads/nebular/nebular_scenes1.cpp +++ b/engines/mads/nebular/nebular_scenes1.cpp @@ -1592,10 +1592,10 @@ void Scene103::actions() { } void Scene103::postActions() { - if (_action.isAction(27) && !_action.isAction(VERB_WALKTO)) { + if (_action.isObject(NOUN_AUXILIARY_POWER) && !_action.isAction(VERB_WALKTO)) { _vm->_dialogs->show(10305); _action._inProgress = false; - } else if (_action.isAction(VERB_PUT, 85, 144)) { + } else if (_action.isAction(VERB_PUT, NOUN_COAL, NOUN_FURNACE)) { Common::String msg = _game.getQuote(73); _scene->_kernelMessages.add(Common::Point(0, 0), 0x1110, 34, 0, 120, msg); _action._inProgress = false; -- cgit v1.2.3