[Scummvm-cvs-logs] SF.net SVN: scummvm:[42118] scummvm/trunk/engines/sci

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Sun Jul 5 13:08:53 CEST 2009


Revision: 42118
          http://scummvm.svn.sourceforge.net/scummvm/?rev=42118&view=rev
Author:   thebluegr
Date:     2009-07-05 11:08:53 +0000 (Sun, 05 Jul 2009)

Log Message:
-----------
SCI1 games with absolute parameters to lofs instructions are automatically detected now. Removed the GF_SCI1_LOFSABSOLUTE game flag

Modified Paths:
--------------
    scummvm/trunk/engines/sci/detection.cpp
    scummvm/trunk/engines/sci/engine/game.cpp
    scummvm/trunk/engines/sci/engine/kernel.cpp
    scummvm/trunk/engines/sci/engine/kernel.h
    scummvm/trunk/engines/sci/engine/script.cpp
    scummvm/trunk/engines/sci/engine/vm.cpp
    scummvm/trunk/engines/sci/engine/vm.h
    scummvm/trunk/engines/sci/sci.cpp
    scummvm/trunk/engines/sci/sci.h

Modified: scummvm/trunk/engines/sci/detection.cpp
===================================================================
--- scummvm/trunk/engines/sci/detection.cpp	2009-07-05 10:34:43 UTC (rev 42117)
+++ scummvm/trunk/engines/sci/detection.cpp	2009-07-05 11:08:53 UTC (rev 42118)
@@ -34,9 +34,6 @@
 #define GF_FOR_SCI0_BEFORE_395 (GF_SCI0_OLD | GF_SCI0_OLDGETTIME)
 #define GF_FOR_SCI0_BEFORE_629 GF_SCI0_OLDGETTIME
 
