[Scummvm-git-logs] scummvm branch-3-0 -> 502c3575d7004c250ab73e3c8581db15694bfb7a

Strangerke noreply at scummvm.org
Wed Jan 7 10:50:36 UTC 2026


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

Summary:
502c3575d7 M4: RIDDLE: Workaroud for issue fix #16098 - Autosave has bad coordinates which makes it unusable


Commit: 502c3575d7004c250ab73e3c8581db15694bfb7a
    https://github.com/scummvm/scummvm/commit/502c3575d7004c250ab73e3c8581db15694bfb7a
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2026-01-07T11:50:26+01:00

Commit Message:
M4: RIDDLE: Workaroud for issue fix #16098 - Autosave has bad coordinates which makes it unusable

The workaround has been added as usually the autosave is made before the move, like it's now the case

Changed paths:
    engines/m4/riddle/rooms/section8/room808.cpp


diff --git a/engines/m4/riddle/rooms/section8/room808.cpp b/engines/m4/riddle/rooms/section8/room808.cpp
index 9e23596b7ef..97094a8a701 100644
--- a/engines/m4/riddle/rooms/section8/room808.cpp
+++ b/engines/m4/riddle/rooms/section8/room808.cpp
@@ -264,11 +264,15 @@ void Room808::pre_parser() {
 		if (_G(flags)[V096] == 0) {
 			ws_walk(_G(my_walker), 185, 165, nullptr, 6, 2, true);
 		} else {
+			// Hack to fix #16098 - Save game before the move to ensure the position is correct when restoring the auto-save
+			other_save_game_for_resurrection();
 			ws_walk(_G(my_walker), 192, 163, nullptr, 10, 2, true);
 		}
 		_G(kernel).trigger_mode = KT_PREPARSE;
 	} else if (inv_object_in_scene("FARMER'S SHOVEL", 808) && _G(flags)[kBridgeWheelPosition] == 4 && check1Fl) {
 		intr_cancel_sentence();
+		// Hack to fix #16098 - Save game before the move to ensure the position is correct when restoring the auto-save
+		other_save_game_for_resurrection();
 		_G(kernel).trigger_mode = KT_DAEMON;
 		ws_walk(_G(my_walker), 274, 142, nullptr, 8, 2, true);
 		_G(kernel).trigger_mode = KT_PREPARSE;
@@ -1450,11 +1454,14 @@ void Room808::daemon() {
 		if (_G(spleenSpraying)) {
 			kernel_timing_trigger(200, 966, nullptr);
 		} else {
+			_G(player).disable_hyperwalk = false;
+
 			ws_unhide_walker(_G(my_walker));
-			ws_demand_location(_G(my_walker), 202, 179);
+			ws_demand_location(_G(my_walker), 190, 179);
 			ws_demand_facing(_G(my_walker), 2);
 
-			other_save_game_for_resurrection();
+			// TODO : remove the hack and use this code when we understand why it doesn't save the right position in the auto-save			
+			// other_save_game_for_resurrection();
 			_G(game).setRoom(413);
 		}
 
@@ -1686,11 +1693,13 @@ void Room808::daemon() {
 		break;
 
 	case 967:
+		// Note : this block is never used as the environment variable spleenSpraying is never set (thus trigger 966 & 967 are never called)
 		ws_unhide_walker(_G(my_walker));
 		ws_demand_location(_G(my_walker), 202, 179);
 		ws_demand_facing(_G(my_walker), 2);
 
-		other_save_game_for_resurrection();
+		// TODO : remove the hack and use this code when we understand why it doesn't save the right position in the auto-save
+		// other_save_game_for_resurrection();
 		_G(game).setRoom(413);
 
 		break;




More information about the Scummvm-git-logs mailing list