diff options
author | Paul Gilbert | 2016-07-02 18:04:37 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-07-15 19:26:24 -0400 |
commit | ed06a1a44e508fe671d05a3b5de96fdc2a415ba7 (patch) | |
tree | 1688cbf51ef17755a46201c920a30d42471a22f2 /engines/titanic/star_control/star_view.cpp | |
parent | 79b4754b3318c21479dfccaf91dcf09fabf23fd4 (diff) | |
download | scummvm-rg350-ed06a1a44e508fe671d05a3b5de96fdc2a415ba7.tar.gz scummvm-rg350-ed06a1a44e508fe671d05a3b5de96fdc2a415ba7.tar.bz2 scummvm-rg350-ed06a1a44e508fe671d05a3b5de96fdc2a415ba7.zip |
TITANIC: Added bulk ofCStarView draw
Diffstat (limited to 'engines/titanic/star_control/star_view.cpp')
-rw-r--r-- | engines/titanic/star_control/star_view.cpp | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/engines/titanic/star_control/star_view.cpp b/engines/titanic/star_control/star_view.cpp index 8af94c6b08..c31a28c4b2 100644 --- a/engines/titanic/star_control/star_view.cpp +++ b/engines/titanic/star_control/star_view.cpp @@ -22,13 +22,15 @@ #include "titanic/support/screen_manager.h" #include "titanic/star_control/star_view.h" +#include "titanic/star_control/star_control.h" +#include "titanic/core/game_object.h" namespace Titanic { -CStarView::CStarView() : - _sub12(nullptr, nullptr), _sub13(nullptr), - _field4(0), _videoSurface(nullptr), _field118(0), _field20C(0), - _field210(0), _field214(0), _field218(0), _field21C(0) { +CStarView::CStarView() : _sub12(nullptr, nullptr), _sub13(nullptr), + _owner(nullptr), _sub1(nullptr), _videoSurface(nullptr), _field118(0), + _videoSurface2(nullptr), _field210(0), _homePhotoMask(nullptr), + _field218(0), _field21C(0) { _sub12.proc3(); } @@ -56,12 +58,39 @@ void CStarView::save(SimpleFile *file, int indent) { file->writeNumberLine(_field21C, indent); } +void CStarView::setup(CScreenManager *screenManager, CStarControlSub1 *sub1, CStarControl *starControl) { + _sub1 = sub1; + _owner = starControl; +} + +void CStarView::reset() { + // TODO +} + void CStarView::draw(CScreenManager *screenManager) { - if (!screenManager) + if (!screenManager || !_videoSurface || !_sub1) return; + if (_fader.isActive()) { + CVideoSurface *surface = _field21C ? _videoSurface2 : _videoSurface; + surface = _fader.fade(screenManager, surface); + screenManager->blitFrom(SURFACE_PRIMARY, surface); + } else { + Point destPos(20, 10); - // TODO + if (_field21C) { + screenManager->blitFrom(SURFACE_PRIMARY, _videoSurface2, &destPos); + + if (!_homePhotoMask && _owner) { + _homePhotoMask = _owner->getHiddenObject("HomePhotoMask"); + } + + if (_homePhotoMask) + _homePhotoMask->draw(screenManager, Point(20, 187)); + } else { + // TODO + } + } } } // End of namespace Titanic |