[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