[Scummvm-git-logs] scummvm branch-2-9 -> e86427803c62c26118972a810f096f433ae342f0

bluegr noreply at scummvm.org
Thu Nov 28 23:21:24 UTC 2024


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

Summary:
513646718b ADL: Restore picture for unvisited rooms
29375fa8b5 ADL: Add detection entry
3ab70438ba ADL: Check if inventory is full for dropped items
53002c5197 ADL: Fix formatting of full inventory message
02165f7a43 ADL: Remove broken strings in hires5
5e3ad137d9 ADL: Add delay for title screen in hires1
961b715a8d GOB: Apply cursor workaround to more Delia's videos in LIT - bug #10383
e86427803c GOB: Show the cursor for the closeup video of Bizoo in Gob3 - bug #5381


Commit: 513646718b59d8ad21b894ff41248e1e9285d414
    https://github.com/scummvm/scummvm/commit/513646718b59d8ad21b894ff41248e1e9285d414
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-29T01:20:55+02:00

Commit Message:
ADL: Restore picture for unvisited rooms

Fixes bug #15379

Changed paths:
    engines/adl/adl_v4.cpp


diff --git a/engines/adl/adl_v4.cpp b/engines/adl/adl_v4.cpp
index c6c50d10041..79cce6c2027 100644
--- a/engines/adl/adl_v4.cpp
+++ b/engines/adl/adl_v4.cpp
@@ -382,6 +382,17 @@ byte AdlEngine_v4::restoreRoomState(byte room) {
 		return 0;
 	}
 
+	// WORKAROUND: Fix for bug #15379: "ADL: HIRES5: Game unsolvable after
+	// loading savegame. Save state not properly restored?".
+	// There's a problem in the original engine when a picture is set for a
+	// room that hasn't been visited yet. If the user then saves before
+	// visiting that room, the picture change will be ignored when play is
+	// resumed from that savegame.
+	if (backup.picture != 1) {
+		warning("Detected picture change for unvisited room %d in region %d", room, _state.region);
+		getRoom(room).curPicture = getRoom(room).picture = backup.picture;
+	}
+
 	return 1;
 }
 


Commit: 29375fa8b5f7339759951862b265a8b906867cab
    https://github.com/scummvm/scummvm/commit/29375fa8b5f7339759951862b265a8b906867cab
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-29T01:20:55+02:00

Commit Message:
ADL: Add detection entry

Changed paths:
    engines/adl/detection.cpp


diff --git a/engines/adl/detection.cpp b/engines/adl/detection.cpp
index 4044bfab5da..29b49edc8f8 100644
--- a/engines/adl/detection.cpp
+++ b/engines/adl/detection.cpp
@@ -378,9 +378,35 @@ static const AdlGameDescription gameDiskDescriptions[] = {
 		GAME_TYPE_HIRES4,
 		GAME_VER_NONE
 	},
