[Scummvm-git-logs] scummvm master -> 405585b7eb9ee3c20a5849e63796a0953bc98da5
neuromancer
noreply at scummvm.org
Sun Jan 8 14:17:52 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:
405585b7eb FREESCAPE: Ensure that the mouse is unlocked when the engine is paused
Commit: 405585b7eb9ee3c20a5849e63796a0953bc98da5
https://github.com/scummvm/scummvm/commit/405585b7eb9ee3c20a5849e63796a0953bc98da5
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2023-01-08T11:17:49-03:00
Commit Message:
FREESCAPE: Ensure that the mouse is unlocked when the engine is paused
Changed paths:
engines/freescape/freescape.cpp
engines/freescape/freescape.h
engines/freescape/games/driller.cpp
diff --git a/engines/freescape/freescape.cpp b/engines/freescape/freescape.cpp
index af438a8a221..f2b8f06703a 100644
--- a/engines/freescape/freescape.cpp
+++ b/engines/freescape/freescape.cpp
@@ -416,17 +416,19 @@ void FreescapeEngine::processInput() {
drawFrame();
_savedScreen = _gfx->getScreenshot();
_gfx->setViewport(_fullscreenViewArea);
- g_system->lockMouse(false);
openMainMenuDialog();
- g_system->lockMouse(true);
_gfx->setViewport(_viewArea);
_savedScreen->free();
delete _savedScreen;
break;
case Common::KEYCODE_SPACE:
_shootMode = !_shootMode;
- if (!_shootMode)
+ if (!_shootMode) {
+ g_system->lockMouse(true);
centerCrossair();
+ } else {
+ g_system->lockMouse(false);
+ }
break;
case Common::KEYCODE_i:
drawInfoMenu();
@@ -872,5 +874,15 @@ void FreescapeEngine::removeTimers() {
g_system->getTimerManager()->removeTimerProc(&countdownCallback);
}
+void FreescapeEngine::pauseEngineIntern(bool pause) {
+ Engine::pauseEngineIntern(pause);
+
+ // TODO: Handle the viewport here
+
+ // Unlock the mouse so that the cursor is usable when the GMM opens
+ if (!_shootMode) {
+ _system->lockMouse(!pause);
+ }
+}
} // namespace Freescape
diff --git a/engines/freescape/freescape.h b/engines/freescape/freescape.h
index 5ecf34765eb..6c1a6e3f35a 100644
--- a/engines/freescape/freescape.h
+++ b/engines/freescape/freescape.h
@@ -327,6 +327,8 @@ public:
virtual Common::Error loadGameStreamExtended(Common::SeekableReadStream *stream);
Graphics::Surface *_savedScreen;
+ void pauseEngineIntern(bool pause) override;
+
// Timers
bool startCountdown(uint32 delay);
void removeTimers();
diff --git a/engines/freescape/games/driller.cpp b/engines/freescape/games/driller.cpp
index 58b005e5fa2..a8adb5633a5 100644
--- a/engines/freescape/games/driller.cpp
+++ b/engines/freescape/games/driller.cpp
@@ -1157,15 +1157,11 @@ void DrillerEngine::drawInfoMenu() {
case Common::EVENT_KEYDOWN:
if (event.kbd.keycode == Common::KEYCODE_l) {
_gfx->setViewport(_fullscreenViewArea);
- g_system->lockMouse(false);
loadGameDialog();
- g_system->lockMouse(true);
_gfx->setViewport(_viewArea);
} else if (event.kbd.keycode == Common::KEYCODE_s) {
_gfx->setViewport(_fullscreenViewArea);
- g_system->lockMouse(false);
saveGameDialog();
- g_system->lockMouse(true);
_gfx->setViewport(_viewArea);
} else if (isDOS() && event.kbd.keycode == Common::KEYCODE_t) {
// TODO
More information about the Scummvm-git-logs
mailing list