[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