[Scummvm-git-logs] scummvm master -> b4c5318e6d48366e23221e9ab1643393c497561e
dreammaster
dreammaster at scummvm.org
Sat Jul 15 21:48:49 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:
b4c5318e6d TITANIC: Don't allow starfield to be shown if puzzle was skipped
Commit: b4c5318e6d48366e23221e9ab1643393c497561e
https://github.com/scummvm/scummvm/commit/b4c5318e6d48366e23221e9ab1643393c497561e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-07-15T15:48:43-04:00
Commit Message:
TITANIC: Don't allow starfield to be shown if puzzle was skipped
Changed paths:
engines/titanic/pet_control/pet_remote_glyphs.cpp
engines/titanic/star_control/star_control.cpp
engines/titanic/star_control/star_control.h
engines/titanic/star_control/star_crosshairs.h
engines/titanic/star_control/star_field.cpp
engines/titanic/star_control/star_field.h
diff --git a/engines/titanic/pet_control/pet_remote_glyphs.cpp b/engines/titanic/pet_control/pet_remote_glyphs.cpp
index b56c2f6..7aae879 100644
--- a/engines/titanic/pet_control/pet_remote_glyphs.cpp
+++ b/engines/titanic/pet_control/pet_remote_glyphs.cpp
@@ -545,11 +545,16 @@ bool CNavigationControllerGlyph::MouseButtonUpMsg(const Point &pt) {
if (!_gfxElement->MouseButtonUpMsg(pt))
return false;
+ CPetControl *pet = getPetControl();
+ CStarControl *starControl = pet->getStarControl();
_flag = !_flag;
- CTreeItem *target = getPetControl()->_remoteTarget;
- if (target) {
- CPETHelmetOnOffMsg msg;
- msg.execute(target);
+
+ if (!starControl->isSkipped()) {
+ CTreeItem *target = pet->_remoteTarget;
+ if (target) {
+ CPETHelmetOnOffMsg msg;
+ msg.execute(target);
+ }
}
return true;
diff --git a/engines/titanic/star_control/star_control.cpp b/engines/titanic/star_control/star_control.cpp
index ff2c498..42f81f5 100644
--- a/engines/titanic/star_control/star_control.cpp
+++ b/engines/titanic/star_control/star_control.cpp
@@ -260,9 +260,12 @@ bool CStarControl::isSolved() const {
return _starField.isSolved();
}
+bool CStarControl::isSkipped() const {
+ return _starField.isSkipped();
+}
+
void CStarControl::forceSolved() {
- while (!_starField.isSolved())
- _starField.incMatches();
+ _starField.skipPuzzle();
}
bool CStarControl::canSetStarDestination() const {
diff --git a/engines/titanic/star_control/star_control.h b/engines/titanic/star_control/star_control.h
index 2c314a6..776f25a 100644
--- a/engines/titanic/star_control/star_control.h
+++ b/engines/titanic/star_control/star_control.h
@@ -78,6 +78,11 @@ public:
bool isSolved() const;
/**
+ * Return true if the starfield puzzle was skipped
+ */
+ bool isSkipped() const;
+
+ /**
* Forces the starfield to be solved
*/
void forceSolved();
diff --git a/engines/titanic/star_control/star_crosshairs.h b/engines/titanic/star_control/star_crosshairs.h
index e91e245..ebd6f0d 100644
--- a/engines/titanic/star_control/star_crosshairs.h
+++ b/engines/titanic/star_control/star_crosshairs.h
@@ -120,7 +120,12 @@ public:
/**
* Returns true if the starfield is solved
*/
- bool isSolved() const { return _matchIndex == 2; }
+ bool isSolved() const { return _matchIndex >= 2; }
+
+ /**
+ * Return true if the starfield puzzle was skipped
+ */
+ bool isSkipped() const { return _matchIndex == 3; }
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_field.cpp b/engines/titanic/star_control/star_field.cpp
index 6d8661f..722b448 100644
--- a/engines/titanic/star_control/star_field.cpp
+++ b/engines/titanic/star_control/star_field.cpp
@@ -131,13 +131,22 @@ bool CStarField::isCloseToMarker() const {
}
void CStarField::setSolved() {
- _isSolved = _crosshairs._matchIndex == 2;
+ _isSolved = _crosshairs._matchIndex >= 2;
}
bool CStarField::isSolved() const {
return _isSolved;
}
+bool CStarField::isSkipped() const {
+ return _crosshairs.isSkipped();
+}
+
+void CStarField::skipPuzzle() {
+ _crosshairs._matchIndex = 3;
+ setSolved();
+}
+
void CStarField::fn1(CErrorCode *errorCode) {
_starCloseup.proc3(errorCode);
}
diff --git a/engines/titanic/star_control/star_field.h b/engines/titanic/star_control/star_field.h
index 63eb68d..bd3f8ae 100644
--- a/engines/titanic/star_control/star_field.h
+++ b/engines/titanic/star_control/star_field.h
@@ -120,6 +120,16 @@ public:
bool isSolved() const;
/**
+ * Return true if the starfield puzzle was skipped
+ */
+ bool isSkipped() const;
+
+ /**
+ * Skips the starfield puzzle
+ */
+ void skipPuzzle();
+
+ /**
* Returns the number of markers placed in the starfield
*/
int getMarkerCount() const {
More information about the Scummvm-git-logs
mailing list