[Scummvm-git-logs] scummvm master -> 8a170079b1feadd22d243e22f76355a8ca021396

dreammaster noreply at scummvm.org
Sat Apr 25 09:46:50 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:
8a170079b1 MADS: PHANTOM: Game option for using original save/load dialogs


Commit: 8a170079b1feadd22d243e22f76355a8ca021396
    https://github.com/scummvm/scummvm/commit/8a170079b1feadd22d243e22f76355a8ca021396
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-04-25T19:46:00+10:00

Commit Message:
MADS: PHANTOM: Game option for using original save/load dialogs

Not turned on by default, so it will use the ScummVM dialogs,
even when save/restore selected from the original in-game menu.

Changed paths:
    engines/mads/detection.h
    engines/mads/detection_tables.h
    engines/mads/madsv2/core/config.cpp
    engines/mads/madsv2/core/config.h
    engines/mads/madsv2/core/game.cpp
    engines/mads/madsv2/engine.cpp
    engines/mads/madsv2/phantom/menus.cpp
    engines/mads/metaengine.cpp


diff --git a/engines/mads/detection.h b/engines/mads/detection.h
index f910b1ef727..fe2b406b3a6 100644
--- a/engines/mads/detection.h
+++ b/engines/mads/detection.h
@@ -58,7 +58,7 @@ struct MADSGameDescription {
 
 #define GAMEOPTION_COPY_PROTECTION     GUIO_GAMEOPTIONS6
 
-//#define GAMEOPTION_GRAPHICS_DITHERING  GUIO_GAMEOPTIONS7
+#define GAMEOPTION_ORIGINAL_SAVELOAD   GUIO_GAMEOPTIONS7
 
 } // namespace MADS
 
diff --git a/engines/mads/detection_tables.h b/engines/mads/detection_tables.h
index 518d574a525..0deb1970163 100644
--- a/engines/mads/detection_tables.h
+++ b/engines/mads/detection_tables.h
@@ -156,7 +156,7 @@ static const MADSGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE,
-			GUIO2(GUIO_NOMUSIC, GAMEOPTION_EASY_MOUSE)
+			GUIO7(GUIO_NOSPEECH, GAMEOPTION_EASY_MOUSE, GAMEOPTION_ANIMATED_INVENTORY, GAMEOPTION_ANIMATED_INTERFACE, GAMEOPTION_NAUGHTY_MODE, GAMEOPTION_COPY_PROTECTION, GAMEOPTION_ORIGINAL_SAVELOAD)
 		},
 		GType_Phantom,
 		0
@@ -171,7 +171,7 @@ static const MADSGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE,
-			GUIO1(GAMEOPTION_EASY_MOUSE)
+			GUIO7(GUIO_NOSPEECH, GAMEOPTION_EASY_MOUSE, GAMEOPTION_ANIMATED_INVENTORY, GAMEOPTION_ANIMATED_INTERFACE, GAMEOPTION_NAUGHTY_MODE, GAMEOPTION_COPY_PROTECTION, GAMEOPTION_ORIGINAL_SAVELOAD)
 		},
 		GType_Phantom,
 		0
@@ -186,7 +186,7 @@ static const MADSGameDescription gameDescriptions[] = {
 			Common::EN_ANY,
 			Common::kPlatformDOS,
 			ADGF_UNSTABLE | ADGF_DEMO,
-			GUIO1(GAMEOPTION_EASY_MOUSE)
+			GUIO7(GUIO_NOSPEECH, GAMEOPTION_EASY_MOUSE, GAMEOPTION_ANIMATED_INVENTORY, GAMEOPTION_ANIMATED_INTERFACE, GAMEOPTION_NAUGHTY_MODE, GAMEOPTION_COPY_PROTECTION, GAMEOPTION_ORIGINAL_SAVELOAD)
 		},
 		GType_Phantom,
 		0
diff --git a/engines/mads/madsv2/core/config.cpp b/engines/mads/madsv2/core/config.cpp
index dc7f79b6531..920cb560fa3 100644
--- a/engines/mads/madsv2/core/config.cpp
+++ b/engines/mads/madsv2/core/config.cpp
@@ -64,6 +64,8 @@ void read_config_file() {
 	config_file.panning_speed = ConfMan.getBool("panning_speed");
 
 	config_file.show_speech_boxes = ConfMan.getBool("show_speech_boxes");
+	config_file.original_save_load = ConfMan.getBool("original_menus");
+
 	game.difficulty = ConfMan.getInt("difficulty");
 }
 
