aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/dialogs/dialogs_items.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2018-03-14 06:57:10 -0400
committerPaul Gilbert2018-03-14 06:57:10 -0400
commit5dbc6249033a0cb027df9a425e10eb67196be8fc (patch)
treeed608fac0ae0614494d1f312097ae2b55887e5b5 /engines/xeen/dialogs/dialogs_items.cpp
parent7e9d25006202952bea6b54d3fd6f4d19180ad6e0 (diff)
downloadscummvm-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.cpp39
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) {