aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2017-02-27 21:11:16 -0500
committerPaul Gilbert2017-02-27 21:11:16 -0500
commitf819d7332d84e250145d5f93843142d73bf53dd4 (patch)
tree978c16c0b5ed81526997bf11334f1f7446ca6f5b
parent27c80f012a15d0255881df363041217c2a8a7836 (diff)
downloadscummvm-rg350-f819d7332d84e250145d5f93843142d73bf53dd4.tar.gz
scummvm-rg350-f819d7332d84e250145d5f93843142d73bf53dd4.tar.bz2
scummvm-rg350-f819d7332d84e250145d5f93843142d73bf53dd4.zip
TITANIC: Implementing CBaseStar methods
-rw-r--r--engines/titanic/star_control/base_star.cpp64
-rw-r--r--engines/titanic/star_control/base_star.h8
-rw-r--r--engines/titanic/star_control/star_field.cpp4
-rw-r--r--engines/titanic/star_control/star_field.h2
4 files changed, 74 insertions, 4 deletions
diff --git a/engines/titanic/star_control/base_star.cpp b/engines/titanic/star_control/base_star.cpp
index a6ef6d8907..24d3e02b78 100644
--- a/engines/titanic/star_control/base_star.cpp
+++ b/engines/titanic/star_control/base_star.cpp
@@ -21,6 +21,7 @@
*/
#include "titanic/star_control/base_star.h"
+#include "titanic/star_control/star_control_sub12.h"
#include "titanic/titanic.h"
namespace Titanic {
@@ -48,10 +49,6 @@ void CBaseStarEntry::load(Common::SeekableReadStream &s) {
CBaseStar::CBaseStar() : _minVal(0.0), _maxVal(1.0), _range(0.0) {
}
-void CBaseStar::draw(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5) {
- // TODO
-}
-
void CBaseStar::clear() {
_data.clear();
}
@@ -115,4 +112,63 @@ void CBaseStar::resetEntry(CBaseStarEntry &entry) {
entry._data[idx] = 0;
}
+void CBaseStar::draw(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5) {
+ if (!_data.empty()) {
+ switch (sub12->proc27()) {
+ case 0:
+ switch (surfaceArea->_bpp) {
+ case 1:
+ draw1(surfaceArea, sub12, sub5);
+ break;
+ case 2:
+ draw2(surfaceArea, sub12, sub5);
+ break;
+ default:
+ break;
+ }
+ break;
+
+ case 2:
+ switch (surfaceArea->_bpp) {
+ case 1:
+ draw3(surfaceArea, sub12, sub5);
+ break;
+ case 2:
+ draw4(surfaceArea, sub12, sub5);
+ break;
+ default:
+ break;
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+}
+
+void CBaseStar::draw1(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5) {
+ // TODO
+}
+
+void CBaseStar::draw2(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5) {
+ // TODO
+}
+
+void CBaseStar::draw3(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5) {
+ // TODO
+}
+
+void CBaseStar::draw4(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5) {
+ // TODO
+}
+
+void CBaseStar::baseFn1(int v1, int v2, int v3, int v4) {
+ // TODO
+}
+
+void CBaseStar::baseFn2(int v1, int v2) {
+ // TODO
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/base_star.h b/engines/titanic/star_control/base_star.h
index 7e6329f78a..2c1c389e37 100644
--- a/engines/titanic/star_control/base_star.h
+++ b/engines/titanic/star_control/base_star.h
@@ -46,6 +46,11 @@ struct CBaseStarEntry {
};
class CBaseStar {
+private:
+ void draw1(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5);
+ void draw2(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5);
+ void draw3(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5);
+ void draw4(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5);
protected:
Common::Array<CBaseStarEntry> _data;
CStarControlSub4 _sub4;
@@ -72,6 +77,9 @@ protected:
* Reset the data for an entry
*/
void resetEntry(CBaseStarEntry &entry);
+
+ void baseFn1(int v1, int v2, int v3, int v4);
+ void baseFn2(int v1, int v2);
public:
CBaseStar();
virtual ~CBaseStar() {}
diff --git a/engines/titanic/star_control/star_field.cpp b/engines/titanic/star_control/star_field.cpp
index 7502f84d3d..31e75f3c13 100644
--- a/engines/titanic/star_control/star_field.cpp
+++ b/engines/titanic/star_control/star_field.cpp
@@ -127,4 +127,8 @@ bool CStarField::isSolved() const {
return _isSolved;
}
+void CStarField::fn1(CErrorCode *errorCode) {
+ _sub5.proc3(errorCode);
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_field.h b/engines/titanic/star_control/star_field.h
index 6c186f9937..9e8b732f45 100644
--- a/engines/titanic/star_control/star_field.h
+++ b/engines/titanic/star_control/star_field.h
@@ -91,6 +91,8 @@ public:
int get7Count() const {
return _sub7.size();
}
+
+ void fn1(CErrorCode *errorCode);
};
} // End of namespace Titanic