[Scummvm-git-logs] scummvm master -> e229e3c4a45e0b3a64e522d1dae18cfeee790f93

dreammaster dreammaster at scummvm.org
Thu Mar 2 05:07:10 CET 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:
e229e3c4a4 TITANIC: Added starfield button down code


Commit: e229e3c4a45e0b3a64e522d1dae18cfeee790f93
    https://github.com/scummvm/scummvm/commit/e229e3c4a45e0b3a64e522d1dae18cfeee790f93
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-03-01T23:07:08-05:00

Commit Message:
TITANIC: Added starfield button down code

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


diff --git a/engines/titanic/star_control/base_star.h b/engines/titanic/star_control/base_star.h
index f3e16f1..c3e4899 100644
--- a/engines/titanic/star_control/base_star.h
+++ b/engines/titanic/star_control/base_star.h
@@ -92,10 +92,15 @@ public:
 	virtual void draw(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5);
 
 	virtual bool loadYale(int v1) { return true; }
-	virtual bool proc4(int v1, int v2, int v3, int v4, int v5) { return false; }
+
+	/**
+	 * Selects a star
+	 */
+	virtual bool selectStar(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12,
+		int flags, const Common::Point &pt) { return false; }
+
 	virtual bool proc5(int v1) { return false; }
 	virtual bool loadStar() { return false; }
-	virtual bool proc7(int v1, int v2) { return true; }
 
 	/**
 	 * Load the item's data
diff --git a/engines/titanic/star_control/star_control_sub2.cpp b/engines/titanic/star_control/star_control_sub2.cpp
index f020e2c..cf7190f 100644
--- a/engines/titanic/star_control/star_control_sub2.cpp
+++ b/engines/titanic/star_control/star_control_sub2.cpp
@@ -30,7 +30,8 @@ bool CStarControlSub2::loadYale(int v1) {
 	return true;
 }
 
-bool CStarControlSub2::proc4(int v1, int v2, int v3, int v4, int v5) {
+bool CStarControlSub2::selectStar(CSurfaceArea *surfaceArea,
+		CStarControlSub12 *sub12, int flags, const Common::Point &pt) {
 	// TODO
 	return true;
 }
@@ -40,11 +41,6 @@ bool CStarControlSub2::loadStar() {
 	return true;
 }
 
-bool CStarControlSub2::proc7(int v1, int v2) {
-	// TODO
-	return true;
-}
-
 bool CStarControlSub2::setup() {
 	// TODO
 	return true;
diff --git a/engines/titanic/star_control/star_control_sub2.h b/engines/titanic/star_control/star_control_sub2.h
index c3d756e..9de2da4 100644
--- a/engines/titanic/star_control/star_control_sub2.h
+++ b/engines/titanic/star_control/star_control_sub2.h
@@ -32,9 +32,14 @@ public:
 	virtual ~CStarControlSub2() {}
 
 	virtual bool loadYale(int v1);
-	virtual bool proc4(int v1, int v2, int v3, int v4, int v5);
+
+	/**
+	 * Selects a star
+	 */
+	virtual bool selectStar(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12,
+		int flags, const Common::Point &pt);
+
 	virtual bool loadStar();
-	virtual bool proc7(int v1, int v2);
 
 	/**
 	 * Setup the control
diff --git a/engines/titanic/star_control/star_control_sub8.cpp b/engines/titanic/star_control/star_control_sub8.cpp
index 78fdfa7..ff5ca35 100644
--- a/engines/titanic/star_control/star_control_sub8.cpp
+++ b/engines/titanic/star_control/star_control_sub8.cpp
@@ -21,6 +21,8 @@
  */
 
 #include "titanic/star_control/star_control_sub8.h"
+#include "titanic/star_control/star_control_sub7.h"
+#include "titanic/star_control/star_field.h"
 
 namespace Titanic {
 
@@ -30,4 +32,20 @@ CStarControlSub8::CStarControlSub8() : _field8(-1) {
 #endif
 }
 
+bool MouseButtonDown(const Common::Point &pt) {
+	// TODO
+	return true;
+}
+
+int CStarControlSub8::findStar(const Common::Point &pt) {
+	// TODO
+	return -1;
+}
+
+void CStarControlSub8::selectStar(int index, CVideoSurface *surface,
+		CStarField *starField, CStarControlSub7 *sub7) {
+	// TODO
+}
+
+
 } // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub8.h b/engines/titanic/star_control/star_control_sub8.h
