[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