diff --git a/engines/mads/madsv2/core/config.h b/engines/mads/madsv2/core/config.h
index aff8469f3ec..5dada0d05fc 100644
--- a/engines/mads/madsv2/core/config.h
+++ b/engines/mads/madsv2/core/config.h
@@ -96,7 +96,7 @@ struct ConfigFile {
 	int show_speech_boxes;        /* Show text during speech       */
 
 	int sound_card_irq;
-	int misc2;
+	bool original_save_load;
 	int misc3;
 	int misc4;
 	int misc5;
diff --git a/engines/mads/madsv2/core/game.cpp b/engines/mads/madsv2/core/game.cpp
index 5843138316d..c51a9a44f1f 100644
--- a/engines/mads/madsv2/core/game.cpp
+++ b/engines/mads/madsv2/core/game.cpp
@@ -1041,7 +1041,13 @@ int game_parse_keystroke(int mykey) {
 
 	case f5_key:
 		if (room_id != 199 && section_id != 9) {
-			kernel.activate_menu = GAME_OPTIONS_MENU;
+			kernel.activate_menu = GAME_SAVE_MENU;
+		}
+		break;
+
+	case f7_key:
+		if (room_id != 199 && section_id != 9) {
+			kernel.activate_menu = GAME_RESTORE_MENU;
 		}
 		break;
 
diff --git a/engines/mads/madsv2/engine.cpp b/engines/mads/madsv2/engine.cpp
index f90faeb8055..12bb4732854 100644
--- a/engines/mads/madsv2/engine.cpp
+++ b/engines/mads/madsv2/engine.cpp
@@ -47,7 +47,7 @@ MADSV2Engine *g_engine;
 
 static const Common::KeyCode KEYBINDING_ACTIONS[kActionRestartAnimation + 1] = {
 	Common::KEYCODE_INVALID, Common::KEYCODE_ESCAPE, Common::KEYCODE_F1,
-	Common::KEYCODE_F5, Common::KEYCODE_7, Common::KEYCODE_PAGEUP,
+	Common::KEYCODE_F5, Common::KEYCODE_F7, Common::KEYCODE_PAGEUP,
 	Common::KEYCODE_PAGEDOWN, Common::KEYCODE_F1, Common::KEYCODE_F2,
 	Common::KEYCODE_F3, Common::KEYCODE_F4, Common::KEYCODE_F5,
 	Common::KEYCODE_INVALID
diff --git a/engines/mads/madsv2/phantom/menus.cpp b/engines/mads/madsv2/phantom/menus.cpp
index 6b7e9c40d3a..da9bb1d1915 100644
--- a/engines/mads/madsv2/phantom/menus.cpp
+++ b/engines/mads/madsv2/phantom/menus.cpp
@@ -669,10 +669,20 @@ void global_game_menu() {
 			global_menu_main();
 			break;
 		case GAME_SAVE_MENU:
-			global_menu_save_restore(true);
+			if (config_file.original_save_load) {
+				global_menu_save_restore(true);
+			} else {
+				kernel.activate_menu = GAME_NO_MENU;
+				g_engine->saveGameDialog();
+			}
 			break;
 		case GAME_RESTORE_MENU:
-			global_menu_save_restore(false);
+			if (config_file.original_save_load) {
+				global_menu_save_restore(false);
+			} else {
+				kernel.activate_menu = GAME_NO_MENU;
+				g_engine->loadGameDialog();
+			}
 			break;
 		case GAME_OPTIONS_MENU:
 			global_menu_options();
diff --git a/engines/mads/metaengine.cpp b/engines/mads/metaengine.cpp
index 92a6e9a520c..b9f8ae1133c 100644
--- a/engines/mads/metaengine.cpp
+++ b/engines/mads/metaengine.cpp
@@ -108,6 +108,18 @@ static const ADExtraGuiOptionsMap optionsList[] = {
 		}
 	},
 
+	{
+		GAMEOPTION_ORIGINAL_SAVELOAD,
+		{
+			_s("Use original save/load screens"),
+			_s("Use the original save/load screens instead of the ScummVM ones"),
+			"original_menus",
+			false,
+			0,
+			0
+		}
+	},
+
 	/*{
 		GAMEOPTION_GRAPHICS_DITHERING,
 		{




More information about the Scummvm-git-logs mailing list