[Scummvm-cvs-logs] scummvm master -> ea06210b92a45f8fca6b9be19057bcd607988ee7

bluegr md5 at scummvm.org
Mon Jun 11 20:18:28 CEST 2012


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:
3fde390e00 SCI: Added another French version of Torin's Passage
15306bc554 SCI: Return the default value for unknown configuration settings
ea06210b92 SCI: Add support for variable selectors in kListFirstTrue / kListAllTrue


Commit: 3fde390e006963f354c0678640c70f49753907ef
    https://github.com/scummvm/scummvm/commit/3fde390e006963f354c0678640c70f49753907ef
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-06-11T11:17:17-07:00

Commit Message:
SCI: Added another French version of Torin's Passage

Thanks to LePhilousophe for providing the file details.
Also fixed all of the detection entries for Torin's Passage

Changed paths:
    engines/sci/detection_tables.h



diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 506f79b..6e66c48 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -3744,53 +3744,61 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 
 #ifdef ENABLE_SCI32
 	// Torin's Passage - English Windows Interactive Demo
-	// SCI interpreter version 2.100.002 (just a guess)
+	// SCI interpreter version 2.100.002
 	{"torin", "Demo", {
 		{"resmap.000", 0, "9a3e172cde9963d0a969f26469318cec", 3403},
 		{"ressci.000", 0, "db3e290481c35c3224e9602e71e4a1f1", 5073868},
 		AD_LISTEND},
-	 	Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO | ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+	 	Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO | ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
-	// Torin's Passage - English Windows
-	// SCI interpreter version 2.100.002 (just a guess)
+	// Torin's Passage (Multilingual) - English Windows CD
+	// SCI interpreter version 2.100.002
 	{"torin", "", {
 		{"resmap.000", 0, "bb3b0b22ff08df54fbe2d06263409be6", 9799},
 		{"ressci.000", 0, "693a259d346c9360f4a0c11fdaae430a", 55973887},
 		AD_LISTEND},
-	 	Common::EN_ANY, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+	 	Common::EN_ANY, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
-	// Torin's Passage - Spanish Windows (from jvprat)
+	// Torin's Passage (Multilingual) - Spanish Windows CD (from jvprat)
 	// Executable scanning reports "2.100.002", VERSION file reports "1.0"
 	{"torin", "", {
 		{"resmap.000", 0, "bb3b0b22ff08df54fbe2d06263409be6", 9799},
 		{"ressci.000", 0, "693a259d346c9360f4a0c11fdaae430a", 55973887},
 		// TODO: depend on one of the patches?
 		AD_LISTEND},
-	 	Common::ES_ESP, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+	 	Common::ES_ESP, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
-	// Torin's Passage - French Windows
-	// SCI interpreter version 2.100.002 (just a guess)
+	// Torin's Passage (Multilingual) - French Windows CD
+	// SCI interpreter version 2.100.002
 	{"torin", "", {
 		{"resmap.000", 0, "bb3b0b22ff08df54fbe2d06263409be6", 9799},
 		{"ressci.000", 0, "693a259d346c9360f4a0c11fdaae430a", 55973887},
 		AD_LISTEND},
-	 	Common::FR_FRA, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+	 	Common::FR_FRA, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
-	// Torin's Passage - German Windows
-	// SCI interpreter version 2.100.002 (just a guess)
+	// Torin's Passage (Multilingual) - German Windows CD
+	// SCI interpreter version 2.100.002
 	{"torin", "", {
 		{"resmap.000", 0, "bb3b0b22ff08df54fbe2d06263409be6", 9799},
 		{"ressci.000", 0, "693a259d346c9360f4a0c11fdaae430a", 55973887},
 		AD_LISTEND},
-	 	Common::DE_DEU, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO5(GUIO_NOSPEECH, GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+	 	Common::DE_DEU, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 
-	// Torin's Passage - Italian Windows CD (from glorifindel)
-	// SCI interpreter version 2.100.002 (just a guess)
+	// Torin's Passage (Multilingual) - Italian Windows CD (from glorifindel)
+	// SCI interpreter version 2.100.002
 	{"torin", "", {
 		{"resmap.000", 0, "bb3b0b22ff08df54fbe2d06263409be6", 9799},
 		{"ressci.000", 0, "693a259d346c9360f4a0c11fdaae430a", 55973887},
 		AD_LISTEND},
 	 	Common::IT_ITA, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
+
+	// Torin's Passage - French Windows (from LePhilousophe)
+	// SCI interpreter version 2.100.002
+	{"torin", "", {
+		{"resmap.000", 0, "66ed46e3e56f487e688d52f05b33d0ba", 9787},
+		{"ressci.000", 0, "118f9bec04bfe17c4f87bbb5ddb43c18", 56126981},
+		AD_LISTEND},
+	 	Common::FR_FRA, Common::kPlatformWindows, ADGF_UNSTABLE, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI)	},
 #endif // ENABLE_SCI32
 
 	// SCI Fanmade Games


Commit: 15306bc554b926e7d50f6a443766065e684557f3
    https://github.com/scummvm/scummvm/commit/15306bc554b926e7d50f6a443766065e684557f3
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-06-11T11:17:19-07:00

Commit Message:
SCI: Return the default value for unknown configuration settings

Based on a patch by LePhilousophe

Changed paths:
    engines/sci/engine/kmisc.cpp



diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp
index f243cf2..1cbaf07 100644
--- a/engines/sci/engine/kmisc.cpp
+++ b/engines/sci/engine/kmisc.cpp
@@ -396,18 +396,17 @@ reg_t kGetConfig(EngineState *s, int argc, reg_t *argv) {
 reg_t kGetSierraProfileInt(EngineState *s, int argc, reg_t *argv) {
 	Common::String category = s->_segMan->getString(argv[0]);	// always "config"
 	category.toLowercase();
-	if (category != "config")
-		error("GetSierraProfileInt: category isn't 'config', it's '%s'", category.c_str());
-
 	Common::String setting = s->_segMan->getString(argv[1]);
 	setting.toLowercase();
-	if (setting != "videospeed")
-		error("GetSierraProfileInt: setting isn't 'videospeed', it's '%s'", setting.c_str());
+	// The third parameter is the default value returned if the configuration key is missing
 
-	// The third parameter is 425 (the default if the configuration key is missing)
+	if (category == "config" && setting == "videospeed") {
+		// We return the same fake value for videospeed as with kGetConfig
+		return make_reg(0, 500);
+	}
 
-	// We return the same fake value for videospeed as with kGetConfig
-	return make_reg(0, 500);
+	warning("kGetSierraProfileInt: Returning default value %d for unknown setting %s.%s", argv[2].toSint16(), category.c_str(), setting.c_str());
+	return argv[2];
 }
 
 #endif


Commit: ea06210b92a45f8fca6b9be19057bcd607988ee7
    https://github.com/scummvm/scummvm/commit/ea06210b92a45f8fca6b9be19057bcd607988ee7
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-06-11T11:17:21-07:00

Commit Message:
SCI: Add support for variable selectors in kListFirstTrue / kListAllTrue

This is used by Torin's Passage (e.g. when trying to open the menu).
Based on a slightly modified patch by LePhilousophe

Changed paths:
    engines/sci/engine/klists.cpp



diff --git a/engines/sci/engine/klists.cpp b/engines/sci/engine/klists.cpp
index 2a33df2..5a608af 100644
--- a/engines/sci/engine/klists.cpp
+++ b/engines/sci/engine/klists.cpp
@@ -575,8 +575,11 @@ reg_t kListFirstTrue(EngineState *s, int argc, reg_t *argv) {
 
 		// First, check if the target selector is a variable
 		if (lookupSelector(s->_segMan, curObject, slc, &address, NULL) == kSelectorVariable) {
-			// Can this happen with variable selectors?
-			error("kListFirstTrue: Attempted to access a variable selector");
+			// If it's a variable selector, check its value.
+			// Example: script 64893 in Torin, MenuHandler::isHilited checks
+			// all children for variable selector 0x03ba (bHilited).
+			if (!readSelector(s->_segMan, curObject, slc).isNull())
+				return curObject;
 		} else {
 			invokeSelector(s, curObject, slc, argc, argv, argc - 2, argv + 2);
 
@@ -609,16 +612,16 @@ reg_t kListAllTrue(EngineState *s, int argc, reg_t *argv) {
 
 		// First, check if the target selector is a variable
 		if (lookupSelector(s->_segMan, curObject, slc, &address, NULL) == kSelectorVariable) {
-			// Can this happen with variable selectors?
-			error("kListAllTrue: Attempted to access a variable selector");
+			// If it's a variable selector, check its value
+			s->r_acc = readSelector(s->_segMan, curObject, slc);
 		} else {
 			invokeSelector(s, curObject, slc, argc, argv, argc - 2, argv + 2);
-
-			// Check if the result isn't true
-			if (s->r_acc.isNull())
-				break;
 		}
 
+		// Check if the result isn't true
+		if (s->r_acc.isNull())
+			break;
+
 		curNode = s->_segMan->lookupNode(nextNode);
 	}
 






More information about the Scummvm-git-logs mailing list