From e9557dba1f138f972b7a28b0581f23ca0f4a72c1 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 9 Aug 2019 14:47:54 -0700 Subject: XEEN: Show Spell Failed dialog if enchanitem item fails --- engines/xeen/item.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'engines/xeen/item.cpp') diff --git a/engines/xeen/item.cpp b/engines/xeen/item.cpp index 5c0a55a3da..a384d615e2 100644 --- a/engines/xeen/item.cpp +++ b/engines/xeen/item.cpp @@ -366,9 +366,14 @@ void WeaponItems::enchantItem(int itemIndex, int amount) { tempCharacter.makeItem(amount, 0, 1); XeenItem &tempItem = tempCharacter._weapons[0]; - item._material = tempItem._material; - item._state = tempItem._state; - sound.playFX(19); + if (tempItem._material != 0 || !tempItem._state.empty()) { + item._material = tempItem._material; + item._state = tempItem._state; + sound.playFX(19); + } else { + // WORKAROUND: As an improvement on the original, show an error if the enchanting failed + ErrorScroll::show(g_vm, Res.SPELL_FAILED); + } } else { InventoryItems::enchantItem(itemIndex, amount); } @@ -533,9 +538,14 @@ void ArmorItems::enchantItem(int itemIndex, int amount) { tempCharacter.makeItem(amount, 0, 2); XeenItem &tempItem = tempCharacter._armor[0]; - item._material = tempItem._material; - item._state = tempItem._state; - sound.playFX(19); + if (tempItem._material != 0 || !tempItem._state.empty()) { + item._material = tempItem._material; + item._state = tempItem._state; + sound.playFX(19); + } else { + // WORKAROUND: As an improvement on the original, show an error if the enchanting failed + ErrorScroll::show(g_vm, Res.SPELL_FAILED); + } } else { InventoryItems::enchantItem(itemIndex, amount); } -- cgit v1.2.3