[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