aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/mads/nebular/game_nebular.cpp116
-rw-r--r--engines/mads/nebular/nebular_scenes.h45
-rw-r--r--engines/mads/nebular/nebular_scenes1.cpp4
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;