[Scummvm-git-logs] scummvm master -> 114296e8daa79e5b3ac3e164997f6f8037d9d5de

mgerhardy noreply at scummvm.org
Fri Jul 17 11:35:40 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:
114296e8da MACS2: add game speed to confman


Commit: 114296e8daa79e5b3ac3e164997f6f8037d9d5de
    https://github.com/scummvm/scummvm/commit/114296e8daa79e5b3ac3e164997f6f8037d9d5de
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2026-07-17T13:34:19+02:00

Commit Message:
MACS2: add game speed to confman

Changed paths:
    engines/macs2/debugtools.cpp
    engines/macs2/macs2.cpp
    engines/macs2/macs2.h
    engines/macs2/metaengine.cpp
    engines/macs2/view1.cpp


diff --git a/engines/macs2/debugtools.cpp b/engines/macs2/debugtools.cpp
index b29b643dcf3..baae93e051d 100644
--- a/engines/macs2/debugtools.cpp
+++ b/engines/macs2/debugtools.cpp
@@ -2074,13 +2074,13 @@ static void showDebugToolbarWindow() {
 		}
 		if (ImGui::BeginMenu("Speed")) {
 			if (ImGui::MenuItem("Normal", NULL, g_engine->_gameSpeedMode == 0)) {
-				g_engine->_gameSpeedMode = 0;
+				g_engine->setGameSpeedMode(0);
 			}
 			if (ImGui::MenuItem("Fast", NULL, g_engine->_gameSpeedMode == 1)) {
-				g_engine->_gameSpeedMode = 1;
+				g_engine->setGameSpeedMode(1);
 			}
 			if (ImGui::MenuItem("Slow", NULL, g_engine->_gameSpeedMode == 2)) {
-				g_engine->_gameSpeedMode = 2;
+				g_engine->setGameSpeedMode(2);
 			}
 			ImGui::EndMenu();
 		}
diff --git a/engines/macs2/macs2.cpp b/engines/macs2/macs2.cpp
index 054d338c4f9..2725c640e3b 100644
--- a/engines/macs2/macs2.cpp
+++ b/engines/macs2/macs2.cpp
@@ -49,6 +49,8 @@
 
 namespace Macs2 {
 
+static constexpr const char *kGameSpeedModeConfigKey = "macs2_game_speed_mode";
+
 void resetCharacterWalkPath(Character *character) {
 	if (character == nullptr || character->_gameObject == nullptr)
 		return;
@@ -1997,8 +1999,14 @@ Common::String Macs2Engine::getGameId() const {
 	return _gameDescription->gameId;
 }
 
+void Macs2Engine::setGameSpeedMode(uint16 mode) {
+	_gameSpeedMode = mode % 3;
+	ConfMan.setInt(kGameSpeedModeConfigKey, _gameSpeedMode);
+}
+
 Common::Error Macs2Engine::run() {
 	GameObjects::instance().init();
+	setGameSpeedMode(ConfMan.getInt(kGameSpeedModeConfigKey));
 	readResourceFile();
 	readExecutable();
 
diff --git a/engines/macs2/macs2.h b/engines/macs2/macs2.h
index 936b62a4071..ea07d195a76 100644
--- a/engines/macs2/macs2.h
+++ b/engines/macs2/macs2.h
@@ -454,6 +454,7 @@ public:
 	// Game speed mode from original binary (g_wGameSpeedMode at 1020:0214).
 	// Cycled by Ctrl+T: 0=normal, 1=fast (no frame wait), 2=slow (wait for tick>=0x12).
 	uint16 _gameSpeedMode = 0;
+	void setGameSpeedMode(uint16 mode);
 
 	// Input record/playback system from original binary.
 	// Original usage: MCSEXEC filename /rRecFile or /pPlayFile
diff --git a/engines/macs2/metaengine.cpp b/engines/macs2/metaengine.cpp
index 148d9068d04..b0655bcd3aa 100644
--- a/engines/macs2/metaengine.cpp
+++ b/engines/macs2/metaengine.cpp
@@ -113,6 +113,7 @@ GUI::OptionsContainerWidget *Macs2MetaEngine::buildEngineOptionsWidget(GUI::GuiO
 void Macs2MetaEngine::registerDefaultSettings(const Common::String &target) const {
 	ConfMan.registerDefault("original_menus", false);
 	ConfMan.registerDefault("enhancements", kEnhGameBreakingBugFixes | kEnhGrp1);
+	ConfMan.registerDefault("macs2_game_speed_mode", 0);
 #ifdef USE_TTS
 	ConfMan.registerDefault("tts_enabled", false);
 #endif
diff --git a/engines/macs2/view1.cpp b/engines/macs2/view1.cpp
index 57bb1b19bd2..1c7a503691f 100644
--- a/engines/macs2/view1.cpp
+++ b/engines/macs2/view1.cpp
@@ -2015,7 +2015,7 @@ bool View1::msgAction(const ActionMessage &msg) {
 	case Macs2::kMacs2ActionMenu:
 		return msgKeypress(KeypressMessage(Common::KeyState(Common::KEYCODE_n, 'n')));
 	case Macs2::kMacs2ActionGameSpeed:
-		g_engine->_gameSpeedMode = (g_engine->_gameSpeedMode + 1) % 3;
+		g_engine->setGameSpeedMode(g_engine->_gameSpeedMode + 1);
 		debug("Game speed mode: %u", g_engine->_gameSpeedMode);
 		return true;
 	case Macs2::kMacs2ActionOpenGMM:




More information about the Scummvm-git-logs mailing list