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

bluegr bluegr at gmail.com
Wed Sep 15 16:29:10 UTC 2021


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

Summary:
8baac0f52c GROOVIE: Allow loading using the ScummVM load screen in T7G


Commit: 8baac0f52cfce6eaf3cb7b3b29ea254f6e1c718c
    https://github.com/scummvm/scummvm/commit/8baac0f52cfce6eaf3cb7b3b29ea254f6e1c718c
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-09-15T19:28:59+03:00

Commit Message:
GROOVIE: Allow loading using the ScummVM load screen in T7G

Changed paths:
    engines/groovie/detection.cpp
    engines/groovie/script.cpp


diff --git a/engines/groovie/detection.cpp b/engines/groovie/detection.cpp
index ffd3f8bf86..f389ce6e4c 100644
--- a/engines/groovie/detection.cpp
+++ b/engines/groovie/detection.cpp
@@ -30,6 +30,7 @@
 namespace Groovie {
 
 #define GAMEOPTION_T7G_FAST_MOVIE_SPEED  GUIO_GAMEOPTIONS1
+#define GAMEOPTION_ORIGINAL_SAVELOAD GUIO_GAMEOPTIONS2
 
 static const DebugChannelDef debugFlagList[] = {
 	{Groovie::kDebugVideo, "Video", "Debug video and audio playback"},
@@ -66,7 +67,7 @@ static const GroovieGameDescription gameDescriptions[] = {
 			"t7g", "",
 			AD_ENTRY1s("script.grv", "d1b8033b40aa67c076039881eccce90d", 16659),
 			Common::EN_ANY, Common::kPlatformDOS, ADGF_NO_FLAGS,
-			GUIO6(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GUIO_NOSFX, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
+			GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GUIO_NOSFX, GAMEOPTION_T7G_FAST_MOVIE_SPEED, GAMEOPTION_ORIGINAL_SAVELOAD)
 		},
 		kGroovieT7G
 	},
@@ -78,7 +79,7 @@ static const GroovieGameDescription gameDescriptions[] = {
 			AD_ENTRY2s("script.grv", NULL, -1,
 						"T7GMac", "acdc4a58dd3f007f65e99b99d78e0bce", 1814029),
 			Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK,
-			GUIO6(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GUIO_NOSFX, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
+			GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GUIO_NOSFX, GAMEOPTION_T7G_FAST_MOVIE_SPEED, GAMEOPTION_ORIGINAL_SAVELOAD)
 		},
 		kGroovieT7G
 	},
@@ -90,7 +91,7 @@ static const GroovieGameDescription gameDescriptions[] = {
 			AD_ENTRY2s("script.grv", "d1b8033b40aa67c076039881eccce90d", 16659,
 						"intro.gjd", NULL, 31711554),
 			Common::RU_RUS, Common::kPlatformDOS, ADGF_NO_FLAGS,
-			GUIO6(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GUIO_NOSFX, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
+			GUIO7(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT, GUIO_NOSFX, GAMEOPTION_T7G_FAST_MOVIE_SPEED, GAMEOPTION_ORIGINAL_SAVELOAD)
 		},
 		kGroovieT7G
 	},
@@ -102,7 +103,7 @@ static const GroovieGameDescription gameDescriptions[] = {
 			AD_ENTRY2s("script.grv", "d1b8033b40aa67c076039881eccce90d", 16659,
 						"SeventhGuest", NULL, -1),
 			Common::EN_ANY, Common::kPlatformIOS, ADGF_NO_FLAGS,
-			GUIO4(GUIO_NOMIDI, GUIO_NOASPECT, GUIO_NOSFX, GAMEOPTION_T7G_FAST_MOVIE_SPEED)
+			GUIO5(GUIO_NOMIDI, GUIO_NOASPECT, GUIO_NOSFX, GAMEOPTION_T7G_FAST_MOVIE_SPEED, GAMEOPTION_ORIGINAL_SAVELOAD)
 		},
 		kGroovieT7G
 	},
@@ -356,6 +357,16 @@ 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"),
+			"originalsaveload",
+			false
+		}
+	},
+
 	AD_EXTRA_GUI_OPTIONS_TERMINATOR
 };
 
diff --git a/engines/groovie/script.cpp b/engines/groovie/script.cpp
index d81863f074..70ba473e9e 100644
--- a/engines/groovie/script.cpp
+++ b/engines/groovie/script.cpp
@@ -35,6 +35,8 @@
 #include "groovie/tlcgame.h"
 #include "groovie/t11hgame.h"
 
+#include "gui/saveload.h"
+
 #include "common/archive.h"
 #include "common/config-manager.h"
 #include "common/debug-channels.h"
@@ -651,6 +653,25 @@ void Script::o_videofromref() {			// 0x09
 			debugCN(1, kDebugScript, "Groovie::Script:  (This video is special somehow!)");
 			warning("Groovie::Script: (This video (0x%04X) is special somehow!)", fileref);
 		}
+		break;
+
+	case 0x2420:	// load from main menu
+		if (_version == kGroovieT7G && !ConfMan.getBool("originalsaveload")) {
+			GUI::SaveLoadChooser *dialog = new GUI::SaveLoadChooser(_("Load game:"), _("Load"), false);
+			int slot = dialog->runModalWithCurrentTarget();
+			delete dialog;
+
+			if (slot >= 0) {
+				_currentInstruction = 0x287;
+				_bitflags = 0;
+				setVariable(0x19, slot);
+			} else {
+				_currentInstruction = 0x016;	// back to main menu (load game / new game)
+			}
+
+			return;
+		}
+		break;
 
 	default:
 		break;




More information about the Scummvm-git-logs mailing list