diff options
author | Paul Gilbert | 2018-03-14 06:57:10 -0400 |
---|---|---|
committer | Paul Gilbert | 2018-03-14 06:57:10 -0400 |
commit | 5dbc6249033a0cb027df9a425e10eb67196be8fc (patch) | |
tree | ed608fac0ae0614494d1f312097ae2b55887e5b5 /engines/xeen/dialogs/dialogs_items.cpp | |
parent | 7e9d25006202952bea6b54d3fd6f4d19180ad6e0 (diff) | |
download | scummvm-rg350-5dbc6249033a0cb027df9a425e10eb67196be8fc.tar.gz scummvm-rg350-5dbc6249033a0cb027df9a425e10eb67196be8fc.tar.bz2 scummvm-rg350-5dbc6249033a0cb027df9a425e10eb67196be8fc.zip |
XEEN: Fixes and refactoring for Blacksmith Wares
Diffstat (limited to 'engines/xeen/dialogs/dialogs_items.cpp')
-rw-r--r-- | engines/xeen/dialogs/dialogs_items.cpp | 39 |
1 files changed, 3 insertions, 36 deletions
diff --git a/engines/xeen/dialogs/dialogs_items.cpp b/engines/xeen/dialogs/dialogs_items.cpp index 0ca0fd2267..07e2b87cfe 100644 --- a/engines/xeen/dialogs/dialogs_items.cpp +++ b/engines/xeen/dialogs/dialogs_items.cpp @@ -506,12 +506,13 @@ Character *ItemsDialog::execute(Character *c, ItemsMode mode) { intf.drawParty(true); if (updateStock) - charData2BlackData(); + party._blacksmithWares.charData2BlackData(_itemsCharacter); return c; } void ItemsDialog::loadButtons(ItemsMode mode, Character *&c) { + Party &party = *g_vm->_party; _iconSprites.load(Common::String::format("%s.icn", (mode == ITEMMODE_CHAR_INFO) ? "items" : "buy")); _equipSprites.load("equip.icn"); @@ -559,7 +560,7 @@ void ItemsDialog::loadButtons(ItemsMode mode, Character *&c) { if (mode == ITEMMODE_BLACKSMITH) { _oldCharacter = c; c = &_itemsCharacter; - blackData2CharData(); + party._blacksmithWares.blackData2CharData(_itemsCharacter); _buttons[4]._value = Common::KEYCODE_b; _buttons[5]._value = Common::KEYCODE_s; @@ -575,40 +576,6 @@ void ItemsDialog::loadButtons(ItemsMode mode, Character *&c) { } } -void ItemsDialog::blackData2CharData() { - Party &party = *_vm->_party; - bool isDarkCc = _vm->_files->_isDarkCc; - int slotIndex = 0; - while (slotIndex < 4 && party._mazeId != (int)Res.BLACKSMITH_MAP_IDS[isDarkCc][slotIndex]) - ++slotIndex; - if (slotIndex == 4) - slotIndex = 0; - - for (int idx = 0; idx < INV_ITEMS_TOTAL; ++idx) { - _itemsCharacter._weapons[idx] = party._blacksmithWeapons[isDarkCc][idx]; - _itemsCharacter._armor[idx] = party._blacksmithArmor[isDarkCc][idx]; - _itemsCharacter._accessories[idx] = party._blacksmithAccessories[isDarkCc][idx]; - _itemsCharacter._misc[idx] = party._blacksmithMisc[isDarkCc][idx]; - } -} - -void ItemsDialog::charData2BlackData() { - Party &party = *_vm->_party; - bool isDarkCc = _vm->_files->_isDarkCc; - int slotIndex = 0; - while (slotIndex < 4 && party._mazeId != (int)Res.BLACKSMITH_MAP_IDS[isDarkCc][slotIndex]) - ++slotIndex; - if (slotIndex == 4) - slotIndex = 0; - - for (int idx = 0; idx < INV_ITEMS_TOTAL; ++idx) { - party._blacksmithWeapons[isDarkCc][idx] = _itemsCharacter._weapons[idx]; - party._blacksmithArmor[isDarkCc][idx] = _itemsCharacter._armor[idx]; - party._blacksmithAccessories[isDarkCc][idx] = _itemsCharacter._accessories[idx]; - party._blacksmithMisc[isDarkCc][idx] = _itemsCharacter._misc[idx]; - } -} - void ItemsDialog::setEquipmentIcons() { for (int typeIndex = 0; typeIndex < 4; ++typeIndex) { for (int idx = 0; idx < INV_ITEMS_TOTAL; ++idx) { |