[Scummvm-git-logs] scummvm master -> 10ada8b23b4b1b5050e94eca5818280ecc506a9a

dreammaster dreammaster at scummvm.org
Fri Jun 2 03:20:00 CEST 2017


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:
10ada8b23b TITANIC: Fix some calculation errors when locking markers


Commit: 10ada8b23b4b1b5050e94eca5818280ecc506a9a
    https://github.com/scummvm/scummvm/commit/10ada8b23b4b1b5050e94eca5818280ecc506a9a
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-06-01T21:19:49-04:00

Commit Message:
TITANIC: Fix some calculation errors when locking markers

Changed paths:
    engines/titanic/star_control/star_control.cpp
    engines/titanic/star_control/star_field.cpp
    engines/titanic/star_control/star_field.h
    engines/titanic/star_control/star_view.cpp


diff --git a/engines/titanic/star_control/star_control.cpp b/engines/titanic/star_control/star_control.cpp
index d9737bc..3a0eeae 100644
--- a/engines/titanic/star_control/star_control.cpp
+++ b/engines/titanic/star_control/star_control.cpp
@@ -262,7 +262,7 @@ bool CStarControl::isSolved() const {
 
 void CStarControl::forceSolved() {
 	while (!_starField.isSolved())
-		_starField.fn7();
+		_starField.incMatches();
 }
 
 bool CStarControl::canSetStarDestination() const {
diff --git a/engines/titanic/star_control/star_field.cpp b/engines/titanic/star_control/star_field.cpp
index 1cfc576..6d8661f 100644
--- a/engines/titanic/star_control/star_field.cpp
+++ b/engines/titanic/star_control/star_field.cpp
@@ -203,11 +203,13 @@ double CStarField::fn5(CSurfaceArea *surfaceArea, CStarCamera *camera,
 	double incr = (v1._x - pt._x) * (v1._x - pt._x);
 	if (incr > 3600.0)
 		return -1.0;
-	if ((v1._y - pt._y) * (v1._y - pt._y) + incr > 3600.0)
+
+	incr += (v1._y - pt._y) * (v1._y - pt._y);
+	if (incr > 3600.0)
 		return -1.0;
 
 	_closeToMarker = true;
-	return v1._y - pt._y;
+	return incr;
 }
 
 void CStarField::fn6(CVideoSurface *surface, CStarCamera *camera) {
@@ -215,7 +217,7 @@ void CStarField::fn6(CVideoSurface *surface, CStarCamera *camera) {
 	_crosshairs.fn1(this, &surfaceArea, camera);
 }
 
-void CStarField::fn7() {
+void CStarField::incMatches() {
 	_crosshairs.incMatches();
 	setSolved();
 }
diff --git a/engines/titanic/star_control/star_field.h b/engines/titanic/star_control/star_field.h
index 12af83a..e367cfe 100644
--- a/engines/titanic/star_control/star_field.h
+++ b/engines/titanic/star_control/star_field.h
@@ -130,7 +130,12 @@ public:
 	double fn5(CSurfaceArea *surfaceArea, CStarCamera *camera,
 		FVector &v1, FVector &v2, FVector &v3);
 	void fn6(CVideoSurface *surface, CStarCamera *camera);
-	void fn7();
+
+	/**
+	 * Increments the number of matched markers
+	 */
+	void incMatches();
+
 	void fn8(CVideoSurface *surface);
 	void fn9() { _starCloseup.fn1(); }
 
diff --git a/engines/titanic/star_control/star_view.cpp b/engines/titanic/star_control/star_view.cpp
index 12945b9..7772469 100644
--- a/engines/titanic/star_control/star_view.cpp
+++ b/engines/titanic/star_control/star_view.cpp
@@ -382,26 +382,26 @@ void CStarView::lockStar() {
 		double val = _starField->fn5(&surfaceArea, &_camera, v1, v2, v3);
 
 		if (val > -1.0) {
-			v1 += surfaceArea._centroid;
-			v3 += surfaceArea._centroid;
+			v1 -= surfaceArea._centroid;
+			v3 -= surfaceArea._centroid;
 
 			switch (_starField->getMatchedIndex()) {
 			case -1:
 				// First star match
 				_camera.fn2(v1, v2, v3);
-				_starField->fn7();
+				_starField->incMatches();
 				break;
 
 			case 0:
 				// Second star match
 				_camera.fn3(&_photoViewport, v2);
-				_starField->fn7();
+				_starField->incMatches();
 				break;
 
 			case 1:
 				// Third star match
 				_camera.fn1(&_photoViewport, v2);
-				_starField->fn7();
+				_starField->incMatches();
 				break;
 
 			default:





More information about the Scummvm-git-logs mailing list