-// SCI1
-#define GF_FOR_SCI1_200_OR_LATER GF_SCI1_LOFSABSOLUTE
-
 // Titles of the games
 static const PlainGameDescriptor SciGameTitles[] = {
 	{"sci",             "Sierra SCI Game"},
@@ -146,7 +143,7 @@
 		{"resource.002", 0, "d226d7d3b4f77c4a566913fc310487fc", 792380},
 		{"resource.003", 0, "d226d7d3b4f77c4a566913fc310487fc", 464348},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -161,7 +158,7 @@
 		{"resource.002", 0, "85e51acb5f9c539d66e3c8fe40e17da5", 826309},
 		{"resource.003", 0, "85e51acb5f9c539d66e3c8fe40e17da5", 493638},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -187,11 +184,23 @@
 		{"resource.001", 0, "d2f5a1be74ed963fa849a76892be5290", 794832},
 		{"resource.002", 0, "c0c29c51af66d65cb53f49e785a2d978", 1280907},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
 
+	// Castle of Dr. Brain - English DOS Floppy 1.1
+	{{"castlebrain", "", {
+		{"resource.map", 0, "f77728304c70017c54793eb6ca648174", 2745},
+		{"resource.000", 0, "27ec5fa09cd12a7fd16e86d96a2ed245", 347071},
+		{"resource.001", 0, "13e81e1839cd7b216d2bb5615c1ca160", 796776},
+		{"resource.002", 0, "930e416bec196b9703a331d81b3d66f2", 1283812},
+		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
+		0,
+		SCI_VERSION_AUTODETECT,
+		SCI_VERSION_1
+	},
+
 	// Castle of Dr. Brain - Spanish DOS
 	// SCI interpreter version 1.000.510
 	{{"castlebrain", "", {
@@ -199,7 +208,7 @@
 		{"resource.000", 0, "27ec5fa09cd12a7fd16e86d96a2ed245", 1197694},
 		{"resource.001", 0, "735be4e58957180cfc807d5e18fdffcd", 1433302},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -381,7 +390,7 @@
 		{"resource.005", 0, "1c3804e56b114028c5873a35c2f06d13", 653002},
 		{"resource.006", 0, "f9487732289a4f4966b4e34eea413325", 842817},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -398,7 +407,7 @@
 	      {"resource.005", 0, "d036df0872f2db19bca34601276be2d7", 1154950},
 	      {"resource.006", 0, "b367a6a59f29ee30dde1d88a5a41152d", 1042966},
 	      {NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-	      GF_FOR_SCI1_200_OR_LATER,
+	      0,
 	      SCI_VERSION_AUTODETECT,
 	      SCI_VERSION_1
 	},
@@ -415,7 +424,7 @@
 		{"resource.004", 0, "9cfce07e204a329e94fda8b5657621da", 1261462},
 		{"resource.005", 0, "21ebe6b39b57a73fc449f67f013765aa", 1284720},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -431,7 +440,7 @@
 		{"resource.004", 0, "9cfce07e204a329e94fda8b5657621da", 1260237},
 		{"resource.005", 0, "21ebe6b39b57a73fc449f67f013765aa", 1284609},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -448,7 +457,7 @@
 	      {"resource.005", 0, "58942b1aa6d6ffeb66e9f8897fd4435f", 469243},
 	      {"resource.006", 0, "8c767b3939add63d11274065e46aad04", 713158},
 	      {NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-	      GF_FOR_SCI1_200_OR_LATER | GF_SCI1_EGA,
+	      GF_SCI1_EGA,
 	      SCI_VERSION_AUTODETECT,
 	      SCI_VERSION_1
 	},
@@ -476,7 +485,7 @@
 		{"resource.005", 0, "d036df0872f2db19bca34601276be2d7", 1176914},
 		{"resource.006", 0, "b367a6a59f29ee30dde1d88a5a41152d", 1123585},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -513,7 +522,7 @@
 		{"resource.002", 0, "28fe9b4f0567e71feb198bc9f3a2c605", 1241816},
 		{"resource.003", 0, "f3146df0ad4297f5ce35aa8c4753bf6c", 586832},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -527,7 +536,7 @@
 		{"resource.002", 0, "323b3b12f43d53f27d259beb225f0aa7", 1129316},
 		{"resource.003", 0, "83ac03e4bddb2c1ac2d36d2a587d0536", 1145616},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -541,7 +550,7 @@
 		{"resource.002", 0, "02d7d0411f7903aacb3bc8b0f8ca8a9a", 1202581},
 		{"resource.003", 0, "84dd11b6825255671c703aee5ceff620", 1175835},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -556,7 +565,7 @@
 		{"resource.002", 0, "2d21a1d2dcbffa551552e3e0725d2284", 1186033},
 		{"resource.003", 0, "84dd11b6825255671c703aee5ceff620", 1174993},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -873,7 +882,7 @@
 		{"resource.000", 0, "595b6039ea1356e7f96a52c58eedcf22", 355791},
 		{"resource.001", 0, "143df8aef214a2db34c2d48190742012", 632273},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -886,7 +895,7 @@
 		{"resource.map", 0, "0d06cacc87dc21a08cd017e73036f905", 735},
 		{"resource.001", 0, "24db2bccda0a3c43ac4a7b5edb116c7e", 797678},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -899,7 +908,7 @@
 		{"resource.000", 0, "6ef28cac094dcd97fdb461662ead6f92", 541845},
 		{"resource.001", 0, "0a98a268ee99b92c233a0d7187c1f0fa", 845795},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1110,7 +1119,7 @@
 		{"resource.000", 0, "449471bfd77be52f18a3773c7f7d843d", 571368},
 		{"resource.001", 0, "b45a581ff8751e052c7e364f58d3617f", 16800210},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NONE},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1481,7 +1490,7 @@
 		{"resource.002", 0, "5790ac0505f7ca98d4567132b875eb1e", 681041},
 		{"resource.003", 0, "4a34c3367c2fe7eb380d741374da1989", 572251},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1494,7 +1503,7 @@
 		{"resource.001", 0, "ec20246209d7b19f38989261e5c8f5b8", 1111226},
 		{"resource.002", 0, "85d6935ef77e6b0e16bc307640a0d913", 1088312},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1507,7 +1516,7 @@
 		{"resource.001", 0, "d34cadb11e1aefbb497cf91bc1d3baa7", 1114688},
 		{"resource.002", 0, "85b030bb66d5342b0a068f1208c431a8", 1078443},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1534,7 +1543,7 @@
 		{"resource.002", 0, "3fe2a3aec0ed53c7d6db1845a67e3aa2", 1095908},
 		{"resource.003", 0, "ac175df0ea9a2cba57f0248651856d27", 376556},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1548,7 +1557,7 @@
 		{"resource.001", 0, "bc8ca10c807515d959cbd91f9ba47735", 1123759},
 		{"resource.002", 0, "b7409ab32bc3bee2d6cce887cd33f2b6", 1092160},
 		{NULL, 0, NULL, 0}}, Common::RU_RUS, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1715,7 +1724,7 @@
 		{"resource.005", 0, "f8b2d1137bb767e5d232056b99dd69eb", 623621},
 		{"resource.006", 0, "bafc64e3144f115dc58c6aee02de98fb", 715598},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1734,7 +1743,7 @@
 		{"resource.006", 0, "bafc64e3144f115dc58c6aee02de98fb", 754966},
 		{"resource.007", 0, "59eba83ad465b08d763b44f86afa86f6", 683135},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1763,7 +1772,7 @@
 		{"resource.006", 0, "dda27ce00682aa76198dac124bbbe334", 1024810},
 		{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 1030656},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1781,7 +1790,7 @@
 		{"resource.006", 0, "dda27ce00682aa76198dac124bbbe334", 1021774},
 		{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 993408},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1800,7 +1809,7 @@
 		{"resource.006", 0, "dda27ce00682aa76198dac124bbbe334", 946540},
 		{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 958842},
 		{NULL, 0, NULL, 0}}, Common::FR_FRA, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1819,7 +1828,7 @@
 		{"resource.006", 0, "dda27ce00682aa76198dac124bbbe334", 1015136},
 		{"resource.007", 0, "ac443fae1285fb359bf2b2bc6a7301ae", 987222},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -1830,7 +1839,7 @@
 		{"resource.map", 0, "a99776df795127f387cb35dae872d4e4", 5919},
 		{"resource.000", 0, "a8989a5a89e7d4f702b26b378c7a357a", 7001981},
 		{NULL, 0, NULL, 0}}, Common::IT_ITA, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -2156,7 +2165,7 @@
 		{"resource.map", 0, "5b457cbe5042f557e5b610148171f6c0", 1158},
 		{"resource.001", 0, "453ea81ef66a50cbe33ce06302afe47f", 229737},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -2327,7 +2336,7 @@
 		{"resource.003", 0, "630bfa65beb05f743552704ac2899dae", 759891},
 		{"resource.004", 0, "7b229fbdf30d670d0728cede3e984a7e", 838663},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -2344,7 +2353,7 @@
 		{"resource.004", 0, "6258d5dd85898d8e218eb8113ebc9059", 722738},
 		{"resource.005", 0, "6258d5dd85898d8e218eb8113ebc9059", 704485},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -2360,7 +2369,7 @@
 		{"resource.003", 0, "8791b9eef53edf77c2dac950142221d3", 1159791},
 		{"resource.004", 0, "1b91e891a3c60a941dac0eecdf83375b", 1143606},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -2373,7 +2382,7 @@
 		{"resource.000", 0, "277f97771f7a6d89677141f02da313d6", 65150},
 		{"resource.001", 0, "5c5a551b6c86cce2ee75becb90e0b586", 624411},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, ADGF_DEMO, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -2389,7 +2398,7 @@
 		{"resource.003", 0, "4836f460f4cfc8de61e2df4c45775504", 1180956},
 		{"resource.004", 0, "0c3eb84b9755852d9e795e0d5c9373c7", 1171760},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -2853,7 +2862,7 @@
 		{"resource.004", 0, "b25a1539c71701f7715f738c5037e9a6", 775515},
 		{"resource.005", 0, "640ffe1a9acde392cc33cc1b1a528328", 806324},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -2869,7 +2878,7 @@
 		{"resource.003", 0, "c47600e50c6fc591957ae0c5020ee7b8", 1213262},
 		{"resource.004", 0, "e19ea4ad131472f9238590f2e1d40289", 1203051},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -2897,7 +2906,7 @@
 		{"resource.004", 0, "9b78228ad4f9f335fedf74f1812dcfca", 513325},
 		{"resource.005", 0, "7d4ebcb745c0bf8fc42e4013f52ecd49", 1101812},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -2927,7 +2936,7 @@
 		{"resource.004", 0, "6d8f34090503ce937e7dbef6cb6cdb6a", 545053},
 		{"resource.005", 0, "6d8f34090503ce937e7dbef6cb6cdb6a", 687507},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_0,
 		SCI_VERSION_0
 	},
@@ -3012,7 +3021,7 @@
 		{"resource.005", 0, "3540d1cc84d674cf4b2c898b88a3b563", 790296},
 		{"resource.006", 0, "ade814bc4d56244c156d9e9bcfebbc11", 664085},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3029,7 +3038,7 @@
 		{"resource.005", 0, "10ee1709e6559c724676d058199b75b5", 818745},
 		{"resource.006", 0, "67fb188b191d88efe8414af6ea297b93", 672675},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformAmiga, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3041,7 +3050,7 @@
 		{"resource.map", 0, "a18088c8aceb06025dbc945f29e02935", 5124},
 		{"resource.000", 0, "e1f46832cd2458796028e054a0466031", 5502009},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3053,7 +3062,7 @@
 		{"resource.map", 0, "71ccf4f82ac4efb588731acfb7bf2603", 5646},
 		{"resource.000", 0, "e1f46832cd2458796028e054a0466031", 933928},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3070,7 +3079,7 @@
 		{"resource.004", 0, "ff9c87da3bc53473fdee8b9d3edbc93c", 1200631},
 		{"resource.005", 0, "e33019ac19f755ae33fbf49b4fc9066c", 1053294},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3087,7 +3096,7 @@
 		{"resource.005", 0, "47ee647b5b12232d27e63cc627c25899", 1156765},
 		{"resource.006", 0, "dfb023e4e2a1e7a00fa18f9ede72a91b", 924059},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3103,7 +3112,7 @@
 		{"resource.004", 0, "4277c61bed40a50dadc4b5a344520af2", 1251000},
 		{"resource.005", 0, "5f885abd335978e2fd4e5f886d7676c8", 1102880},
 		{NULL, 0, NULL, 0}}, Common::IT_ITA, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3116,7 +3125,7 @@
 		{"resource.001", 0, "454684e3a7a68cbca073945e50778447", 1187088},
 		{"resource.002", 0, "6dc668326cc22cb9e8bd8ca9e68d2a66", 1181249},
 		{NULL, 0, NULL, 0}}, Common::JA_JPN, Common::kPlatformPC98, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER | GF_SCI1_EGA,
