[Scummvm-cvs-logs] scummvm master -> 3574235ba4b3888493bd978ff7fe5bc462072870

bluegr md5 at scummvm.org
Mon Feb 28 21:35:20 CET 2011


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

Summary:
7c10e4e3d8 SWORD2: Silence an MSVC warning (false positive)
9fb1cbfc4e SCI: Added CD flags to the CD versions of LSL6
194081e7ae SCI: Removed several workarounds which are no longer needed, after the changes regarding hunk pointers in r0d555c4
3574235ba4 SCI: Removed the script patch for the scrubbing scene. The crash no longer occurs with the latest fixes to kDoBresen


Commit: 7c10e4e3d8a5bb6b5c6455ee9c142bdf6381ae13
    https://github.com/scummvm/scummvm/commit/7c10e4e3d8a5bb6b5c6455ee9c142bdf6381ae13
Author: md5 (md5 at scummvm.org)
Date: 2011-02-28T12:23:32-08:00

Commit Message:
SWORD2: Silence an MSVC warning (false positive)

Changed paths:
    engines/sword2/animation.cpp



diff --git a/engines/sword2/animation.cpp b/engines/sword2/animation.cpp
index c47b73e..8d1a983 100644
--- a/engines/sword2/animation.cpp
+++ b/engines/sword2/animation.cpp
@@ -218,7 +218,7 @@ void MoviePlayer::drawTextObject(uint32 index, byte *screen, uint16 pitch) {
 		uint16 height = text->_textSprite.h;
 
 		// Resize text sprites for PSX version
-		byte *psxSpriteBuffer;
+		byte *psxSpriteBuffer = 0;
 		if (Sword2Engine::isPsx()) {
 			height *= 2;
 			psxSpriteBuffer = (byte *)malloc(width * height);


Commit: 9fb1cbfc4ec4c826031de7a55015001a715bb550
    https://github.com/scummvm/scummvm/commit/9fb1cbfc4ec4c826031de7a55015001a715bb550
Author: md5 (md5 at scummvm.org)
Date: 2011-02-28T12:24:21-08:00

Commit Message:
SCI: Added CD flags to the CD versions of LSL6

Changed paths:
    engines/sci/detection_tables.h



diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 91e4139..0158aa4 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -1992,31 +1992,31 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH	},
 
-	// Larry 6 - English/German/French DOS CD - LORES
+	// Larry 6 - English/German/French DOS CD - LOWRES
 	// SCI interpreter version 1.001.115
 	{"lsl6", "", {
 		{"resource.map", 0, "0b91234b7112782962cb480b7791b6e2", 7263},
 		{"resource.000", 0, "57d5fe8bb9e044158514476ea7678eb0", 5754790},
 		AD_LISTEND},
-		Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NONE	},
+		Common::EN_ANY, Common::kPlatformPC, ADGF_CD, GUIO_NONE	},
 
-	// Larry 6 - German DOS CD - LORES (provided by richiefs in bug report #2670691)
+	// Larry 6 - German DOS CD - LOWRES (provided by richiefs in bug report #2670691)
 	// SCI interpreter version 1.001.115
 	{"lsl6", "", {
 		{"resource.map", 0, "bafe85f32738854135991d4324ad147e", 7268},
 		{"resource.000", 0, "f6cbc6da7b90ea135883e0759848ca2c", 5773160},
 		AD_LISTEND},
-		Common::DE_DEU, Common::kPlatformPC, 0, GUIO_NONE	},
+		Common::DE_DEU, Common::kPlatformPC, ADGF_CD, GUIO_NONE	},
 
-	// Larry 6 - French DOS CD - LORES (provided by richiefs in bug report #2670691)
+	// Larry 6 - French DOS CD - LOWRES (provided by richiefs in bug report #2670691)
 	// SCI interpreter version 1.001.115
 	{"lsl6", "", {
 		{"resource.map", 0, "97797ea775baaf18a1907d357d3c0ea6", 7268},
 		{"resource.000", 0, "f6cbc6da7b90ea135883e0759848ca2c", 5776092},
 		AD_LISTEND},
-		Common::FR_FRA, Common::kPlatformPC, 0, GUIO_NONE	},
+		Common::FR_FRA, Common::kPlatformPC, ADGF_CD, GUIO_NONE	},
 