-	{ // Hi-Res Adventure #5: Time Zone - Apple II - Version 1.1 - Roberta Williams Anthology
+	{ // Hi-Res Adventure #5: Time Zone - Apple II - On-Line Systems - Version 1.1
 		{
-			"hires5", "",
+			"hires5", "On-Line Systems",
+			{
+				{"tzone1a", 2, "6c1f4c9f774dbd9697e3b5b1fe2fb858", 143360},
+				{"tzone1b", 3, "4eaf8d790e3f93097cca9ddbe863df50", 143360},
+				{"tzone2c", 4, "e3aa4f56e727339b1ec00978ce9d435b", 143360},
+				{"tzone2d", 5, "77b8219a380410015c986fa192d4c3bf", 143360},
+				{"tzone3e", 6, "f7acc03edd8d8aecb90711cd5f9e5593", 143360},
+				{"tzone3f", 7, "ed74c056976ecea2eab07448c8a72eb8", 143360},
+				{"tzone4g", 8, "de7bda8a641169fc2dedd8a7b0b7e7de", 143360},
+				{"tzone4h", 9, "21cf76d97505ff09fff5d5e4711bc47c", 143360},
+				{"tzone5i", 10, "d665df374e594cd0978b73c3490e5de2", 143360},
+				{"tzone5j", 11, "5095be23d13201d0897b9169c4e473df", 143360},
+				{"tzone6k", 12, "bef044503f21af5f0a4088e99aa778b1", 143360},
+				{"tzone6l", 13, "84801b7c2ab6c09e62a2a0809b94d16a", 143360},
+				AD_LISTEND
+			},
+			Common::EN_ANY,
+			Common::kPlatformApple2,
+			ADGF_NO_FLAGS,
+			DEFAULT_OPTIONS
+		},
+		GAME_TYPE_HIRES5,
+		GAME_VER_NONE
+	},
+	{ // Hi-Res Adventure #5: Time Zone - Apple II - Roberta Williams Anthology - Version 1.1
+		{
+			"hires5", "Sierra On-Line",
 			{
 				{ "tzone1a", 2, "731844b1d19c2801e3a5bc61d109af54", 143360 },
 				{ "tzone1b", 3, "4eaf8d790e3f93097cca9ddbe863df50", 143360 },


Commit: 3ab70438baabd70c0150553744fc21429ffd4bb5
    https://github.com/scummvm/scummvm/commit/3ab70438baabd70c0150553744fc21429ffd4bb5
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-29T01:20:56+02:00

Commit Message:
ADL: Check if inventory is full for dropped items

Fixes bug #15389

Changed paths:
    engines/adl/adl_v2.cpp


diff --git a/engines/adl/adl_v2.cpp b/engines/adl/adl_v2.cpp
index c8a76c3e46d..cd3aabd8ba5 100644
--- a/engines/adl/adl_v2.cpp
+++ b/engines/adl/adl_v2.cpp
@@ -304,22 +304,27 @@ void AdlEngine_v2::takeItem(byte noun) {
 				return;
 			}
 
+			bool itemIsHere = false;
+
 			if (item->state == IDI_ITEM_DROPPED) {
-				item->room = IDI_ANY;
-				_itemRemoved = true;
-				return;
+				itemIsHere = true;
+			} else {
+				Common::Array<byte>::const_iterator pic;
+				for (pic = item->roomPictures.begin(); pic != item->roomPictures.end(); ++pic) {
+					if (*pic == getCurRoom().curPicture || *pic == IDI_ANY) {
+						itemIsHere = true;
+						break;
+					}
+				}
 			}
 
-			Common::Array<byte>::const_iterator pic;
-			for (pic = item->roomPictures.begin(); pic != item->roomPictures.end(); ++pic) {
-				if (*pic == getCurRoom().curPicture || *pic == IDI_ANY) {
-					if (!isInventoryFull()) {
-						item->room = IDI_ANY;
-						_itemRemoved = true;
-						item->state = IDI_ITEM_DROPPED;
-					}
-					return;
+			if (itemIsHere) {
+				if (!isInventoryFull()) {
+					item->room = IDI_ANY;
+					_itemRemoved = true;
+					item->state = IDI_ITEM_DROPPED;
 				}
+				return;
 			}
 		}
 	}


Commit: 53002c51979bdcc8d1b1b5536faee5307ac5a8ff
    https://github.com/scummvm/scummvm/commit/53002c51979bdcc8d1b1b5536faee5307ac5a8ff
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-29T01:20:56+02:00

Commit Message:
ADL: Fix formatting of full inventory message

Changed paths:
    engines/adl/hires5.cpp


diff --git a/engines/adl/hires5.cpp b/engines/adl/hires5.cpp
index 8a14b0ab24f..9b50e9dda66 100644
--- a/engines/adl/hires5.cpp
+++ b/engines/adl/hires5.cpp
@@ -156,7 +156,7 @@ bool HiRes5Engine::isInventoryFull() {
 	}
 
 	if (weight >= 100) {
-		printString(_gameStrings.carryingTooMuch);
+		_display->printString(_gameStrings.carryingTooMuch);
 		inputString();
 		return true;
 	}


Commit: 02165f7a43d471f0d2ff1b073a28ee97cc4bfc52
    https://github.com/scummvm/scummvm/commit/02165f7a43d471f0d2ff1b073a28ee97cc4bfc52
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-29T01:20:56+02:00

Commit Message:
ADL: Remove broken strings in hires5

Fixes bug #15382.

Co-authored-by: Torbjörn Andersson <eriktorbjorn at users.sourceforge.net>

Changed paths:
    engines/adl/adl.cpp
    engines/adl/adl.h
    engines/adl/hires5.cpp


diff --git a/engines/adl/adl.cpp b/engines/adl/adl.cpp
index ac700c80da2..05ff6f6ffc7 100644
--- a/engines/adl/adl.cpp
+++ b/engines/adl/adl.cpp
@@ -444,6 +444,15 @@ Command &AdlEngine::getCommand(Commands &commands, uint idx) {
 	error("Command %d not found", idx);
 }
 
+void AdlEngine::removeMessage(uint idx) {
+		if (_messages[idx]) {
+			_messages[idx].reset();
+			return;
+		}
+
+		error("Message %d not found", idx);
+}
+
 void AdlEngine::checkInput(byte verb, byte noun) {
 	// Try room-local command list first
 	if (doOneCommand(_roomData.commands, verb, noun))
diff --git a/engines/adl/adl.h b/engines/adl/adl.h
index a749c65a690..cea2313c8d5 100644
--- a/engines/adl/adl.h
+++ b/engines/adl/adl.h
@@ -297,6 +297,7 @@ protected:
 	void readCommands(Common::ReadStream &stream, Commands &commands);
 	void removeCommand(Commands &commands, uint idx);
 	Command &getCommand(Commands &commands, uint idx);
+	void removeMessage(uint idx);
 	void checkInput(byte verb, byte noun);
 	virtual bool isInputValid(byte verb, byte noun, bool &is_any);
 	virtual bool isInputValid(const Commands &commands, byte verb, byte noun, bool &is_any);
diff --git a/engines/adl/hires5.cpp b/engines/adl/hires5.cpp
index 9b50e9dda66..8441573809c 100644
--- a/engines/adl/hires5.cpp
+++ b/engines/adl/hires5.cpp
@@ -371,6 +371,21 @@ void HiRes5Engine::applyRegionWorkarounds() {
 		// of the script.
 		removeCommand(_roomCommands, 0);
 		break;
+	case 32:
+		// This broken message appears right before the game restarts,
+		// and should probably explain that the user fell down some
+		// stairs. We remove the broken message.
+		// TODO: Maybe we could put in a new string?
+		removeMessage(29);
+		break;
+	case 40:
+		// Locking the gate prints a broken message, followed by
+		// "O.K.". Maybe there was supposed to be a more elaborate
+		// message, in the style of the one printed when you unlock
+		// the gate. But "O.K." should be enough, so we remove the
+		// first one.
+		removeMessage(172);
+		break;
 	default:
 		break;
 	}


Commit: 5e3ad137d92fe0b18583511c17cdbe7e558e3221
    https://github.com/scummvm/scummvm/commit/5e3ad137d92fe0b18583511c17cdbe7e558e3221
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-29T01:20:57+02:00

Commit Message:
ADL: Add delay for title screen in hires1

Fixes bug #15301

Changed paths:
    engines/adl/hires1.cpp


diff --git a/engines/adl/hires1.cpp b/engines/adl/hires1.cpp
index bce9b04b871..6a6c2865e8e 100644
--- a/engines/adl/hires1.cpp
+++ b/engines/adl/hires1.cpp
@@ -253,6 +253,10 @@ void HiRes1Engine::runIntro() {
 	static_cast<Display_A2 *>(_display)->loadFrameBuffer(*stream);
 	_display->renderGraphics();
 
+	// The title screen would normally be visible during loading.
+	// We add a short delay here to simulate that.
+	delay(2000);
+
 	_display->setMode(Display::kModeMixed);
 
 	if (getGameVersion() == GAME_VER_HR1_SIMI) {


Commit: 961b715a8dd2be0ac54cd3e747a1183891b0df6b
    https://github.com/scummvm/scummvm/commit/961b715a8dd2be0ac54cd3e747a1183891b0df6b
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2024-11-29T01:20:57+02:00

Commit Message:
GOB: Apply cursor workaround to more Delia's videos in LIT - bug #10383

Also, chop off the video file suffix, as sometimes openVideo() is
called with video files that include the .IMD suffix

Changed paths:
    engines/gob/videoplayer.cpp


diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp
index 366f54c14ee..7a07d85d605 100644
--- a/engines/gob/videoplayer.cpp
+++ b/engines/gob/videoplayer.cpp
@@ -137,15 +137,17 @@ int VideoPlayer::openVideo(bool primary, const Common::String &file, Properties
 
 		// WORKAROUND: In some rare cases, the cursor should still be
 		// displayed while a video is playing.
+		Common::String videoFile = file;
+		videoFile.toUppercase();
+		if (videoFile.hasSuffix(".IMD"))
+			videoFile = videoFile.substr(0, videoFile.find('.'));
 		_noCursorSwitch = false;
+
 		if (primary && (_vm->getGameType() == kGameTypeLostInTime)) {
-			if (!file.compareToIgnoreCase("PORTA03") ||
-			    !file.compareToIgnoreCase("PORTA03A") ||
-			    !file.compareToIgnoreCase("CALE1") ||
-			    !file.compareToIgnoreCase("AMIL2") ||
-			    !file.compareToIgnoreCase("AMIL3B") ||
-			    !file.compareToIgnoreCase("DELB"))
-				_noCursorSwitch = true;
+			static const Common::StringArray videosWithCursorLIT = {
+				"PORTA03", "PORTA03A", "CALE1", "AMIL2", "AMIL3B", "DELB", "DELG"
+			};
+			_noCursorSwitch = (Common::find(videosWithCursorLIT.begin(), videosWithCursorLIT.end(), videoFile) != videosWithCursorLIT.end());
 		}
 
 		// WORKAROUND: In Woodruff, Coh Cott vanished in one video on her party.


Commit: e86427803c62c26118972a810f096f433ae342f0
    https://github.com/scummvm/scummvm/commit/e86427803c62c26118972a810f096f433ae342f0
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2024-11-29T01:20:58+02:00

Commit Message:
GOB: Show the cursor for the closeup video of Bizoo in Gob3 - bug #5381

Changed paths:
    engines/gob/videoplayer.cpp


diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp
index 7a07d85d605..5f18b82f012 100644
--- a/engines/gob/videoplayer.cpp
+++ b/engines/gob/videoplayer.cpp
@@ -150,6 +150,13 @@ int VideoPlayer::openVideo(bool primary, const Common::String &file, Properties
 			_noCursorSwitch = (Common::find(videosWithCursorLIT.begin(), videosWithCursorLIT.end(), videoFile) != videosWithCursorLIT.end());
 		}
 
+		if (primary && (_vm->getGameType() == kGameTypeGob3)) {
+			static const Common::StringArray videosWithCursorGob3 = {
+				"CAIL1", "CAIL2"
+			};
+			_noCursorSwitch = (Common::find(videosWithCursorGob3.begin(), videosWithCursorGob3.end(), videoFile) != videosWithCursorGob3.end());
+		}
+
 		// WORKAROUND: In Woodruff, Coh Cott vanished in one video on her party.
 		// This is a bug in video, so we work around it.
 		_woodruffCohCottWorkaround = false;




More information about the Scummvm-git-logs mailing list