+		GF_SCI1_EGA,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3129,7 +3138,7 @@
 		{"resource.001", 0, "454684e3a7a68cbca073945e50778447", 1187088},
 		{"resource.002", 0, "6dc668326cc22cb9e8bd8ca9e68d2a66", 1181249},
 		{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformPC98, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER | GF_SCI1_EGA,
+		GF_SCI1_EGA,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3157,7 +3166,7 @@
 		{"resource.004", 0, "776fba81c110d1908776232cbe190e20", 1253752},
 		{"resource.005", 0, "55fae26c2a92f16ef72c1e216e827c0f", 1098328},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NONE},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3172,7 +3181,7 @@
 		{"resource.002", 0, "74c62fa2146ff3b3b2ea2b3fb95b9af9", 1140801},
 		{"resource.003", 0, "42a307941edeb1a3be31daeb2e4be90b", 1088408},
 		{NULL, 0, NULL, 0}}, Common::ES_ESP, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3189,7 +3198,7 @@
 		{"resource.004", 0, "c06350184a490c10eb4585fff0aa3192", 1254368},
 		{"resource.005", 0, "b8d6efbd3235329bfe844c794097b2c9", 1098717},
 		{NULL, 0, NULL, 0}}, Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NOSPEECH},
-		GF_FOR_SCI1_200_OR_LATER,
+		0,
 		SCI_VERSION_AUTODETECT,
 		SCI_VERSION_1
 	},
