[Scummvm-git-logs] scummvm master -> 3951c6d2f799e5e288459868acc348bea018061e
dreammaster
dreammaster at scummvm.org
Sat Mar 31 23:04:11 CEST 2018
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
3951c6d2f7 XEEN: Fixes for enchanting items
Commit: 3951c6d2f799e5e288459868acc348bea018061e
https://github.com/scummvm/scummvm/commit/3951c6d2f799e5e288459868acc348bea018061e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2018-03-31T17:04:07-04:00
Commit Message:
XEEN: Fixes for enchanting items
Changed paths:
engines/xeen/combat.cpp
engines/xeen/dialogs/dialogs_items.cpp
engines/xeen/item.cpp
engines/xeen/item.h
diff --git a/engines/xeen/combat.cpp b/engines/xeen/combat.cpp
index 2c87018..bec9942 100644
--- a/engines/xeen/combat.cpp
+++ b/engines/xeen/combat.cpp
@@ -1408,7 +1408,7 @@ void Combat::attack2(int damage, RangeType rangeType) {
if (monster._damageType == DT_SLEEP || monster._damageType == DT_DRAGONSLEEP)
monster._damageType = DT_PHYSICAL;
- if ((rangeType == RT_SINGLE || _damageType == DT_PHYSICAL) && _attackWeaponId != 34) {
+ if ((rangeType == RT_SINGLE || _damageType == DT_PHYSICAL) && _attackWeaponId < XEEN_SLAYER_SWORD) {
if (monsterData._phsyicalResistence != 0) {
if (monsterData._phsyicalResistence == 100) {
// Completely immune to the damage
diff --git a/engines/xeen/dialogs/dialogs_items.cpp b/engines/xeen/dialogs/dialogs_items.cpp
index 41233c9..f844964 100644
--- a/engines/xeen/dialogs/dialogs_items.cpp
+++ b/engines/xeen/dialogs/dialogs_items.cpp
@@ -61,6 +61,8 @@ Character *ItemsDialog::execute(Character *c, ItemsMode mode) {
c = &_itemsCharacter;
party._blacksmithWares.blackData2CharData(_itemsCharacter);
setEquipmentIcons();
+ } else if (mode == ITEMMODE_ENCHANT) {
+ _oldCharacter = c;
}
events.setCursor(0);
diff --git a/engines/xeen/item.cpp b/engines/xeen/item.cpp
index 091afb3..3fe2896 100644
--- a/engines/xeen/item.cpp
+++ b/engines/xeen/item.cpp
@@ -339,7 +339,7 @@ Common::String WeaponItems::getFullDescription(int itemIndex, int displayNum) {
Resources &res = *getVm()->_resources;
Common::String desc = Common::String::format("\f%02u%s%s%s\f%02u%s%s%s", displayNum,
- !i._state._cursed && !i._state._broken ? "" : res._maeNames[i._material].c_str(),
+ i._state._cursed || i._state._broken ? "" : res._maeNames[i._material].c_str(),
i._state._broken ? Res.ITEM_BROKEN : "",
i._state._cursed ? Res.ITEM_CURSED : "",
displayNum,
@@ -356,7 +356,7 @@ void WeaponItems::enchantItem(int itemIndex, int amount) {
XeenItem &item = operator[](itemIndex);
Character tempCharacter;
- if (item._material == 0 && item._state.empty() && item._id != 34) {
+ if (item._material == 0 && item._state.empty() && item._id < XEEN_SLAYER_SWORD) {
tempCharacter.makeItem(amount, 0, 1);
XeenItem &tempItem = tempCharacter._weapons[0];
@@ -507,7 +507,7 @@ Common::String ArmorItems::getFullDescription(int itemIndex, int displayNum) {
Resources &res = *getVm()->_resources;
Common::String desc = Common::String::format("\f%02u%s%s%s\f%02u%s%s", displayNum,
- !i._state._cursed && !i._state._broken ? "" : res._maeNames[i._material].c_str(),
+ i._state._cursed || i._state._broken ? "" : res._maeNames[i._material].c_str(),
i._state._broken ? Res.ITEM_BROKEN : "",
i._state._cursed ? Res.ITEM_CURSED : "",
displayNum,
@@ -620,7 +620,7 @@ Common::String AccessoryItems::getFullDescription(int itemIndex, int displayNum)
Resources &res = *getVm()->_resources;
Common::String desc = Common::String::format("\f%02u%s%s%s\f%02u%s%s", displayNum,
- !i._state._cursed && !i._state._broken ? "" : res._maeNames[i._material].c_str(),
+ i._state._cursed || i._state._broken ? "" : res._maeNames[i._material].c_str(),
i._state._broken ? Res.ITEM_BROKEN : "",
i._state._cursed ? Res.ITEM_CURSED : "",
displayNum,
@@ -667,7 +667,7 @@ Common::String MiscItems::getFullDescription(int itemIndex, int displayNum) {
Resources &res = *getVm()->_resources;
Common::String desc = Common::String::format("\f%02u%s%s%s\f%02u%s%s", displayNum,
- !i._state._cursed && !i._state._broken ? "" : res._maeNames[i._material].c_str(),
+ i._state._cursed || i._state._broken ? "" : res._maeNames[i._material].c_str(),
i._state._broken ? Res.ITEM_BROKEN : "",
i._state._cursed ? Res.ITEM_CURSED : "",
displayNum,
@@ -720,7 +720,7 @@ const InventoryItems &InventoryItemsGroup::operator[](ItemCategory category) con
void InventoryItemsGroup::breakAllItems() {
for (int idx = 0; idx < INV_ITEMS_TOTAL; ++idx) {
- if (_owner->_weapons[idx]._id != 34) {
+ if (_owner->_weapons[idx]._id < XEEN_SLAYER_SWORD) {
_owner->_weapons[idx]._state._broken = true;
_owner->_weapons[idx]._frame = 0;
}
diff --git a/engines/xeen/item.h b/engines/xeen/item.h
index 9bd70c7..df13456 100644
--- a/engines/xeen/item.h
+++ b/engines/xeen/item.h
@@ -52,7 +52,7 @@ enum ElementalCategory {
ELEM_ENERGY = 4, ELEM_MAGIC = 5
};
-enum ItemId {
+enum WeaponId {
XEEN_SLAYER_SWORD = 34
};
More information about the Scummvm-git-logs
mailing list