[Scummvm-git-logs] scummvm master -> 41d1d943a2ee758b12ecf598e8b99c5655b3c0fb

bluegr noreply at scummvm.org
Thu Nov 28 09:31:52 UTC 2024


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

Summary:
95e39f85f4 ADL: Restore picture for unvisited rooms
4c3bbe3c22 ADL: Add detection entry
3e03593c99 ADL: Check if inventory is full for dropped items
7f7fbb52ee ADL: Fix formatting of full inventory message
e7fa316065 ADL: Remove broken strings in hires5
41d1d943a2 ADL: Add delay for title screen in hires1


Commit: 95e39f85f46f74263911b958b5adc3c64f440110
    https://github.com/scummvm/scummvm/commit/95e39f85f46f74263911b958b5adc3c64f440110
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-28T11:31:46+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: 4c3bbe3c22faa6d6e3588cec31bdf6d41b775a60
    https://github.com/scummvm/scummvm/commit/4c3bbe3c22faa6d6e3588cec31bdf6d41b775a60
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-28T11:31:46+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: 3e03593c99d3976a7a64d753aab2cc68c86ff1e3
    https://github.com/scummvm/scummvm/commit/3e03593c99d3976a7a64d753aab2cc68c86ff1e3
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-28T11:31:46+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: 7f7fbb52ee65e0a60223caee829e938bf1eb8706
    https://github.com/scummvm/scummvm/commit/7f7fbb52ee65e0a60223caee829e938bf1eb8706
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-28T11:31:46+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: e7fa316065669f96ce825c48e3c4c902390fe395
    https://github.com/scummvm/scummvm/commit/e7fa316065669f96ce825c48e3c4c902390fe395
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-28T11:31:46+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: 41d1d943a2ee758b12ecf598e8b99c5655b3c0fb
    https://github.com/scummvm/scummvm/commit/41d1d943a2ee758b12ecf598e8b99c5655b3c0fb
Author: Walter van Niftrik (walter at scummvm.org)
Date: 2024-11-28T11:31:46+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) {




More information about the Scummvm-git-logs mailing list