@@ -3412,7 +3421,7 @@
 	FANMADE("The Legend of the Lost Jewel", "ba1bca315e3818c5626eda51bcfbcccf", 636, "9b0736d69924af0cff32a0f78db96855", 300398),
 
 	// FIXME: The vga demo does not have a resource.000/001 file.
-	//FANMADE_V("SCI VGA Demo", "00b1abd87bad356b90fcdfcb6132c26f", 8, "", 0, GF_FOR_SCI1_200_OR_LATER),
+	//FANMADE_V("SCI VGA Demo", "00b1abd87bad356b90fcdfcb6132c26f", 8, "", 0, 0),
 
 	{AD_TABLE_END_MARKER, 0, SCI_VERSION_AUTODETECT, SCI_VERSION_0}
 };

Modified: scummvm/trunk/engines/sci/engine/game.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/game.cpp	2009-07-05 10:34:43 UTC (rev 42117)
+++ scummvm/trunk/engines/sci/engine/game.cpp	2009-07-05 11:08:53 UTC (rev 42118)
@@ -377,7 +377,7 @@
 	s->bp_list = NULL; // No breakpoints defined
 	s->have_bp = 0;
 
-	if ((s->_flags & GF_SCI1_LOFSABSOLUTE) && s->_version < SCI_VERSION_1_1)
+	if (s->_kernel->hasLofsAbsolute())
 		s->seg_manager->setExportWidth(1);
 	else
 		s->seg_manager->setExportWidth(0);

Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp	2009-07-05 10:34:43 UTC (rev 42117)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp	2009-07-05 11:08:53 UTC (rev 42118)
@@ -365,6 +365,9 @@
 	// SCI0 games using old graphics functions (before version 0.000.502) did not have a
 	// curAngle selector
 	_oldGfxFunctions = (_selectorMap.curAngle == -1 && _resmgr->_sciVersion == SCI_VERSION_0);