-	// Larry 6 - Spanish DOS - LORES (from the Leisure Suit Larry Collection)
+	// Larry 6 - Spanish DOS - LOWRES (from the Leisure Suit Larry Collection)
 	// Executable scanning reports "1.001.113", VERSION file reports "1.000, 11.06.93, FIVE PATCHES ADDED TO DISK 6 ON 11-18-93"
 	{"lsl6", "", {
 		{"resource.map", 0, "633bf8f42170b6271019917c8009989b", 6943},


Commit: 194081e7ae79a632ce446653cc7119b74d3a6fac
    https://github.com/scummvm/scummvm/commit/194081e7ae79a632ce446653cc7119b74d3a6fac
Author: md5 (md5 at scummvm.org)
Date: 2011-02-28T12:32:41-08:00

Commit Message:
SCI: Removed several workarounds which are no longer needed, after the changes regarding hunk pointers in r0d555c4

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



diff --git a/engines/sci/engine/kscripts.cpp b/engines/sci/engine/kscripts.cpp
index 810e8a1..30c8b6a 100644
--- a/engines/sci/engine/kscripts.cpp
+++ b/engines/sci/engine/kscripts.cpp
@@ -56,14 +56,6 @@ reg_t kUnLoad(EngineState *s, int argc, reg_t *argv) {
 		ResourceType restype = g_sci->getResMan()->convertResType(argv[0].toUint16());
 		reg_t resnr = argv[1];
 
-		// WORKAROUND for a broken script in room 320 in Castle of Dr. Brain.
-		// Script 377 tries to free the hunk memory allocated for the saved area
-		// (underbits) beneath the pop up window, which results in having the
-		// window stay on screen even when it's closed. Ignore this request here.
-		if (restype == kResourceTypeMemory && g_sci->getGameId() == GID_CASTLEBRAIN &&
-			s->currentRoomNumber() == 320)
-			return s->r_acc;
-
 		if (restype == kResourceTypeMemory)
 			s->_segMan->freeHunkEntry(resnr);
 	}
diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index f43f26d..2b60b1a 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -44,8 +44,6 @@ const SciWorkaroundEntry arithmeticWorkarounds[] = {
 	{ 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_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
-	// TODO: The SQ5 workaround below may no longer be necessary
-	{ GID_SQ5,            200,  939,  0,                "Osc", "cycleDone",      -1,    0, { WORKAROUND_FAKE,   1 } }, // op_dpToa: when going back to bridge the crew is goofing off, we get an object as cycle count
 	SCI_WORKAROUNDENTRY_TERMINATOR
 };
 
@@ -274,10 +272,6 @@ const SciWorkaroundEntry kGraphSaveBox_workarounds[] = {
 
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
 const SciWorkaroundEntry kGraphRestoreBox_workarounds[] = {
-	{ GID_LSL6,           -1,    85,  0,          "rScroller", "hide",           -1,    0, { WORKAROUND_STILLCALL, 0 } }, // happens when restoring (sometimes), same as the one below
-	{ GID_LSL6,           -1,    85,  0,          "lScroller", "hide",           -1,    0, { WORKAROUND_STILLCALL, 0 } }, // happens when restoring (sometimes), same as the one below
-	{ GID_LSL6,           -1,    86,  0,             "LL6Inv", "show",           -1,    0, { WORKAROUND_STILLCALL, 0 } }, // happens when restoring, is called with hunk segment, but hunk is not allocated at that time
-	// ^^ TODO: check, if this is really a script error or an issue with our restore code
 	{ GID_LSL6,           -1,    86,  0,             "LL6Inv", "hide",           -1,    0, { WORKAROUND_STILLCALL, 0 } }, // happens during the game, gets called with 1 extra parameter
 	{ GID_SQ5,           850,   850,  0,                 NULL, "changeState",    -1,    0, { WORKAROUND_STILLCALL, 0 } }, // happens while playing Battle Cruiser (invalid segment) - bug #3056811
 	SCI_WORKAROUNDENTRY_TERMINATOR
@@ -317,7 +311,7 @@ const SciWorkaroundEntry kGraphRedrawBox_workarounds[] = {
 const SciWorkaroundEntry kGraphUpdateBox_workarounds[] = {
 	{ GID_ECOQUEST2,     100,   333,  0,        "showEcorder", "changeState",    -1,    0, { WORKAROUND_STILLCALL, 0 } }, // necessary workaround for our ecorder script patch, because there isn't enough space to patch the function
 	{ GID_PQ3,           202,   202,  0,            "MapEdit", "movePt",         -1,    0, { WORKAROUND_STILLCALL, 0 } }, // when plotting crimes, gets called with 2 extra parameters - bug #3038077
-	{ GID_PQ3,           202,   202,  0,            "MapEdit",  "addPt",         -1,    0, { WORKAROUND_STILLCALL, 0 } }, // when plotting crimes, gets called with 2 extra parameters - bug #3038077
+	{ GID_PQ3,           202,   202,  0,            "MapEdit", "addPt",          -1,    0, { WORKAROUND_STILLCALL, 0 } }, // when plotting crimes, gets called with 2 extra parameters - bug #3038077
 	SCI_WORKAROUNDENTRY_TERMINATOR
 };
 
@@ -331,7 +325,7 @@ const SciWorkaroundEntry kIsObject_workarounds[] = {
 
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
 const SciWorkaroundEntry kMemory_workarounds[] = {
-	{ GID_LAURABOW2,      -1,   999,  0,                   "", "export 6",       -1,    0, { WORKAROUND_FAKE,    0 } }, // during the intro, when exiting the train, talking to Mr. Augustini, etc. - bug #3034490
+	{ GID_LAURABOW2,      -1,   999,  0,                   "", "export 6",       -1,    0, { WORKAROUND_FAKE,    0 } }, // during the intro, when exiting the train (room 160), talking to Mr. Augustini, etc. - bug #3034490
 	SCI_WORKAROUNDENTRY_TERMINATOR
 };
 
@@ -362,7 +356,7 @@ const SciWorkaroundEntry kSetCursor_workarounds[] = {
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
 const SciWorkaroundEntry kSetPort_workarounds[] = {
 	{ GID_LSL6,          740,   740,  0,              "rm740", "drawPic",        -1,    0, { WORKAROUND_IGNORE,    0 } }, // ending scene, is called with additional 3 (!) parameters
-	{ GID_QFG3,          830,   830,  0,        "portalOpens", "changeState",    -1,    0, { WORKAROUND_IGNORE,    0 } }, // when the portal appears during the end, bug #3040844
+	{ GID_QFG3,          830,   830,  0,        "portalOpens", "changeState",    -1,    0, { WORKAROUND_IGNORE,    0 } }, // when the portal appears during the end, gets called with 4 parameters (bug #3040844)
 	SCI_WORKAROUNDENTRY_TERMINATOR
 };
 
@@ -387,19 +381,13 @@ const SciWorkaroundEntry kStrLen_workarounds[] = {
 
 //    gameID,           room,script,lvl,          object-name, method-name,    call,index,                workaround
 const SciWorkaroundEntry kUnLoad_workarounds[] = {
-	// TODO: Some of these workarounds for invalid references can now be removed, test which ones
-	{ GID_ECOQUEST,      380,    61,  0,              "gotIt", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // after talking to the dolphin the first time
-	{ GID_ECOQUEST,      380,    69,  0,   "lookAtBlackBoard", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // German version, when closing the blackboard closeup in the dolphin room - bug #3098353
-	{ GID_LAURABOW2,       1,     1,  0,           "sCartoon", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // DEMO: during the intro, a 3rd parameter is passed by accident - bug #3034902
-	{ GID_LAURABOW2,       2,     2,  0,           "sCartoon", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // DEMO: during the intro, a 3rd parameter is passed by accident - bug #3034902
-	{ GID_LAURABOW2,       4,     4,  0,           "sCartoon", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // DEMO: inside the museum, a 3rd parameter is passed by accident - bug #3034902
-	{ GID_LAURABOW2,       6,     6,  0,           "sCartoon", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // DEMO: after the murder, a 3rd parameter is passed by accident - bug #3034902
-	{ GID_LAURABOW2,       7,     7,  0,           "sCartoon", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // DEMO: after the logo is shown, a 3rd parameter is passed by accident - bug #3034902
+	{ GID_ECOQUEST,      380,    61,  0,              "gotIt", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // CD version: after talking to the dolphin the first time, a 3rd parameter is passed by accident
+	{ GID_ECOQUEST,      380,    69,  0,   "lookAtBlackBoard", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // German version, when closing the blackboard closeup in the dolphin room, a 3rd parameter is passed by accident - bug #3098353
+	{ GID_LAURABOW2,      -1,     1,  0,           "sCartoon", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // DEMO: during the intro, a 3rd parameter is passed by accident - bug #3034902
 	{ GID_LSL6,          130,   130,  0,    "recruitLarryScr", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // during intro, a 3rd parameter is passed by accident
 	{ GID_LSL6,          740,   740,  0,        "showCartoon", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // during ending, 4 additional parameters are passed by accident
 	{ GID_LSL6HIRES,     130,   130,  0,    "recruitLarryScr", "changeState",    -1,    0, { WORKAROUND_IGNORE, 0 } }, // during intro, a 3rd parameter is passed by accident
 	{ GID_SQ1,            43,   303,  0,            "slotGuy", "dispose",        -1,    0, { WORKAROUND_IGNORE, 0 } }, // when leaving ulence flats bar, parameter 1 is not passed - script error
-	{ GID_SQ3,             2,   998,  0,               "View", "delete",         -1,    0, { WORKAROUND_IGNORE, 0 } }, // clicking the mouse button during the intro, after the escape pod gets pulled into the garbage freighter, the reference is invalid - bug #3050856
 	SCI_WORKAROUNDENTRY_TERMINATOR
 };
 


Commit: 3574235ba4b3888493bd978ff7fe5bc462072870
    https://github.com/scummvm/scummvm/commit/3574235ba4b3888493bd978ff7fe5bc462072870
Author: md5 (md5 at scummvm.org)
Date: 2011-02-28T12:33:45-08:00

Commit Message:
SCI: Removed the script patch for the scrubbing scene. The crash no longer occurs with the latest fixes to kDoBresen

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



diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 7431707..8c622b1 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -586,7 +586,7 @@ const SciScriptSignature larry6Signatures[] = {
 };
 
 // ===========================================================================
-// rm560::doit was supposed to close the painting, when heimlich enters the
+// rm560::doit was supposed to close the painting, when Heimlich enters the
 //  room. The code is buggy, so it actually closes the painting, when heimlich
 //  is not in the room. We fix that.
 const byte laurabow2SignaturePaintingClosing[] = {
@@ -912,55 +912,6 @@ const SciScriptSignature sq4Signatures[] = {
 	SCI_SIGNATUREENTRY_TERMINATOR
 };
 
-// ===========================================================================
-// It seems to scripts warp ego outside the screen somehow (or maybe kDoBresen?)
-//  ego::mover is set to 0 and rm119::doit will crash in that case. This here
-//  fixes part of the problem and actually checks ego::mover to be 0 and skips
-//  TODO: this should get further investigated by waltervn and maybe properly
-//   patched. For now ego will shortly disappear and reappear a bit after
-//   this isn't good, but sierra sci also "crashed" (endless looped) so this
-//   is at least better than the original code
-const byte sq5SignatureScrubbing[] = {
-	19,
-	0x18,             // not
-	0x31, 0x37,       // bnt 37
-	0x78,             // push1 (selector x)
-	0x76,             // push0
-	0x39, 0x38,       // pushi 38 (selector mover)
-	0x76,             // push0
-	0x81, 0x00,       // lag 00
-	0x4a, 0x04,       // send 04 - read ego::mover
-	0x4a, 0x04,       // send 04 - read ego::mover::x
-	0x36,             // push
-	0x34, 0xa0, 0x00, // ldi 00a0
-	0x1c,             // ne?
-	0
-};
-
-const uint16 sq5PatchScrubbing[] = {
-	0x18,             // not
-	0x31, 0x37,       // bnt 37
-//	0x2f, 0x38,       // bt 37 (would save another byte, isn't needed
-	0x39, 0x38,       // pushi 38 (selector mover)
-	0x76,             // push0
-	0x81, 0x00,       // lag 00
-	0x4a, 0x04,       // send 04 - read ego::mover
-	0x31, 0x2e,       // bnt 2e (jump if ego::mover is 0)
-	0x78,             // push1 (selector x)
-	0x76,             // push0
-	0x4a, 0x04,       // send 04 - read ego::mover::x
-	0x39, 0xa0,       // pushi a0 (saving 2 bytes)
-	0x1c,             // ne?
-	PATCH_END
-};
-
-//    script, description,                                      magic DWORD,                                  adjust
-const SciScriptSignature sq5Signatures[] = {
-	{    119, "scrubbing send crash",                        1, PATCH_MAGICDWORD(0x18, 0x31, 0x37, 0x78),     0, sq5SignatureScrubbing, sq5PatchScrubbing },
-	SCI_SIGNATUREENTRY_TERMINATOR
-};
-
-
 // will actually patch previously found signature area
 void Script::applyPatch(const uint16 *patch, byte *scriptData, const uint32 scriptSize, int32 signatureOffset) {
 	byte orgData[PATCH_VALUELIMIT];
@@ -1095,9 +1046,6 @@ void Script::matchSignatureAndPatch(uint16 scriptNr, byte *scriptData, const uin
 	case GID_SQ4:
 		signatureTable = sq4Signatures;
 		break;
-	case GID_SQ5:
-		signatureTable = sq5Signatures;
-		break;
 	default:
 		break;
 	}






More information about the Scummvm-git-logs mailing list