[Scummvm-cvs-logs] scummvm master -> 79e08c68acc1b86b6bede08a9c4f74620f62e7ea

sev- sev at scummvm.org
Wed Jul 13 13:54:16 CEST 2011


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

Summary:
10536e285c SCUMM: Fix bug #3306145: INDY3: EGA version script bugs
79e08c68ac KYRA: Add detection for Russian versions of Kyra1 & LoL


Commit: 10536e285c02de27fe3cdb703bebc461be9277c5
    https://github.com/scummvm/scummvm/commit/10536e285c02de27fe3cdb703bebc461be9277c5
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2011-07-13T04:33:51-07:00

Commit Message:
SCUMM: Fix bug #3306145: INDY3: EGA version script bugs

Based on a patch presented in the bugreport. Fixes several bugs
connected with calcualting IQ points in Amiga versions of Indy3.

Changed paths:
    engines/scumm/script_v4.cpp
    engines/scumm/script_v5.cpp



diff --git a/engines/scumm/script_v4.cpp b/engines/scumm/script_v4.cpp
index 1302c8c..8340f62 100644
--- a/engines/scumm/script_v4.cpp
+++ b/engines/scumm/script_v4.cpp
@@ -68,6 +68,18 @@ void ScummEngine_v4::o4_ifState() {
 	int a = getVarOrDirectWord(PARAM_1);
 	int b = getVarOrDirectByte(PARAM_2);
 
+	// WORKAROUND bug #3306145 (also occurs in original): Some old versions of
+	// Indy3 sometimes fail to allocate IQ points correctly. To quote:
+	// "About the points error leaving Castle Brunwald: It seems to "reversed"!
+	// When you get caught, free yourself and escape, you get 25 IQ points even
+	// though you're not supposed to. However if you escape WITHOUT getting
+	// caught, you get 0 IQ points (supposed to get 25 IQ points)."
+	// This workaround is meant to address that.
+	if (_game.id == GID_INDY3 && a == 367 &&
+	    vm.slot[_currentScript].number == 363 && _currentRoom == 25) {
+		b = 0;
+	}
+
 	jumpRelative(getState(a) == b);
 }
 
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index a6cf504..02c8d97 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -2095,6 +2095,20 @@ void ScummEngine_v5::o5_startScript() {
 	if (_game.id == GID_ZAK && _game.platform == Common::kPlatformFMTowns && script == 171)
 		return;
 
+	// WORKAROUND bug #3306145 (also occurs in original): Some old versions of
+	// Indy3 sometimes fail to allocate IQ points correctly. To quote:
+	// "In the Amiga version you get the 15 points for puzzle 30 if you give the
+	// book or KO the guy. The PC version correctly gives 10 points for puzzle
+	// 29 for KO and 15 for puzzle 30 when giving the book."
+	// This workaround is meant to address that.
+	if (_game.id == GID_INDY3 && vm.slot[_currentScript].number == 106 && script == 125 && VAR(115) != 2) {
+		// If Var[115] != 2, then:
+		// Correct: startScript(125,[29,10]);
+		// Wrong : startScript(125,[30,15]);
+		data[0] = 29;
+		data[1] = 10;
+	}
+
 	// Method used by original games to skip copy protection scheme
 	if (!_copyProtection) {
 		// Copy protection was disabled in LucasArts Classic Adventures (PC Disk)


Commit: 79e08c68acc1b86b6bede08a9c4f74620f62e7ea
    https://github.com/scummvm/scummvm/commit/79e08c68acc1b86b6bede08a9c4f74620f62e7ea
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2011-07-13T04:39:31-07:00

Commit Message:
KYRA: Add detection for Russian versions of Kyra1 & LoL

Changed paths:
    engines/kyra/detection_tables.h



diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index 47a3c43..165eddf 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -99,6 +99,18 @@ const KYRAGameDescription adGameDescs[] = {
 		{
 			"kyra1",
 			"Extracted",
+			AD_ENTRY1("GEMCUT.EMC", "689b62b7519215c1b2571d466c95624c"),
+			Common::RU_RUS,
+			Common::kPlatformPC,
+			ADGF_NO_FLAGS,
+			Common::GUIO_NOSPEECH | Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIPCSPK
+		},
+		KYRA1_FLOPPY_FLAGS
+	},
+	{
+		{
+			"kyra1",
+			"Extracted",
 			AD_ENTRY1("GEMCUT.EMC", "796e44863dd22fa635b042df1bf16673"),
 			Common::EN_ANY,
 			Common::kPlatformPC,
@@ -977,6 +989,24 @@ const KYRAGameDescription adGameDescs[] = {
 			"lol",
 			"CD",
 			{
+				{ "GENERAL.PAK", 0, "19354b0f464295c38c801d30588df062", -1 },
+				{ "L01.PAK", 0, "174d37f21e0336c5d91020f8c58717ef", -1 },
+				{ "VOC.PAK", 0, "eb398f09ba3321d872b6174a68a987d9", -1 },
+				{ 0, 0, 0, 0 }
+			},
+			Common::RU_RUS,
+			Common::kPlatformPC,
+			ADGF_DROPLANGUAGE | ADGF_CD,
+			Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK
+		},
+		LOL_CD_FLAGS
+	},
+
+	{
+		{
+			"lol",
+			"CD",
+			{
 				{ "GENERAL.PAK", 0, "05a4f588fb81dc9c0ef1f2ec20d89e24", -1 },
 				{ "L01.PAK", 0, "759a0ac26808d77ea968bd392355ba1d", -1 },
 				{ 0, 0, 0, 0 }






More information about the Scummvm-git-logs mailing list