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

dreammaster dreammaster at scummvm.org
Sat Apr 14 04:57:31 CEST 2018


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
63181701e5 README: Flesh out the copy protection skipped list
8b717abe38 XEEN: Cleanup scene area clipping flags setting
fbed392767 XEEN: Add launcher Engine tab option for more durable armor


Commit: 63181701e5bc46b91e1cfaff9df3b9b12eb8b8fb
    https://github.com/scummvm/scummvm/commit/63181701e5bc46b91e1cfaff9df3b9b12eb8b8fb
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2018-04-13T22:56:57-04:00

Commit Message:
README: Flesh out the copy protection skipped list

Changed paths:
    README


diff --git a/README b/README
index 4f69f44..beddb22 100644
--- a/README
+++ b/README
@@ -544,13 +544,16 @@ ScummVM will skip copy protection in the following games:
       -- bypassed with kind permission from Wyrmkeep Entertainment,
          since it was bypassed in all CD releases of the game.
   * Loom (EGA DOS)
+  * Lure of the Temptress
   * Maniac Mansion
+  * Might and Magic: World of Xeen
   * Monkey Island 2: LeChuck's Revenge
   * Simon the Sorcerer 1 (Floppy version)
   * Simon the Sorcerer 2 (Floppy version)
       -- bypassed with kind permission from Adventure Soft,
          since it was bypassed in all CD releases of the game.
   * The Secret of Monkey Island (VGA)
+  * Voyeur
   * Waxworks
   * Zak McKracken and the Alien Mindbenders
 


Commit: 8b717abe3801eb85faf3983b032565dad1d2e46f
    https://github.com/scummvm/scummvm/commit/8b717abe3801eb85faf3983b032565dad1d2e46f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2018-04-13T22:56:57-04:00

Commit Message:
XEEN: Cleanup scene area clipping flags setting

Changed paths:
    engines/xeen/interface_scene.cpp


diff --git a/engines/xeen/interface_scene.cpp b/engines/xeen/interface_scene.cpp
index 81a597a..db14c0d 100644
--- a/engines/xeen/interface_scene.cpp
+++ b/engines/xeen/interface_scene.cpp
@@ -167,6 +167,9 @@ OutdoorDrawList::OutdoorDrawList() : _sky1(_data[0]), _sky2(_data[1]),
 	_data[129] = DrawStruct(0, 47, 36, 0, SPRFLAG_HORIZ_FLIPPED);
 	_data[130] = DrawStruct(0, 118, 42);
 	_data[131] = DrawStruct(0, 26, 42, 0, SPRFLAG_HORIZ_FLIPPED);
+
+	for (int idx = 0; idx < 132; ++idx)
+		_data[idx]._flags |= SPRFLAG_SCENE_CLIPPED;
 }
 
 /*------------------------------------------------------------------------*/
@@ -366,6 +369,9 @@ IndoorDrawList::IndoorDrawList() :
 	_data[167] = DrawStruct(0, 47, 36, 0, SPRFLAG_HORIZ_FLIPPED);
 	_data[168] = DrawStruct(0, 118, 42);
 	_data[169] = DrawStruct(0, 26, 42, 0, SPRFLAG_HORIZ_FLIPPED);
+
+	for (int idx = 0; idx < 170; ++idx)
+		_data[idx]._flags |= SPRFLAG_SCENE_CLIPPED;
 }
 
 /*------------------------------------------------------------------------*/
