[Scummvm-git-logs] scummvm branch-3-0 -> 507325292dc83312e598c6c8fdf8b6eed57f1391

Strangerke noreply at scummvm.org
Tue Jan 6 22:30:35 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:
507325292d M4: RIDDLE: Fix bug #16059 - Ripley stuck in Mocha's stairs


Commit: 507325292dc83312e598c6c8fdf8b6eed57f1391
    https://github.com/scummvm/scummvm/commit/507325292dc83312e598c6c8fdf8b6eed57f1391
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2026-01-06T23:30:27+01:00

Commit Message:
M4: RIDDLE: Fix bug #16059 - Ripley stuck in Mocha's stairs

Changed paths:
    engines/m4/riddle/rooms/section5/room506.cpp
    engines/m4/riddle/rooms/section5/room506.h


diff --git a/engines/m4/riddle/rooms/section5/room506.cpp b/engines/m4/riddle/rooms/section5/room506.cpp
index ad8dd3854dc..6d3d66a63be 100644
--- a/engines/m4/riddle/rooms/section5/room506.cpp
+++ b/engines/m4/riddle/rooms/section5/room506.cpp
@@ -39,7 +39,7 @@ void Room506::preload() {
 }
 
 void Room506::init() {
-	_flag2 = _flag3 = _towerFlag = false;
+	_darkPaletteSet = _lightPaletteSet = _towerFlag = false;
 
 	if (_G(game).previous_room != KERNEL_RESTORING_GAME)
 		_flag1 = true;
@@ -101,13 +101,14 @@ void Room506::init() {
 		MoveScreenDelta(-432, 0);
 		ws_demand_location(_G(my_walker), 754, 242, 8);
 		ws_walk(_G(my_walker), 697, 247, nullptr, 502, 8);
+		player_set_commands_allowed(false);
 		break;
 	}
 
 	if (_flag1)
 		restorePalette();
 	else
-		setupPalette();
+		setDarkPalette();
 }
 
 void Room506::daemon() {
@@ -173,6 +174,8 @@ void Room506::pre_parser() {
 		} else {
 			ws_walk(_G(my_walker), _destX, _destY, nullptr, -1, _destFacing);
 		}
+
+		setDarkPalette();
 		break;
 
 	case 1002:
@@ -191,12 +194,12 @@ void Room506::pre_parser() {
 	if (_G(player).need_to_walk || _G(player).ready_to_walk || _G(player).waiting_for_walk) {
 		_towerFlag = !scumm_strnicmp(_G(player).verb, "IN TOWER", 8);
 
-		if (_G(player).walk_x < 900 && _flag2 && !player_said("   ") && !player_said("    ")) {
+		if (_G(player).walk_x < 900 && _darkPaletteSet && !player_said("   ") && !player_said("    ")) {
 			saveWalk();
 			ws_walk(_G(my_walker), 717, 144, nullptr, 1000, 1);
 		}
 
-		if (_G(player).walk_x > 900 && _flag3 && !player_said("   ") && !player_said("    ")) {
+		if (_G(player).walk_x > 900 && _lightPaletteSet && !player_said("   ") && !player_said("    ")) {
 			saveWalk();
 			ws_walk(_G(my_walker), 995, 308, nullptr, 1001, 1);
 		}
@@ -392,7 +395,7 @@ void Room506::parser() {
 		}
 
 		if (player_said("    ")) {
-			setupPalette();
+			setDarkPalette();
 			ws_walk(_G(my_walker), 1039, 328, nullptr, -1, 4);
 
 			if (_towerFlag)
@@ -406,9 +409,9 @@ void Room506::parser() {
 }
 
 void Room506::restorePalette() {
-	if (!_flag3) {
-		_flag3 = true;
-		_flag2 = false;
+	if (!_lightPaletteSet) {
+		_lightPaletteSet = true;
+		_darkPaletteSet = false;
 		hotspot_set_active("   ", false);
 		hotspot_set_active("    ", true);
 
@@ -423,10 +426,10 @@ void Room506::restorePalette() {
 	}
 }
 
-void Room506::setupPalette() {
-	if (!_flag2) {
-		_flag2 = true;
-		_flag3 = false;
+void Room506::setDarkPalette() {
+	if (!_darkPaletteSet) {
+		_darkPaletteSet = true;
+		_lightPaletteSet = false;
 		hotspot_set_active("   ", true);
 		hotspot_set_active("    ", false);
 
diff --git a/engines/m4/riddle/rooms/section5/room506.h b/engines/m4/riddle/rooms/section5/room506.h
index 8de8887fc5b..270b90687c2 100644
--- a/engines/m4/riddle/rooms/section5/room506.h
+++ b/engines/m4/riddle/rooms/section5/room506.h
@@ -32,8 +32,8 @@ class Room506 : public Room {
 private:
 	RGB8 _palette[59] = {};
 	bool _flag1 = false;
-	bool _flag2 = false;
-	bool _flag3 = false;
+	bool _darkPaletteSet = false;
+	bool _lightPaletteSet = false;
 	bool _towerFlag = false;
 	int _destX = 0, _destY = 0;
 	int _destFacing = 0;
@@ -44,7 +44,7 @@ private:
 	int _ripLowReach = 0;
 
 	void restorePalette();
-	void setupPalette();
+	void setDarkPalette();
 	void saveWalk();
 
 public:




More information about the Scummvm-git-logs mailing list