[Scummvm-git-logs] scummvm master -> 15572c408b896bb5661878a9b1416be7fee3e2e0

bluegr noreply at scummvm.org
Sun Oct 9 08:23:24 UTC 2022


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:
effb129776 SCUMM: Make the dog sign colors in MI1 VGA CD closer to MI1 VGA floppy
b01d7d4d57 SCUMM: Exclude "Ultimate Talkie" MI1 from dog sign color workaround
15572c408b SCUMM: Exclude SEGA CD and FM Towns versions from dog sign workaround


Commit: effb1297762c87f526b46280a5f063d538a1b66b
    https://github.com/scummvm/scummvm/commit/effb1297762c87f526b46280a5f063d538a1b66b
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2022-10-09T11:23:19+03:00

Commit Message:
SCUMM: Make the dog sign colors in MI1 VGA CD closer to MI1 VGA floppy

The colors in the sign that tells you that the dogs are only sleeping
are much harder to read in the VGA CD version than in the VGA floppy
version. I assume these were not picked deliberately, but rather a
consequence of the palette being different. So this works around that by
temporarily remapping the palette for the sign object, and adjusting one
of the text colors to something close to the floppy version.

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


diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index fc862e425f8..a81f893429b 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -2227,6 +2227,21 @@ bool Gdi::drawStrip(byte *dstPtr, VirtScreen *vs, int x, int y, const int width,
 			_roomPalette[13] = 80;
 	}
 
