diff options
author | Paul Gilbert | 2015-02-02 22:38:16 -0500 |
---|---|---|
committer | Paul Gilbert | 2015-02-02 22:38:16 -0500 |
commit | f34c5ad9b65f626884736faf802d627dc2fe68c0 (patch) | |
tree | 4348519802a06ddb93204ae05dd50c6ad438dca0 /engines/xeen/dialogs_items.cpp | |
parent | 38df23ace070902d5808e77a7260f5d62ef88108 (diff) | |
download | scummvm-rg350-f34c5ad9b65f626884736faf802d627dc2fe68c0.tar.gz scummvm-rg350-f34c5ad9b65f626884736faf802d627dc2fe68c0.tar.bz2 scummvm-rg350-f34c5ad9b65f626884736faf802d627dc2fe68c0.zip |
XEEN: Finished Items dailog loading block for weapons
Diffstat (limited to 'engines/xeen/dialogs_items.cpp')
-rw-r--r-- | engines/xeen/dialogs_items.cpp | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/engines/xeen/dialogs_items.cpp b/engines/xeen/dialogs_items.cpp index 511c27db5b..1043be8d9e 100644 --- a/engines/xeen/dialogs_items.cpp +++ b/engines/xeen/dialogs_items.cpp @@ -147,9 +147,14 @@ Character *ItemsDialog::execute(Character *c, ItemsMode mode) { )); } - // TODO + DrawStruct &ds = _itemsDrawList[idx]; + ds._sprites = &_equipSprites; + if (passRestrictions(c->_class, c->_weapons[idx]._id, true, CATEGORY_WEAPON)) + ds._frame = c->_weapons[idx]._frame; + else + ds._frame = 14; } else if (_itemsDrawList[idx]._sprites == nullptr) { - // TODO + lines.push_back(NO_ITEMS_AVAILABLE); } break; // TODO @@ -260,26 +265,26 @@ void ItemsDialog::setEquipmentIcons() { case 0: { XeenItem &i = _itemsCharacter._weapons[idx]; if (i._id <= 17) - i._equipped = 1; + i._frame = 1; else if (i._id <= 29 || i._id > 33) - i._equipped = 13; + i._frame = 13; else - i._equipped = 4; + i._frame = 4; break; } case 1: { XeenItem &i = _itemsCharacter._armor[idx]; if (i._id <= 7) - i._equipped = 3; + i._frame = 3; else if (i._id == 9) - i._equipped = 5; + i._frame = 5; else if (i._id == 10) - i._equipped = 9; + i._frame = 9; else if (i._id <= 12) - i._equipped = 10; + i._frame = 10; else - i._equipped = 6; + i._frame = 6; break; } @@ -288,11 +293,11 @@ void ItemsDialog::setEquipmentIcons() { if (i._id == 1) i._id = 8; else if (i._id == 2) - i._equipped = 12; + i._frame = 12; else if (i._id <= 7) - i._equipped = 7; + i._frame = 7; else - i._equipped = 11; + i._frame = 11; break; } @@ -410,6 +415,9 @@ int ItemsDialog::calcItemCost(Character *c, int itemIndex, int mode, return (mode == ITEMMODE_CHAR_INFO) ? 0 : result; } +/** + * Return whether a given item passes class-based usage restrictions + */ bool ItemsDialog::passRestrictions(CharacterClass charClass, int itemId, bool showError, ItemCategory category) const { switch (charClass) { |