[Scummvm-git-logs] scummvm master -> 0be151d5072615a438af9cce0288fb086c143410

dreammaster dreammaster at scummvm.org
Sun May 28 20:56:58 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:
0be151d507 TITANIC: Fix crash inserting photograph into star control


Commit: 0be151d5072615a438af9cce0288fb086c143410
    https://github.com/scummvm/scummvm/commit/0be151d5072615a438af9cce0288fb086c143410
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-05-28T14:56:44-04:00

Commit Message:
TITANIC: Fix crash inserting photograph into star control

Changed paths:
    engines/titanic/star_control/star_control_sub8.cpp
    engines/titanic/star_control/star_ref.cpp
    engines/titanic/star_control/star_ref.h


diff --git a/engines/titanic/star_control/star_control_sub8.cpp b/engines/titanic/star_control/star_control_sub8.cpp
index 23a65e8..470b357 100644
--- a/engines/titanic/star_control/star_control_sub8.cpp
+++ b/engines/titanic/star_control/star_control_sub8.cpp
@@ -98,7 +98,7 @@ bool CStarControlSub8::fn1(CStarField *starField, CSurfaceArea *surfaceArea, CSt
 
 	if (count > 0) {
 		allocate(count);
-		CStarRef2 starRef(starField, &_positions);
+		CStarRefArray starRef(starField, &_positions);
 		starRef.process(surfaceArea, camera);
 		return true;
 	} else {
diff --git a/engines/titanic/star_control/star_ref.cpp b/engines/titanic/star_control/star_ref.cpp
index 185c953..6f68a6c 100644
--- a/engines/titanic/star_control/star_ref.cpp
+++ b/engines/titanic/star_control/star_ref.cpp
@@ -92,14 +92,16 @@ bool CStarRef1::check(const Common::Point &pt, int index) {
 
 /*------------------------------------------------------------------------*/
 
-bool CStarRef2::check(const Common::Point &pt, int index) {
+bool CStarRefArray::check(const Common::Point &pt, int index) {
 	if (_index >= (int)_positions->size())
+		// Positions array full, so ignore
 		return false;
 
-	CStarPosition &sp = (*_positions)[index];
+	CStarPosition &sp = (*_positions)[_index++];
 	sp.x = pt.x;
 	sp.y = pt.y;
 	sp._index1 = sp._index2 = index;
+
 	return true;
 }
 
diff --git a/engines/titanic/star_control/star_ref.h b/engines/titanic/star_control/star_ref.h
index cb94555..4e66db0 100644
--- a/engines/titanic/star_control/star_ref.h
+++ b/engines/titanic/star_control/star_ref.h
@@ -56,15 +56,15 @@ public:
 	virtual bool check(const Common::Point &pt, int index);
 };
 
-class CStarRef2 : public CBaseStarRef {
+class CStarRefArray : public CBaseStarRef {
 private:
 	Common::Array<CStarPosition> *_positions;
 public:
 	int _index;
 public:
-	CStarRef2(CBaseStars *stars, Common::Array<CStarPosition> *positions) :
+	CStarRefArray(CBaseStars *stars, Common::Array<CStarPosition> *positions) :
 		CBaseStarRef(stars), _positions(positions), _index(0) {}
-	virtual ~CStarRef2() {}
+	virtual ~CStarRefArray() {}
 
 	virtual bool check(const Common::Point &pt, int index);
 };





More information about the Scummvm-git-logs mailing list