[Scummvm-git-logs] scummvm master -> a79e451fee7093a6eb1c3b7ca44af09474167bc0
neuromancer
noreply at scummvm.org
Sun Jan 8 15:46:37 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:
a79e451fee FREESCAPE: use relative mouse position for mouselook
Commit: a79e451fee7093a6eb1c3b7ca44af09474167bc0
https://github.com/scummvm/scummvm/commit/a79e451fee7093a6eb1c3b7ca44af09474167bc0
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2023-01-08T12:45:34-03:00
Commit Message:
FREESCAPE: use relative mouse position for mouselook
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 f2b8f06703a..fe83506056c 100644
--- a/engines/freescape/freescape.cpp
+++ b/engines/freescape/freescape.cpp
@@ -119,7 +119,6 @@ FreescapeEngine::FreescapeEngine(OSystem *syst, const ADGameDescription *gd)
_fontLoaded = false;
_dataBundle = nullptr;
- _lastMousePos = Common::Point(0, 0);
_lastFrame = 0;
_nearClipPlane = 2;
_farClipPlane = 8192 + 1802; // Added some extra distance to avoid flickering
@@ -461,31 +460,7 @@ void FreescapeEngine::processInput() {
break;
}
- if (mousePos.x <= 5 || mousePos.x >= _screenW - 5) {
- g_system->warpMouse(_screenW / 2, mousePos.y);
-
- _lastMousePos.x = _screenW / 2;
- _lastMousePos.y = mousePos.y;
- if (mousePos.x <= 5)
- mousePos.x = _lastMousePos.x + 3;
- else
- mousePos.x = _lastMousePos.x - 3;
-
- mousePos.y = _lastMousePos.y;
-
- } else if (mousePos.y <= 5 || mousePos.y >= _screenH - 5) {
- g_system->warpMouse(mousePos.x, _screenH / 2);
- _lastMousePos.x = mousePos.x;
- _lastMousePos.y = _screenH / 2;
- if (mousePos.y <= 5)
- mousePos.y = _lastMousePos.y + 3;
- else
- mousePos.y = _lastMousePos.y - 3;
-
- mousePos.x = _lastMousePos.x;
- }
- rotate(_lastMousePos, mousePos);
- _lastMousePos = mousePos;
+ rotate(event.relMouse.x / 10., event.relMouse.y / 10.);
break;
case Common::EVENT_LBUTTONDOWN:
@@ -560,7 +535,7 @@ Common::Error FreescapeEngine::run() {
bool endGame = false;
// Draw first frame
- rotate(_lastMousePos, _lastMousePos);
+ rotate(0, 0);
drawFrame();
_gfx->flipBuffer();
g_system->updateScreen();
diff --git a/engines/freescape/freescape.h b/engines/freescape/freescape.h
index 6c1a6e3f35a..c78ed219fc0 100644
--- a/engines/freescape/freescape.h
+++ b/engines/freescape/freescape.h
@@ -192,7 +192,6 @@ public:
void rotate(float xoffset, float yoffset);
// Input state
float _lastFrame;
- Common::Point _lastMousePos;
// Interaction
void shoot();
diff --git a/engines/freescape/games/driller.cpp b/engines/freescape/games/driller.cpp
index a8adb5633a5..8513c9e9700 100644
--- a/engines/freescape/games/driller.cpp
+++ b/engines/freescape/games/driller.cpp
@@ -206,7 +206,6 @@ void DrillerEngine::gotoArea(uint16 areaID, int entranceID) {
if (areaID != _startArea || entranceID != _startEntrance) {
g_system->warpMouse(_crossairPosition.x, _crossairPosition.y);
- _lastMousePos = _crossairPosition;
rotate(0, 0);
}
}
@@ -1496,7 +1495,6 @@ void DrillerEngine::initGameState() {
_noClipMode = false;
_shootingFrames = 0;
_underFireFrames = 0;
- _lastMousePos = Common::Point(0, 0);
_yaw = 0;
_pitch = 0;
More information about the Scummvm-git-logs
mailing list