[Scummvm-git-logs] scummvm master -> bd944cadd88462409cef95c4af002f423b652a05
hax0kartik
noreply at scummvm.org
Thu Sep 7 16:11:17 UTC 2023
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:
bd944cadd8 CRAB: Implement mousetrap functionality
Commit: bd944cadd88462409cef95c4af002f423b652a05
https://github.com/scummvm/scummvm/commit/bd944cadd88462409cef95c4af002f423b652a05
Author: Kartik Agarwala (agarwala.kartik at gmail.com)
Date: 2023-09-07T21:40:55+05:30
Commit Message:
CRAB: Implement mousetrap functionality
Changed paths:
engines/crab/ScreenSettings.cpp
engines/crab/app.cpp
engines/crab/ui/GeneralSettingMenu.cpp
diff --git a/engines/crab/ScreenSettings.cpp b/engines/crab/ScreenSettings.cpp
index ee5555ab449..226bd9ce575 100644
--- a/engines/crab/ScreenSettings.cpp
+++ b/engines/crab/ScreenSettings.cpp
@@ -49,9 +49,12 @@ void ScreenSettings::load(rapidxml::xml_node<char> *node) {
//loadBool(_fullscreen, "fullscreen", node);
loadBool(_border, "border", node);
loadBool(_saveOnExit, "save_on_exit", node);
- loadBool(_mouseTrap, "mouse_trap", node);
+ //loadBool(_mouseTrap, "mouse_trap", node);
loadBool(_quality, "quality", node);
+ if (ConfMan.hasKey("mousetrap"))
+ _mouseTrap = ConfMan.getBool("mousetrap");
+
if (ConfMan.hasKey("fullscreen"))
_fullscreen = ConfMan.getBool("fullscreen");
@@ -88,6 +91,7 @@ void ScreenSettings::toggleVsync() {
void ScreenSettings::saveState() {
ConfMan.setBool("fullscreen", _fullscreen);
ConfMan.setBool("vsync", _vsync);
+ ConfMan.setBool("mousetrap", _mouseTrap);
#if 0
root->append_attribute(doc.allocate_attribute("version", g_engine->_stringPool->get(_version)));
diff --git a/engines/crab/app.cpp b/engines/crab/app.cpp
index 8dacec2e45d..2a3e83ae5f2 100644
--- a/engines/crab/app.cpp
+++ b/engines/crab/app.cpp
@@ -181,11 +181,16 @@ void App::loadSettings(const Common::String &filename) {
// Start the sound subsystem
g_engine->_musicManager->load(node);
+
+ g_system->lockMouse(g_engine->_screenSettings->_mouseTrap);
}
}
}
App::~App() {
+ // Return setting to default when game exits
+ g_system->lockMouse(false);
+
g_engine->_imageManager->quit();
g_engine->_musicManager->quit();
g_engine->_textManager->quit();
diff --git a/engines/crab/ui/GeneralSettingMenu.cpp b/engines/crab/ui/GeneralSettingMenu.cpp
index 86ec994efe6..ff88e5f02bb 100644
--- a/engines/crab/ui/GeneralSettingMenu.cpp
+++ b/engines/crab/ui/GeneralSettingMenu.cpp
@@ -99,6 +99,9 @@ void GeneralSettingMenu::handleEvents(const Common::Event &event) {
if (_mouseTrap.handleEvents(event) != BUAC_IGNORE) {
g_engine->_screenSettings->_mouseTrap = !g_engine->_screenSettings->_mouseTrap;
+
+ // Maybe move this to ScreenSettings itself
+ g_system->lockMouse(g_engine->_screenSettings->_mouseTrap);
}
int result = _textSpeed.handleEvents(event);
More information about the Scummvm-git-logs
mailing list