[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