[Scummvm-git-logs] scummvm master -> b4973e1e0fbb75eb4f76e2a354e3369f7ac1d92d
bluegr
noreply at scummvm.org
Sat Jun 6 00:11:55 UTC 2026
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
bc89beb05e NANCY: Allow loading from the GMM before starting a new scene
b4973e1e0f NANCY: Add changes to mazechasepuzzle for Nancy10
Commit: bc89beb05e71599f8e88b3c3410ca909d925afd3
https://github.com/scummvm/scummvm/commit/bc89beb05e71599f8e88b3c3410ca909d925afd3
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-06-06T03:11:44+03:00
Commit Message:
NANCY: Allow loading from the GMM before starting a new scene
Fix #16741
Changed paths:
engines/nancy/nancy.cpp
engines/nancy/state/scene.cpp
diff --git a/engines/nancy/nancy.cpp b/engines/nancy/nancy.cpp
index f965a26249d..243c95591d9 100644
--- a/engines/nancy/nancy.cpp
+++ b/engines/nancy/nancy.cpp
@@ -137,15 +137,15 @@ Common::Error NancyEngine::saveGameStream(Common::WriteStream *stream, bool isAu
}
bool NancyEngine::canLoadGameStateCurrently(Common::U32String *msg) {
- return canSaveGameStateCurrently();
+ return NancySceneState.getActiveConversation() == nullptr &&
+ NancySceneState.getActiveMovie() == nullptr &&
+ !NancySceneState.isRunningAd();
}
bool NancyEngine::canSaveGameStateCurrently(Common::U32String *msg) {
return State::Scene::hasInstance() &&
NancySceneState.getState() == State::Scene::kRun &&
- NancySceneState.getActiveConversation() == nullptr &&
- NancySceneState.getActiveMovie() == nullptr &&
- !NancySceneState.isRunningAd();
+ canLoadGameStateCurrently();
}
void NancyEngine::secondChance() {
diff --git a/engines/nancy/state/scene.cpp b/engines/nancy/state/scene.cpp
index 975ed3f5f37..f3f856c11ce 100644
--- a/engines/nancy/state/scene.cpp
+++ b/engines/nancy/state/scene.cpp
@@ -662,6 +662,9 @@ void Scene::registerGraphics() {
}
void Scene::synchronize(Common::Serializer &ser) {
+ if (_flags.eventFlags.empty())
+ init();
+
ser.syncAsUint16LE(_sceneState.currentScene.sceneID);
ser.syncAsUint16LE(_sceneState.currentScene.frameID);
ser.syncAsUint16LE(_sceneState.currentScene.verticalOffset);
Commit: b4973e1e0fbb75eb4f76e2a354e3369f7ac1d92d
https://github.com/scummvm/scummvm/commit/b4973e1e0fbb75eb4f76e2a354e3369f7ac1d92d
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2026-06-06T03:11:45+03:00
Commit Message:
NANCY: Add changes to mazechasepuzzle for Nancy10
Fixes the "Run for Cover" game in Mary's Gifts
Changed paths:
engines/nancy/action/puzzle/mazechasepuzzle.cpp
diff --git a/engines/nancy/action/puzzle/mazechasepuzzle.cpp b/engines/nancy/action/puzzle/mazechasepuzzle.cpp
index d4c1ae9165c..ae9cef80e36 100644
--- a/engines/nancy/action/puzzle/mazechasepuzzle.cpp
+++ b/engines/nancy/action/puzzle/mazechasepuzzle.cpp
@@ -144,6 +144,8 @@ void MazeChasePuzzle::updateGraphics() {
}
void MazeChasePuzzle::readData(Common::SeekableReadStream &stream) {
+ const bool isNancy10 = g_nancy->getGameType() >= kGameTypeNancy10;
+
readFilename(stream, _imageName);
uint width = stream.readUint16LE();
@@ -153,6 +155,10 @@ void MazeChasePuzzle::readData(Common::SeekableReadStream &stream) {
_exitPos.x = stream.readUint16LE();
_exitPos.y = stream.readUint16LE();
+ if (isNancy10) {
+ stream.skip(1); // TODO: unknown byte before the grid.
+ }
+
_grid.resize(height, Common::Array<uint16>(width));
for (uint y = 0; y < height; ++y) {
for (uint x = 0; x < width; ++x) {
@@ -168,6 +174,14 @@ void MazeChasePuzzle::readData(Common::SeekableReadStream &stream) {
_startLocations[i].y = stream.readUint16LE();
}
+ if (isNancy10) {
+ // Fixed 3 slots (player + up to 2 enemies); skip the unused tail.
+ const uint kMaxSlots = 3;
+ const uint used = numEnemies + 1;
+ if (used < kMaxSlots)
+ stream.skip((kMaxSlots - used) * 4);
+ }
+
readRect(stream, _playerSrc);
readRect(stream, _enemySrc);
readRect(stream, _verticalWallSrc);
More information about the Scummvm-git-logs
mailing list