aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2017-02-27 09:08:34 -0500
committerPaul Gilbert2017-02-27 09:08:34 -0500
commit1f99c01f1241b240017846822d387501b208f1d2 (patch)
tree47d1e4fa4435ab397aa05a9a781fb74bcc12adac /engines
parent2dab510bee4fd04712bb73fd511073735cc84665 (diff)
downloadscummvm-rg350-1f99c01f1241b240017846822d387501b208f1d2.tar.gz
scummvm-rg350-1f99c01f1241b240017846822d387501b208f1d2.tar.bz2
scummvm-rg350-1f99c01f1241b240017846822d387501b208f1d2.zip
TITANIC: Added remainder of CStarControl class
Diffstat (limited to 'engines')
-rw-r--r--engines/titanic/star_control/base_star.h2
-rw-r--r--engines/titanic/star_control/star_control.cpp21
-rw-r--r--engines/titanic/star_control/star_control.h5
-rw-r--r--engines/titanic/star_control/star_field.h4
4 files changed, 24 insertions, 8 deletions
diff --git a/engines/titanic/star_control/base_star.h b/engines/titanic/star_control/base_star.h
index cf5cbc72d2..7e6329f78a 100644
--- a/engines/titanic/star_control/base_star.h
+++ b/engines/titanic/star_control/base_star.h
@@ -103,6 +103,8 @@ public:
void clear();
void initialize();
+
+ int size() const { return _data.size(); }
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control.cpp b/engines/titanic/star_control/star_control.cpp
index 5874d01760..dcde81e253 100644
--- a/engines/titanic/star_control/star_control.cpp
+++ b/engines/titanic/star_control/star_control.cpp
@@ -72,7 +72,7 @@ void CStarControl::load(SimpleFile *file) {
_view.load(file, 0);
CScreenManager *screenManager = CScreenManager::setCurrent();
if (!screenManager)
- error("There's no screen manager during loading");
+ error("There's no screen manager during loading");
_view.setup(screenManager, &_starField, this);
_view.reset();
@@ -131,7 +131,21 @@ bool CStarControl::FrameMsg(CFrameMsg *msg) {
}
void CStarControl::newFrame() {
- // TODO
+ if (!_petControl)
+ _petControl = getPetControl();
+
+ if (_petControl) {
+ int val1 = _starField.get88();
+ int val2 = 0;
+
+ if (!_starField.get3()) {
+ val2 = _starField.get5();
+ if ((val1 + 2) == _starField.get7Count())
+ val2 = 0;
+ }
+
+ _petControl->starsSetButtons(val1, val2);
+ }
}
void CStarControl::doAction(StarControlAction action) {
@@ -238,10 +252,7 @@ void CStarControl::doAction(StarControlAction action) {
case STAR_19:
_view.petDestinationSet();
break;
-
}
-
- // TODO
}
bool CStarControl::isSolved() const {
diff --git a/engines/titanic/star_control/star_control.h b/engines/titanic/star_control/star_control.h
index 830d586db1..11e6053702 100644
--- a/engines/titanic/star_control/star_control.h
+++ b/engines/titanic/star_control/star_control.h
@@ -26,6 +26,7 @@
#include "titanic/core/game_object.h"
#include "titanic/star_control/star_field.h"
#include "titanic/star_control/star_view.h"
+#include "titanic/pet_control/pet_control.h"
namespace Titanic {
@@ -40,9 +41,7 @@ private:
CStarField _starField;
CStarView _view;
Rect _starRect;
-#if 0
- int _field80B0;
-#endif
+ CPetControl *_petControl;
private:
/**
* Called for ever new game frame
diff --git a/engines/titanic/star_control/star_field.h b/engines/titanic/star_control/star_field.h
index 41f01894f4..6c186f9937 100644
--- a/engines/titanic/star_control/star_field.h
+++ b/engines/titanic/star_control/star_field.h
@@ -87,6 +87,10 @@ public:
* Returns true if the starfield puzzle has been solved
*/
bool isSolved() const;
+
+ int get7Count() const {
+ return _sub7.size();
+ }
};
} // End of namespace Titanic