[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