+
+	// SCI1 games which use absolute lofs have the egoMoveSpeed selector
+	_hasLofsAbsolute = (_selectorMap.egoMoveSpeed != -1 && _resmgr->_sciVersion < SCI_VERSION_1_1);
 }
 
 Kernel::~Kernel() {

Modified: scummvm/trunk/engines/sci/engine/kernel.h
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.h	2009-07-05 10:34:43 UTC (rev 42117)
+++ scummvm/trunk/engines/sci/engine/kernel.h	2009-07-05 11:08:53 UTC (rev 42118)
@@ -92,6 +92,13 @@
 	 */
 	bool usesOldGfxFunctions() const { return _oldGfxFunctions; }
 
+	/**
+	 * Applies to all SCI1 versions after 1.000.200
+	 * In late SCI1 versions, the argument of lofs[as] instructions
+	 * is absolute rather than relative.
+	 */
+	bool hasLofsAbsolute() const { return _hasLofsAbsolute; }
+
 	// Script dissection/dumping functions
 	void dissectScript(int scriptNumber, Vocabulary *vocab);
 	void dumpScriptObject(char *data, int seeker, int objsize);
@@ -140,6 +147,7 @@
 
 	ResourceManager *_resmgr;
 	bool _oldGfxFunctions;
+	bool _hasLofsAbsolute;
 
 	// Kernel-related lists
 	/**

Modified: scummvm/trunk/engines/sci/engine/script.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/script.cpp	2009-07-05 10:34:43 UTC (rev 42117)
+++ scummvm/trunk/engines/sci/engine/script.cpp	2009-07-05 11:08:53 UTC (rev 42118)
@@ -205,6 +205,7 @@
 	FIND_SELECTOR(curAngle);
 	FIND_SELECTOR(sightAngle);
 	FIND_SELECTOR(setVol);
+	FIND_SELECTOR(egoMoveSpeed);
 }
 
 void Kernel::dumpScriptObject(char *data, int seeker, int objsize) {

Modified: scummvm/trunk/engines/sci/engine/vm.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.cpp	2009-07-05 10:34:43 UTC (rev 42117)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2009-07-05 11:08:53 UTC (rev 42118)
@@ -1193,7 +1193,7 @@
 			if (s->_version >= SCI_VERSION_1_1) {
 				s->r_acc.offset = opparams[0] + local_script->script_size;
 			} else {
-				if (s->_flags & GF_SCI1_LOFSABSOLUTE)
+				if (s->_kernel->hasLofsAbsolute())
 					s->r_acc.offset = opparams[0];
 				else
 					s->r_acc.offset = xs->addr.pc.offset + opparams[0];
@@ -1210,7 +1210,7 @@
 		case 0x3a: // lofss
 			r_temp.segment = xs->addr.pc.segment;
 
-			if (s->_flags & GF_SCI1_LOFSABSOLUTE)
+			if (s->_kernel->hasLofsAbsolute())
 				r_temp.offset = opparams[0];
 			else
 				r_temp.offset = xs->addr.pc.offset + opparams[0];

Modified: scummvm/trunk/engines/sci/engine/vm.h
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.h	2009-07-05 10:34:43 UTC (rev 42117)
+++ scummvm/trunk/engines/sci/engine/vm.h	2009-07-05 11:08:53 UTC (rev 42118)
@@ -203,9 +203,10 @@
 	Selector printLang; /**< Used for i18n */
 	Selector subtitleLang;
 	Selector parseLang;
-	Selector curAngle;	 // Used to detect newer graphics functions semantics. 
-	Selector sightAngle; // Used to detect some SCI0/SCI01 games which need a SCI1 table
-	Selector setVol;	 // Used to detect newer sound semantics
+	Selector curAngle;	   // Used to detect newer graphics functions semantics. 
+	Selector sightAngle;   // Used to detect some SCI0/SCI01 games which need a SCI1 table
+	Selector setVol;	   // Used to detect newer sound semantics
+	Selector egoMoveSpeed; // Used to detect SCI1 games which use absolute values in lofs
 };
 
 // A reference to an object's variable.

