aboutsummaryrefslogtreecommitdiff
path: root/engines/adl/adl_v3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/adl/adl_v3.cpp')
-rw-r--r--engines/adl/adl_v3.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/engines/adl/adl_v3.cpp b/engines/adl/adl_v3.cpp
index 2e54195db4..6b93acde61 100644
--- a/engines/adl/adl_v3.cpp
+++ b/engines/adl/adl_v3.cpp
@@ -28,12 +28,18 @@ AdlEngine_v3::AdlEngine_v3(OSystem *syst, const AdlGameDescription *gd) :
AdlEngine_v2(syst, gd) {
}
+Common::String AdlEngine_v3::getItemDescription(const Item &item) const {
+ return _itemDesc[item.description - 1];
+}
+
typedef Common::Functor1Mem<ScriptEnv &, int, AdlEngine_v3> OpcodeV3;
void AdlEngine_v3::setupOpcodeTables() {
AdlEngine_v2::setupOpcodeTables();
delete _condOpcodes[0x04];
_condOpcodes[0x04] = new OpcodeV3(this, &AdlEngine_v3::o3_isNounNotInRoom);
+ delete _actOpcodes[0x04];
+ _actOpcodes[0x04] = new OpcodeV3(this, &AdlEngine_v3::o3_listInv);
}
int AdlEngine_v3::o3_isNounNotInRoom(ScriptEnv &e) {
@@ -55,4 +61,16 @@ int AdlEngine_v3::o3_isNounNotInRoom(ScriptEnv &e) {
return (isAnItem ? 1 : -1);
}
+int AdlEngine_v3::o3_listInv(ScriptEnv &e) {
+ OP_DEBUG_0("\tLIST_INVENTORY()");
+
+ Common::List<Item>::const_iterator item;
+
+ for (item = _state.items.begin(); item != _state.items.end(); ++item)
+ if (item->room == IDI_ANY)
+ printString(_itemDesc[item->description - 1]);
+
+ return 0;
+}
+
} // End of namespace Adl