aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2016-07-17 15:40:07 -0400
committerPaul Gilbert2016-07-17 15:40:07 -0400
commit90f2cce0b9621b483f9530c3615b40a0c8a50bb8 (patch)
tree30efae5b2ff6f212e04996a0aef8c22ae3825c16
parent816b99f5a657181ea84e0f42d2713406a9f041d2 (diff)
downloadscummvm-rg350-90f2cce0b9621b483f9530c3615b40a0c8a50bb8.tar.gz
scummvm-rg350-90f2cce0b9621b483f9530c3615b40a0c8a50bb8.tar.bz2
scummvm-rg350-90f2cce0b9621b483f9530c3615b40a0c8a50bb8.zip
TITANIC: Start of starfield rendering
-rw-r--r--engines/titanic/star_control/base_star.cpp4
-rw-r--r--engines/titanic/star_control/base_star.h10
-rw-r--r--engines/titanic/star_control/star_control_sub12.cpp4
-rw-r--r--engines/titanic/star_control/star_control_sub12.h2
-rw-r--r--engines/titanic/star_control/star_field.cpp7
-rw-r--r--engines/titanic/star_control/star_field.h2
-rw-r--r--engines/titanic/star_control/star_view.cpp2
7 files changed, 25 insertions, 6 deletions
diff --git a/engines/titanic/star_control/base_star.cpp b/engines/titanic/star_control/base_star.cpp
index 4f4f838c12..f09df38620 100644
--- a/engines/titanic/star_control/base_star.cpp
+++ b/engines/titanic/star_control/base_star.cpp
@@ -48,8 +48,8 @@ void CBaseStarEntry::load(Common::SeekableReadStream &s) {
CBaseStar::CBaseStar() : _minVal(0.0), _maxVal(1.0), _range(0.0) {
}
-void CBaseStar::proc2(int v1, int v2, int v3) {
- error("TODO");
+void CBaseStar::draw(CSurfaceArea *surfaceArea, CStarControlSub12 *sub12, CStarControlSub5 *sub5) {
+ // TODO
}
void CBaseStar::clear() {
diff --git a/engines/titanic/star_control/base_star.h b/engines/titanic/star_control/base_star.h
index ad3ad13804..cf5cbc72d2 100644
--- a/engines/titanic/star_control/base_star.h
+++ b/engines/titanic/star_control/base_star.h
@@ -25,9 +25,13 @@
#include "titanic/support/simple_file.h"
#include "titanic/star_control/star_control_sub4.h"
+#include "titanic/star_control/star_control_sub5.h"
+#include "titanic/star_control/surface_area.h"
namespace Titanic {
+class CStarControlSub12;
+
struct CBaseStarEntry {
byte _field0;
byte _field1;
@@ -72,7 +76,11 @@ public:
CBaseStar();
virtual ~CBaseStar() {}
- virtual void proc2(int v1, int v2, int v3);
+ /**
+ * Draw the item
+ */
+ 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; }
virtual bool proc5(int v1) { return false; }
diff --git a/engines/titanic/star_control/star_control_sub12.cpp b/engines/titanic/star_control/star_control_sub12.cpp
index aa65f718eb..5fc26e4cf3 100644
--- a/engines/titanic/star_control/star_control_sub12.cpp
+++ b/engines/titanic/star_control/star_control_sub12.cpp
@@ -37,4 +37,8 @@ void CStarControlSub12::save(SimpleFile *file, int indent) {
_sub13.save(file, indent);
}
+void CStarControlSub12::setupHandler(void *v) {
+ // TODO
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub12.h b/engines/titanic/star_control/star_control_sub12.h
index e053aefb84..51d836628f 100644
--- a/engines/titanic/star_control/star_control_sub12.h
+++ b/engines/titanic/star_control/star_control_sub12.h
@@ -41,6 +41,8 @@ private:
int _field2C;
CStarControlSub13 _sub13;
int _field108;
+private:
+ void setupHandler(void *v);
public:
CStarControlSub12(void *val1, void *val2);
virtual ~CStarControlSub12() {}
diff --git a/engines/titanic/star_control/star_field.cpp b/engines/titanic/star_control/star_field.cpp
index 2c94ebbc62..a90d2280a1 100644
--- a/engines/titanic/star_control/star_field.cpp
+++ b/engines/titanic/star_control/star_field.cpp
@@ -21,6 +21,7 @@
*/
#include "titanic/star_control/star_field.h"
+#include "titanic/star_control/surface_area.h"
namespace Titanic {
@@ -62,7 +63,11 @@ bool CStarField::initDocument() {
return valid;
}
-void CStarField::draw(CVideoSurface *surface, CStarControlSub12 *sub12) {
+void CStarField::render(CVideoSurface *surface, CStarControlSub12 *sub12) {
+ CSurfaceArea surfaceArea(surface);
+ draw(&surfaceArea, sub12, &_sub5);
+
+
// TODO
}
diff --git a/engines/titanic/star_control/star_field.h b/engines/titanic/star_control/star_field.h
index d02749b048..18104cdedf 100644
--- a/engines/titanic/star_control/star_field.h
+++ b/engines/titanic/star_control/star_field.h
@@ -63,7 +63,7 @@ public:
/**
* Renders the contents of the starfield
*/
- void draw(CVideoSurface *surface, CStarControlSub12 *sub12);
+ void render(CVideoSurface *surface, CStarControlSub12 *sub12);
int get1() const;
void set1(int val);
diff --git a/engines/titanic/star_control/star_view.cpp b/engines/titanic/star_control/star_view.cpp
index 63bbed139b..a4c742c82a 100644
--- a/engines/titanic/star_control/star_view.cpp
+++ b/engines/titanic/star_control/star_view.cpp
@@ -94,7 +94,7 @@ void CStarView::draw(CScreenManager *screenManager) {
// Render the display
_videoSurface->clear();
_videoSurface->lock();
- _starField->draw(_videoSurface, &_sub12);
+ _starField->render(_videoSurface, &_sub12);
_videoSurface->unlock();
// Blit the resulting surface to the screen