Modified: scummvm/trunk/engines/sci/sci.cpp
===================================================================
--- scummvm/trunk/engines/sci/sci.cpp	2009-07-05 10:34:43 UTC (rev 42117)
+++ scummvm/trunk/engines/sci/sci.cpp	2009-07-05 11:08:53 UTC (rev 42118)
@@ -149,8 +149,7 @@
 	// Verify that we haven't got an invalid game detection entry
 	if (version < SCI_VERSION_1) {
 		// SCI0/SCI01
-		if (flags & GF_SCI1_EGA ||
-			flags & GF_SCI1_LOFSABSOLUTE) {
+		if (flags & GF_SCI1_EGA) {
 			error("This game entry is erroneous. It's marked as SCI0/SCI01, but it has SCI1 flags set");
 		}
 	} else if (version == SCI_VERSION_1) {
@@ -161,8 +160,7 @@
 			error("This game entry is erroneous. It's marked as SCI1, but it has SCI0 flags set");
 		}
 	} else if (version == SCI_VERSION_1_1 || version == SCI_VERSION_32) {
-		if (flags & GF_SCI1_EGA ||
-			flags & GF_SCI1_LOFSABSOLUTE) {
+		if (flags & GF_SCI1_EGA) {
 			error("This game entry is erroneous. It's marked as SCI1.1/SCI32, but it has SCI1 flags set");
 		}
 

Modified: scummvm/trunk/engines/sci/sci.h
===================================================================
--- scummvm/trunk/engines/sci/sci.h	2009-07-05 10:34:43 UTC (rev 42117)
+++ scummvm/trunk/engines/sci/sci.h	2009-07-05 11:08:53 UTC (rev 42118)
@@ -104,13 +104,7 @@
 	/*
 	 * Used to distinguish SCI1 EGA games
 	 */
-	GF_SCI1_EGA				= (1 << 2),
-
-	/* Applies to all SCI1 versions after 1.000.200
-     * In late SCI1 versions, the argument of lofs[as] instructions
-	 * is absolute rather than relative.
-	 */
-	GF_SCI1_LOFSABSOLUTE	= (1 << 3)
+	GF_SCI1_EGA				= (1 << 2)
 };
 
 class SciEngine : public Engine {


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list