[Scummvm-cvs-logs] scummvm master -> 831e1b27dc5b114eaceb49bad08576b3bdf81ab5

bluegr md5 at scummvm.org
Fri Jul 27 00:32:40 CEST 2012


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:
7eded163d8 SCI: Add support for kCD(0) with a parameter
831e1b27dc SCI: Add a workaround for a bug in Phantasmagoria 1


Commit: 7eded163d8088d97f65e482f63e9ecd194d00c68
    https://github.com/scummvm/scummvm/commit/7eded163d8088d97f65e482f63e9ecd194d00c68
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-07-26T15:30:37-07:00

Commit Message:
SCI: Add support for kCD(0) with a parameter

It's now possible to start a chapter in Phantasmagoria 1

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



diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp
index 7862762..f7cc4f4 100644
--- a/engines/sci/engine/kfile.cpp
+++ b/engines/sci/engine/kfile.cpp
@@ -197,8 +197,15 @@ reg_t kCD(EngineState *s, int argc, reg_t *argv) {
 	// TODO: Stub
 	switch (argv[0].toUint16()) {
 	case 0:
-		// Return whether the contents of disc argv[1] is available.
-		return TRUE_REG;
+		if (argc == 1) {
+			// Check if a disc is in the drive
+			return TRUE_REG;
+		} else {
+			// Check if the specified disc is in the drive
+			// and return the current disc number. We just
+			// return the requested disc number.
+			return argv[1];
+		}
 	case 1:
 		// Return the current CD number
 		return make_reg(0, 1);


Commit: 831e1b27dc5b114eaceb49bad08576b3bdf81ab5
    https://github.com/scummvm/scummvm/commit/831e1b27dc5b114eaceb49bad08576b3bdf81ab5
Author: Filippos Karapetis (md5 at scummvm.org)
Date: 2012-07-26T15:31:12-07:00

Commit Message:
SCI: Add a workaround for a bug in Phantasmagoria 1

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



diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index 821549b..fea3aed 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -40,6 +40,7 @@ const SciWorkaroundEntry arithmeticWorkarounds[] = {
 	{ GID_MOTHERGOOSE256,  -1,  999,  0,              "Event", "new",            -1,    0, { WORKAROUND_FAKE,   0 } }, // op_and: constantly during the game (SCI1 version)
 	{ GID_MOTHERGOOSE256,  -1,    4,  0,              "rm004", "doit",           -1,    0, { WORKAROUND_FAKE,   0 } }, // op_or: when going north and reaching the castle (rooms 4 and 37) - bug #3038228
 	{ GID_MOTHERGOOSEHIRES,90,   90,  0,      "newGameButton", "select",         -1,    0, { WORKAROUND_FAKE,   0 } }, // op_ge: MUMG Deluxe, when selecting "New Game" in the main menu. It tries to compare an integer with a list. Needs to return false for the game to continue.
+	{ GID_PHANTASMAGORIA, 902,    0,  0,                   "", "export 7",       -1,    0, { WORKAROUND_FAKE,   0 } }, // op_shr: when starting a chapter in Phantasmagoria
 	{ GID_QFG1VGA,        301,  928,  0,              "Blink", "init",           -1,    0, { WORKAROUND_FAKE,   0 } }, // op_div: when entering the inn, gets called with 1 parameter, but 2nd parameter is used for div which happens to be an object
 	{ GID_QFG2,           200,  200,  0,              "astro", "messages",       -1,    0, { WORKAROUND_FAKE,   0 } }, // op_lsi: when getting asked for your name by the astrologer bug #3039879
 	{ GID_GK1,            800,64992,  0,                "Fwd", "doit",           -1,    0, { WORKAROUND_FAKE,   1 } }, // op_gt: when Mosely finds Gabriel and Grace near the end of the game, compares the Grooper object with 7






More information about the Scummvm-git-logs mailing list