From 90f2cce0b9621b483f9530c3615b40a0c8a50bb8 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 17 Jul 2016 15:40:07 -0400 Subject: TITANIC: Start of starfield rendering --- engines/titanic/star_control/base_star.cpp | 4 ++-- engines/titanic/star_control/base_star.h | 10 +++++++++- engines/titanic/star_control/star_control_sub12.cpp | 4 ++++ engines/titanic/star_control/star_control_sub12.h | 2 ++ engines/titanic/star_control/star_field.cpp | 7 ++++++- engines/titanic/star_control/star_field.h | 2 +- engines/titanic/star_control/star_view.cpp | 2 +- 7 files changed, 25 insertions(+), 6 deletions(-) (limited to 'engines') 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 -- cgit v1.2.3