index 71aa8fb..ab05316 100644
--- a/engines/titanic/star_control/star_control_sub8.h
+++ b/engines/titanic/star_control/star_control_sub8.h
@@ -24,9 +24,13 @@
 #define TITANIC_STAR_CONTROL_SUB8_H
 
 #include "titanic/support/simple_file.h"
+#include "titanic/support/video_surface.h"
 
 namespace Titanic {
 
+class CStarField;
+class CStarControlSub7;
+
 class CStarControlSub8 {
 	struct StructEntry {
 		int _field0;
@@ -55,6 +59,11 @@ public:
 	 * Save the data for the class to file
 	 */
 	void save(SimpleFile *file, int indent) {}
+
+	int findStar(const Common::Point &pt);
+
+	void selectStar(int starNum, CVideoSurface *surface, CStarField *starField,
+		CStarControlSub7 *sub7);
 };
 
 } // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_field.cpp b/engines/titanic/star_control/star_field.cpp
index 31e75f3..3cc859b 100644
--- a/engines/titanic/star_control/star_field.cpp
+++ b/engines/titanic/star_control/star_field.cpp
@@ -131,4 +131,20 @@ void CStarField::fn1(CErrorCode *errorCode) {
 	_sub5.proc3(errorCode);
 }
 
+bool CStarField::mouseButtonDown(CVideoSurface *surface, CStarControlSub12 *sub12,
+		int flags, const Common::Point &pt) {
+	if (!_val3) {
+		CSurfaceArea surfaceArea(surface);
+		return selectStar(&surfaceArea, sub12, 0, pt);
+	} else {
+		int starNum = _sub8.findStar(pt);
+		if (starNum >= 0) {
+			_sub8.selectStar(starNum, surface, this, &_sub7);
+			return true;
+		}
+
+		return false;
+	}
+}
+
 } // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_field.h b/engines/titanic/star_control/star_field.h
index 9e8b732..24b22a9 100644
--- a/engines/titanic/star_control/star_field.h
+++ b/engines/titanic/star_control/star_field.h
@@ -93,6 +93,12 @@ public:
 	}
 
 	void fn1(CErrorCode *errorCode);
+
+	/**
+	 * Called when the starfield is clicked
+	 */
+	bool mouseButtonDown(CVideoSurface *surface, CStarControlSub12 *sub12,
+		int flags, const Common::Point &pt);
 };
 
 } // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_view.cpp b/engines/titanic/star_control/star_view.cpp
index 46e4702..32003b6 100644
--- a/engines/titanic/star_control/star_view.cpp
+++ b/engines/titanic/star_control/star_view.cpp
@@ -105,8 +105,14 @@ void CStarView::draw(CScreenManager *screenManager) {
 	}
 }
 
-void CStarView::MouseButtonDownMsg(int unused, const Point &pt) {
-	// TODO
+bool CStarView::MouseButtonDownMsg(int flags, const Point &pt) {
+	if (_starField) {
+		return _starField->mouseButtonDown(
+			_showingPhoto ? _videoSurface2 : _videoSurface,
+			&_sub12, flags, pt);
+	}
+
+	return false;
 }
 
 bool CStarView::MouseMoveMsg(int unused, const Point &pt) {
diff --git a/engines/titanic/star_control/star_view.h b/engines/titanic/star_control/star_view.h
index 4fd640c..a39d058 100644
--- a/engines/titanic/star_control/star_view.h
+++ b/engines/titanic/star_control/star_view.h
@@ -81,7 +81,7 @@ public:
 	/**
 	 * Handles mouse down messages
 	 */
-	void MouseButtonDownMsg(int unused, const Point &pt);
+	bool MouseButtonDownMsg(int unused, const Point &pt);
 
 	/**
 	 * Handles mouse move messages





More information about the Scummvm-git-logs mailing list