aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/wage/entities.cpp8
-rw-r--r--engines/wage/entities.h2
-rw-r--r--engines/wage/script.cpp15
3 files changed, 24 insertions, 1 deletions
diff --git a/engines/wage/entities.cpp b/engines/wage/entities.cpp
index 0503b8573a..588a7cf47f 100644
--- a/engines/wage/entities.cpp
+++ b/engines/wage/entities.cpp
@@ -483,4 +483,12 @@ const char *Chr::getDefiniteArticle(bool capitalize) {
return "";
}
+bool Chr::isWearing(Obj *obj) {
+ for (int i = 0; i < NUMBER_OF_ARMOR_TYPES; i++)
+ if (_armor[i] == obj)
+ return true;
+
+ return false;
+}
+
} // End of namespace Wage
diff --git a/engines/wage/entities.h b/engines/wage/entities.h
index 5fc1a08b36..b1101f93aa 100644
--- a/engines/wage/entities.h
+++ b/engines/wage/entities.h
@@ -229,6 +229,8 @@ public:
void wearObjs();
void resetState();
+
+ bool isWearing(Obj *obj);
};
class Obj : public Designed {
diff --git a/engines/wage/script.cpp b/engines/wage/script.cpp
index 71f2cec21b..7ede7eafa4 100644
--- a/engines/wage/script.cpp
+++ b/engines/wage/script.cpp
@@ -1026,7 +1026,20 @@ void Script::appendObjNames(Common::String &str, ObjArray &objs) {
}
void Script::handleInventoryCommand() {
- warning("STUB: handleInventoryCommand");
+ Chr *player = _world->_player;
+ ObjArray objs;
+
+ for (ObjArray::const_iterator it = player->_inventory.begin(); it != player->_inventory.end(); ++it)
+ if (!player->isWearing(*it))
+ objs.push_back(*it);
+
+ if (!objs.size()) {
+ appendText("Your pack is empty.");
+ } else {
+ Common::String res("Your pack contains ");
+ appendObjNames(res, objs);
+ appendText(res);
+ }
}
static const char *armorMessages[] = {