[Scummvm-git-logs] scummvm master -> 586f46b20638f5f1987da72f478e02c85c91da6e

Strangerke noreply at scummvm.org
Fri May 23 21:07:52 UTC 2025


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:
586f46b206 M4: RIDDLE: Handle "Load" button in menu (room 494)


Commit: 586f46b20638f5f1987da72f478e02c85c91da6e
    https://github.com/scummvm/scummvm/commit/586f46b20638f5f1987da72f478e02c85c91da6e
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2025-05-23T22:07:46+01:00

Commit Message:
M4: RIDDLE: Handle "Load" button in menu (room 494)

Changed paths:
    engines/m4/riddle/gui/game_menu.cpp
    engines/m4/riddle/riddle.cpp
    engines/m4/riddle/riddle.h
    engines/m4/riddle/rooms/section4/room494.cpp
    engines/m4/riddle/rooms/section4/room494.h


diff --git a/engines/m4/riddle/gui/game_menu.cpp b/engines/m4/riddle/gui/game_menu.cpp
index 125bbdf96c7..a414a16041f 100644
--- a/engines/m4/riddle/gui/game_menu.cpp
+++ b/engines/m4/riddle/gui/game_menu.cpp
@@ -201,7 +201,7 @@ void GameMenu::cbLoad(void *, void *) {
 	guiMenu::shutdown(true);
 	_GM(buttonClosesDialog) = true;
 
-	// Create the save game menu
+	// Create the load game menu
 	g_engine->showLoadScreen(M4Engine::kLoadFromGameDialog);
 }
 
diff --git a/engines/m4/riddle/riddle.cpp b/engines/m4/riddle/riddle.cpp
index eaf2f3b65d0..d065a2ad5ac 100644
--- a/engines/m4/riddle/riddle.cpp
+++ b/engines/m4/riddle/riddle.cpp
@@ -774,5 +774,12 @@ void sketchInJournal(const char *digiName) {
 	}
 }
 
+bool RiddleEngine::canLoadGameStateCurrently(Common::U32String *msg) {
+	if (g_vars && _G(game).room_id == 494)
+		// Allow loading games from the main menu
+		return true;
+	else
+		return M4Engine::canLoadGameStateCurrently(msg);
+}
 } // namespace Riddle
 } // namespace M4
diff --git a/engines/m4/riddle/riddle.h b/engines/m4/riddle/riddle.h
index fbee9b18f89..0a70163fa02 100644
--- a/engines/m4/riddle/riddle.h
+++ b/engines/m4/riddle/riddle.h
@@ -66,6 +66,7 @@ private:
 
 	void showMessageLog(int trigger);
 	void lookAtInventoryItem();
+	bool canLoadGameStateCurrently(Common::U32String *msg) override;
 
 protected:
 	/**
diff --git a/engines/m4/riddle/rooms/section4/room494.cpp b/engines/m4/riddle/rooms/section4/room494.cpp
index 62127f5555d..e1c2ced26ac 100644
--- a/engines/m4/riddle/rooms/section4/room494.cpp
+++ b/engines/m4/riddle/rooms/section4/room494.cpp
@@ -48,7 +48,7 @@ void Room494::init() {
 
 	RemoveSystemHotkey(KEY_F2);
 	AddSystemHotkey(KEY_ESCAPE, escapeFn);
-	AddSystemHotkey(KEY_F3, escapeFn);
+	AddSystemHotkey(KEY_F3, loadFn);
 	_machine1 = _machine2 = nullptr;
 	_selectedBtn1 = _selectedBtn2 = -1;
 	midi_stop();
@@ -194,7 +194,7 @@ void Room494::daemon() {
 			disable_player_commands_and_fade_init(111);
 			break;
 		case 3:
-			escapeFn(nullptr, nullptr);
+			loadFn(nullptr, nullptr);
 			break;
 		case 4:
 			player_set_commands_allowed(false);
@@ -221,6 +221,10 @@ void Room494::escapeFn(void *, void *) {
 	warning("TODO: room 494 escapeFn");
 }
 
+void Room494::loadFn(void *, void *) {
+	g_engine->showLoadScreen(M4Engine::kLoadFromGameDialog);
+}
+
 int Room494::getSelectedButton() const {
 	static const Common::Rect BUTTONS[6] = {
 		{  91, 323, 150, 370 },
diff --git a/engines/m4/riddle/rooms/section4/room494.h b/engines/m4/riddle/rooms/section4/room494.h
index 5517052677d..7f16c88fa0a 100644
--- a/engines/m4/riddle/rooms/section4/room494.h
+++ b/engines/m4/riddle/rooms/section4/room494.h
@@ -31,6 +31,7 @@ namespace Rooms {
 class Room494 : public Room {
 private:
 	static void escapeFn(void *, void *);
+	static void loadFn(void *, void *);
 	int getSelectedButton() const;
 	void restoreHotkeys();
 




More information about the Scummvm-git-logs mailing list