[Scummvm-git-logs] scummvm master -> fc03c1e71cef6e50e8e809452f0af94d75643ac3

dreammaster dreammaster at scummvm.org
Thu Mar 29 03:54:13 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:
fc03c1e71c XEEN: Don't allow dismissing characters holding Elder weapons in Swords


Commit: fc03c1e71cef6e50e8e809452f0af94d75643ac3
    https://github.com/scummvm/scummvm/commit/fc03c1e71cef6e50e8e809452f0af94d75643ac3
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2018-03-28T21:53:59-04:00

Commit Message:
XEEN: Don't allow dismissing characters holding Elder weapons in Swords

Changed paths:
    engines/xeen/dialogs/dialogs_dismiss.cpp
    engines/xeen/item.cpp
    engines/xeen/item.h


diff --git a/engines/xeen/dialogs/dialogs_dismiss.cpp b/engines/xeen/dialogs/dialogs_dismiss.cpp
index 716f8f0..7f9c8d9 100644
--- a/engines/xeen/dialogs/dialogs_dismiss.cpp
+++ b/engines/xeen/dialogs/dialogs_dismiss.cpp
@@ -70,6 +70,10 @@ void Dismiss::execute() {
 					w.close();
 					ErrorScroll::show(_vm, Res.CANT_DISMISS_LAST_CHAR, WT_NONFREEZED_WAIT);
 					w.open();
+				} else if (party._activeParty[_buttonValue]._weapons.hasElderWeapon()) {
+					w.close();
+					ErrorScroll::show(_vm, Res.DELETE_CHAR_WITH_ELDER_WEAPON, WT_NONFREEZED_WAIT);
+					w.open();
 				} else {
 					// Remove the character from the party
 					party._activeParty.remove_at(_buttonValue);
diff --git a/engines/xeen/item.cpp b/engines/xeen/item.cpp
index c50276d..871f60b 100644
--- a/engines/xeen/item.cpp
+++ b/engines/xeen/item.cpp
@@ -385,6 +385,17 @@ Common::String WeaponItems::getAttributes(XeenItem &item, const Common::String &
 	);
 }
 
+bool WeaponItems::hasElderWeapon() const {
+	if (g_vm->getGameID() == GType_Swords) {
+		for (uint idx = 0; idx < size(); ++idx) {
+			if ((*this)[idx]._id >= 34)
+				return true;
+		}
+	}
+
+	return false;
+}
+
 /*------------------------------------------------------------------------*/
 
 void ArmorItems::equipItem(int itemIndex) {
diff --git a/engines/xeen/item.h b/engines/xeen/item.h
index a37e659..0fcfa92 100644
--- a/engines/xeen/item.h
+++ b/engines/xeen/item.h
@@ -205,6 +205,11 @@ public:
 	 * Enchants a weapon
 	 */
 	virtual void enchantItem(int itemIndex, int amount);
+
+	/**
+	 * Returns true if the character has an Elder weapon in Swords of Xeen
+	 */
+	bool hasElderWeapon() const;
 };
 
 class ArmorItems : public InventoryItems {





More information about the Scummvm-git-logs mailing list