diff options
Diffstat (limited to 'engines/adl/adl_v3.cpp')
-rw-r--r-- | engines/adl/adl_v3.cpp | 18 |
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 |