+	// WORKAROUND: In the CD version of MI1, the sign about how the dogs
+	// are only sleeping has a dark blue background instead of white. This
+	// makes the sign harder to read, so temporarily remap the color while
+	// drawing it. The text is also slightly different, but that is taken
+	// care of elsewhere.
+
+	else if (_vm->_game.id == GID_MONKEY && _vm->_currentRoom == 36 && vs->number == kMainVirtScreen && y == 8 && x >= 7 && x <= 30 && height == 88 && _vm->_enableEnhancements) {
+		_roomPalette[47] = 15;
+
+		byte result = decompressBitmap(dstPtr, vs->pitch, smap_ptr + offset, height);
+
+		_roomPalette[47] = 47;
+		return result;
+	}
+
 	return decompressBitmap(dstPtr, vs->pitch, smap_ptr + offset, height);
 }
 
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 9f8ef437a88..b594ed6a39c 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -3260,6 +3260,16 @@ void ScummEngine_v5::decodeParseString() {
 			if (_game.id == GID_INDY3 && _game.platform == Common::kPlatformMacintosh && vm.slot[_currentScript].number == 134 && color == 0x8F)
 				color = 0x87;
 
+			// WORKAROUND: In the CD version of MI1, the text in
+			// the sign about the dogs only sleeping has the wrong
+			// color. We can't find an exact match to what the
+			// floppy version used, but we pick on that's as close
+			// as we can get.
+
+			else if (_game.id == GID_MONKEY && _currentRoom == 36 && vm.slot[_currentScript].number == 201 && color == 2 && _enableEnhancements) {
+				color = findClosestPaletteColor(_currentPalette, 256, 0, 171, 0);
+			}
+
 			_string[textSlot].color = color;
 			break;
 		case 2:		// SO_CLIPPED


Commit: b01d7d4d57c99770b4041b797920237e17fd0c45
    https://github.com/scummvm/scummvm/commit/b01d7d4d57c99770b4041b797920237e17fd0c45
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2022-10-09T11:23:19+03:00

Commit Message:
SCUMM: Exclude "Ultimate Talkie" MI1 from dog sign color workaround

The unofficial talkie version already uses the floppy version colors.
Applying our fix to it, while it doesn't seem to do any harm, is
unnecessary.

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


diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index a81f893429b..e868728de68 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -2233,7 +2233,10 @@ bool Gdi::drawStrip(byte *dstPtr, VirtScreen *vs, int x, int y, const int width,
 	// drawing it. The text is also slightly different, but that is taken
 	// care of elsewhere.
 
-	else if (_vm->_game.id == GID_MONKEY && _vm->_currentRoom == 36 && vs->number == kMainVirtScreen && y == 8 && x >= 7 && x <= 30 && height == 88 && _vm->_enableEnhancements) {
+	else if (_vm->_game.id == GID_MONKEY && _vm->_currentRoom == 36
+			&& vs->number == kMainVirtScreen && y == 8 && x >= 7 && x <= 30
+			&& height == 88	&& strcmp(_vm->_game.variant, "SE Talkie") != 0
+			&& _vm->_enableEnhancements) {
 		_roomPalette[47] = 15;
 
 		byte result = decompressBitmap(dstPtr, vs->pitch, smap_ptr + offset, height);
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index b594ed6a39c..0853635cc59 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -3266,7 +3266,10 @@ void ScummEngine_v5::decodeParseString() {
 			// floppy version used, but we pick on that's as close
 			// as we can get.
 
-			else if (_game.id == GID_MONKEY && _currentRoom == 36 && vm.slot[_currentScript].number == 201 && color == 2 && _enableEnhancements) {
+			else if (_game.id == GID_MONKEY && _currentRoom == 36
+					&& vm.slot[_currentScript].number == 201 && color == 2
+					&& strcmp(_game.variant, "SE Talkie") != 0
+					&& _enableEnhancements) {
 				color = findClosestPaletteColor(_currentPalette, 256, 0, 171, 0);
 			}
 


Commit: 15572c408b896bb5661878a9b1416be7fee3e2e0
    https://github.com/scummvm/scummvm/commit/15572c408b896bb5661878a9b1416be7fee3e2e0
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2022-10-09T11:23:19+03:00

Commit Message:
SCUMM: Exclude SEGA CD and FM Towns versions from dog sign workaround

The SEGA CD version already uses the old colors, and the FM Towns
version makes the text more readable by giving it a black outline.

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


diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index e868728de68..722af9463a9 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -2232,11 +2232,18 @@ bool Gdi::drawStrip(byte *dstPtr, VirtScreen *vs, int x, int y, const int width,
 	// makes the sign harder to read, so temporarily remap the color while
 	// drawing it. The text is also slightly different, but that is taken
 	// care of elsewhere.
-
-	else if (_vm->_game.id == GID_MONKEY && _vm->_currentRoom == 36
-			&& vs->number == kMainVirtScreen && y == 8 && x >= 7 && x <= 30
-			&& height == 88	&& strcmp(_vm->_game.variant, "SE Talkie") != 0
-			&& _vm->_enableEnhancements) {
+	//
+	// The SEGA CD version uses the old colors already, and the FM Towns
+	// version makes the text more readable by giving it a black outline.
+
+	else if (_vm->_game.id == GID_MONKEY &&
+			_vm->_game.platform != Common::kPlatformSegaCD &&
+			_vm->_game.platform != Common::kPlatformFMTowns &&
+			_vm->_currentRoom == 36 &&
+			vs->number == kMainVirtScreen &&
+			y == 8 && x >= 7 && x <= 30 && height == 88 &&
+			strcmp(_vm->_game.variant, "SE Talkie") != 0 &&
+			_vm->_enableEnhancements) {
 		_roomPalette[47] = 15;
 
 		byte result = decompressBitmap(dstPtr, vs->pitch, smap_ptr + offset, height);
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index 0853635cc59..860be3d73ee 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -3265,11 +3265,19 @@ void ScummEngine_v5::decodeParseString() {
 			// color. We can't find an exact match to what the
 			// floppy version used, but we pick on that's as close
 			// as we can get.
-
-			else if (_game.id == GID_MONKEY && _currentRoom == 36
-					&& vm.slot[_currentScript].number == 201 && color == 2
-					&& strcmp(_game.variant, "SE Talkie") != 0
-					&& _enableEnhancements) {
+			//
+			// The SEGA CD version uses the old colors already, and
+			// the FM Towns version makes the text more readable by
+			// giving it a black outline.
+
+			else if (_game.id == GID_MONKEY &&
+					_game.platform != Common::kPlatformSegaCD &&
+					_game.platform != Common::kPlatformFMTowns &&
+					_currentRoom == 36 &&
+					vm.slot[_currentScript].number == 201 &&
+					color == 2 &&
+					strcmp(_game.variant, "SE Talkie") != 0 &&
+					_enableEnhancements) {
 				color = findClosestPaletteColor(_currentPalette, 256, 0, 171, 0);
 			}
 




More information about the Scummvm-git-logs mailing list