@@ -4378,10 +4384,6 @@ void InterfaceScene::drawIndoors() {
 	_indoorList._ground._flags = _flipDefaultGround ? SPRFLAG_HORIZ_FLIPPED : 0;
 	_indoorList._horizon._frame = 7;
 
-	// FIXME: I seem to be missing the scene area clipping flag on some list entries
-	for (int idx = 0; idx < _indoorList.size(); ++idx)
-		_indoorList[idx]._flags |= SPRFLAG_SCENE_CLIPPED;
-
 	// Finally draw the darn indoor scene
 	windows[3].drawList(&_indoorList[0], _indoorList.size());
 
@@ -4463,11 +4465,6 @@ void InterfaceScene::drawOutdoors() {
 	_outdoorList._sky1._flags = _outdoorList._sky2._flags = _flipSky ? SPRFLAG_HORIZ_FLIPPED : 0;
 	_outdoorList._groundSprite._flags = _flipWater ? SPRFLAG_HORIZ_FLIPPED : 0;
 
-	// FIXME: I seem to be missing the scene area clipping flag on some list entries.
-	// Just re-flagging them all in a loop is simpler than hunting down the missing entries
-	for (int idx = 0; idx < _outdoorList.size(); ++idx)
-		_outdoorList[idx]._flags |= SPRFLAG_SCENE_CLIPPED;
-
 	// Finally render the outdoor scene
 	windows[3].drawList(&_outdoorList[0], _outdoorList.size());
 


Commit: fbed39276714cc1eeeb03c04c834365beb5ada38
    https://github.com/scummvm/scummvm/commit/fbed39276714cc1eeeb03c04c834365beb5ada38
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2018-04-13T22:56:57-04:00

Commit Message:
XEEN: Add launcher Engine tab option for more durable armor

Changed paths:
    engines/xeen/character.cpp
    engines/xeen/detection.cpp
    engines/xeen/detection_tables.h
    engines/xeen/xeen.cpp
    engines/xeen/xeen.h


diff --git a/engines/xeen/character.cpp b/engines/xeen/character.cpp
index 1f53b2b..cbade04 100644
--- a/engines/xeen/character.cpp
+++ b/engines/xeen/character.cpp
@@ -1222,7 +1222,7 @@ void Character::subtractHitPoints(int amount) {
 
 	// Subtract the given HP amount
 	_currentHp -= amount;
-	bool breakFlag = _currentHp <= -10;
+	bool breakFlag = _currentHp <= (g_vm->_extOptions._durableArmor ? -80 : -10);
 	assert(_currentHp < 65000);
 
 	if (_currentHp < 1) {
diff --git a/engines/xeen/detection.cpp b/engines/xeen/detection.cpp
index abf8218..91eab28 100644
--- a/engines/xeen/detection.cpp
+++ b/engines/xeen/detection.cpp
@@ -73,6 +73,7 @@ static const PlainGameDescriptor XeenGames[] = {
 };
 
 #define GAMEOPTION_SHOW_ITEM_COSTS	GUIO_GAMEOPTIONS1
+#define GAMEOPTION_DURABLE_ARMOR	GUIO_GAMEOPTIONS2
 
 #include "xeen/detection_tables.h"
 
@@ -88,6 +89,16 @@ static const ADExtraGuiOptionsMap optionsList[] = {
 		}
 	},
 
+	{
+		GAMEOPTION_DURABLE_ARMOR,
+		{
+			_s("More durable armor"),
+			_s("Armor won't break until character is at -80HP, rather than merely -10HP"),
+			"DurableArmor",
+			false
+		}
+	},
+
 	AD_EXTRA_GUI_OPTIONS_TERMINATOR
 };
 
diff --git a/engines/xeen/detection_tables.h b/engines/xeen/detection_tables.h
index 282fc62..36c116f 100644
--- a/engines/xeen/detection_tables.h
+++ b/engines/xeen/detection_tables.h
@@ -36,7 +36,7 @@ static const XeenGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO1(GAMEOPTION_SHOW_ITEM_COSTS)
+			GUIO2(GAMEOPTION_SHOW_ITEM_COSTS, GAMEOPTION_DURABLE_ARMOR)
 		},
 		GType_WorldOfXeen,
 		0
@@ -55,7 +55,7 @@ static const XeenGameDescription gameDescriptions[] = {
 			Common::DE_DEU,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO1(GAMEOPTION_SHOW_ITEM_COSTS)
+			GUIO2(GAMEOPTION_SHOW_ITEM_COSTS, GAMEOPTION_DURABLE_ARMOR)
 		},
 		GType_WorldOfXeen,
 		0
@@ -74,7 +74,7 @@ static const XeenGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO1(GAMEOPTION_SHOW_ITEM_COSTS)
+			GUIO2(GAMEOPTION_SHOW_ITEM_COSTS, GAMEOPTION_DURABLE_ARMOR)
 		},
 		GType_WorldOfXeen,
 		0
@@ -92,7 +92,7 @@ static const XeenGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO1(GAMEOPTION_SHOW_ITEM_COSTS)
+			GUIO2(GAMEOPTION_SHOW_ITEM_COSTS, GAMEOPTION_DURABLE_ARMOR)
 		},
 		GType_Clouds,
 		0
@@ -110,7 +110,7 @@ static const XeenGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO1(GAMEOPTION_SHOW_ITEM_COSTS)
+			GUIO2(GAMEOPTION_SHOW_ITEM_COSTS, GAMEOPTION_DURABLE_ARMOR)
 		},
 		GType_DarkSide,
 		0
@@ -128,7 +128,7 @@ static const XeenGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_NO_FLAGS,
-			GUIO1(GAMEOPTION_SHOW_ITEM_COSTS)
+			GUIO2(GAMEOPTION_SHOW_ITEM_COSTS, GAMEOPTION_DURABLE_ARMOR)
 		},
 		GType_Swords,
 		0
diff --git a/engines/xeen/xeen.cpp b/engines/xeen/xeen.cpp
index d524028..1e15ec7 100644
--- a/engines/xeen/xeen.cpp
+++ b/engines/xeen/xeen.cpp
@@ -129,6 +129,7 @@ void XeenEngine::loadSettings() {
 	_finalScore = ConfMan.hasKey("final_score") ? ConfMan.getInt("final_score") : 0;
 
 	_extOptions._showItemCosts = ConfMan.hasKey("ShowItemCosts") && ConfMan.getBool("ShowItemCosts");
+	_extOptions._durableArmor = ConfMan.hasKey("DurableArmor") && ConfMan.getBool("DurableArmor");
 
 	// If requested, load a savegame instead of showing the intro
 	if (ConfMan.hasKey("save_slot")) {
diff --git a/engines/xeen/xeen.h b/engines/xeen/xeen.h
index 93be6d2..85cc01d 100644
--- a/engines/xeen/xeen.h
+++ b/engines/xeen/xeen.h
@@ -112,8 +112,9 @@ class XeenEngine : public Engine {
 	 */
 	struct ExtendedOptions {
 		bool _showItemCosts;
+		bool _durableArmor;
 
-		ExtendedOptions() : _showItemCosts(false) {}
+		ExtendedOptions() : _showItemCosts(false), _durableArmor(false) {}
 	};
 private:
 	const XeenGameDescription *_gameDescription;





More information about the Scummvm-git-logs mailing list