aboutsummaryrefslogtreecommitdiff
path: root/engines/agi
diff options
context:
space:
mode:
authorFilippos Karapetis2007-09-22 10:53:53 +0000
committerFilippos Karapetis2007-09-22 10:53:53 +0000
commitdfb6080e1a859c696e5c16c4f6a4e298867ceaca (patch)
tree2238afb4a42ee62a6e28654f129988b8b1d295cd /engines/agi
parent00298204e730137b0cb56e242d5ce0d8f3cb51ae (diff)
downloadscummvm-rg350-dfb6080e1a859c696e5c16c4f6a4e298867ceaca.tar.gz
scummvm-rg350-dfb6080e1a859c696e5c16c4f6a4e298867ceaca.tar.bz2
scummvm-rg350-dfb6080e1a859c696e5c16c4f6a4e298867ceaca.zip
Simplified item handling code in Mickey
svn-id: r29019
Diffstat (limited to 'engines/agi')
-rw-r--r--engines/agi/preagi_mickey.cpp28
-rw-r--r--engines/agi/preagi_mickey.h10
2 files changed, 17 insertions, 21 deletions
diff --git a/engines/agi/preagi_mickey.cpp b/engines/agi/preagi_mickey.cpp
index 0671d99700..29f5afda18 100644
--- a/engines/agi/preagi_mickey.cpp
+++ b/engines/agi/preagi_mickey.cpp
@@ -1453,9 +1453,7 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_GET_FLASHLIGHT:
- if (game.fItem[IDI_MSA_ITEM_FLASHLIGHT]) {
- printDatMessage(90);
- } else {
+ if (!mickeyHasItem(IDI_MSA_ITEM_FLASHLIGHT)) {
game.iRmObj[game.iRoom] = IDI_MSA_OBJECT_NONE;
getItem(IDI_MSA_ITEM_FLASHLIGHT);
drawRoom();
@@ -1474,18 +1472,14 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_GET_CROWBAR:
- if (game.fItem[IDI_MSA_ITEM_CROWBAR]) {
- printDatMessage(90);
- } else {
+ if (!mickeyHasItem(IDI_MSA_ITEM_CROWBAR)) {
game.iRmObj[game.iRoom]--;
getItem(IDI_MSA_ITEM_CROWBAR);
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_WRENCH:
- if (game.fItem[IDI_MSA_ITEM_WRENCH]) {
- printDatMessage(90);
- } else {
+ if (!mickeyHasItem(IDI_MSA_ITEM_WRENCH)) {
game.iRmObj[game.iRoom] -= 2;
getItem(IDI_MSA_ITEM_WRENCH);
printDatMessage(arg);
@@ -1503,36 +1497,28 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_GET_MATTRESS:
- if (game.fItem[IDI_MSA_ITEM_MATTRESS]) {
- printDatMessage(90);
- } else {
+ if (!mickeyHasItem(IDI_MSA_ITEM_MATTRESS)) {
game.iRmObj[game.iRoom]--;
getItem(IDI_MSA_ITEM_MATTRESS);
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_SCARF:
- if (game.fItem[IDI_MSA_ITEM_SCARF]) {
- printDatMessage(90);
- } else {
+ if (!mickeyHasItem(IDI_MSA_ITEM_SCARF)) {
game.iRmObj[game.iRoom] -= 2;
getItem(IDI_MSA_ITEM_SCARF);
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_SUNGLASSES:
- if (game.fItem[IDI_MSA_ITEM_SUNGLASSES]) {
- printDatMessage(90);
- } else {
+ if (!mickeyHasItem(IDI_MSA_ITEM_SUNGLASSES)) {
game.iRmObj[game.iRoom]--;
getItem(IDI_MSA_ITEM_SUNGLASSES);
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_SCALE:
- if (game.fItem[IDI_MSA_ITEM_SCALE]) {
- printDatMessage(90);
- } else {
+ if (!mickeyHasItem(IDI_MSA_ITEM_SCALE)) {
game.iRmMenu[IDI_MSA_PIC_VENUS_WEIGH] = 1;
game.iRmMenu[IDI_MSA_PIC_NEPTUNE_WEIGH] = 1;
game.iRmMenu[IDI_MSA_PIC_MERCURY_WEIGH] = 1;
diff --git a/engines/agi/preagi_mickey.h b/engines/agi/preagi_mickey.h
index 078035eb32..76a52c047b 100644
--- a/engines/agi/preagi_mickey.h
+++ b/engines/agi/preagi_mickey.h
@@ -117,6 +117,7 @@ const char IDS_MSA_INSERT_DISK[][40] = {
#define IDI_MSA_MSG_SPACESUIT_CANT_WEAR_ON_EARTH 12
#define IDI_MSA_MSG_SHIP_LAUNCH 16
#define IDI_MSA_MSG_SHIP_LAND 22
+#define IDI_MSA_MSG_MICKEY_ALREADY_HAS_ITEM 90
// screen
@@ -809,6 +810,15 @@ protected:
}
return false;
}
+
+ bool mickeyHasItem(int item) {
+ if (game.fItem[item]) {
+ printDatMessage(IDI_MSA_MSG_MICKEY_ALREADY_HAS_ITEM);
+ return true;
+ } else {
+ return false;
+ }
+ }
};
} // End of namespace Agi