diff options
| author | Martin Kiewitz | 2010-06-15 15:44:24 +0000 |
|---|---|---|
| committer | Martin Kiewitz | 2010-06-15 15:44:24 +0000 |
| commit | b25aba1d1ed9c867bbb4ff1b6b7ef9ea075b3cd1 (patch) | |
| tree | 0d2e0c868f325c37b67389295ab89ce094ff594f /engines/sci/sci.cpp | |
| parent | 44ce741f9c3fd1651c62ffee91467437f24e5d3c (diff) | |
| download | scummvm-rg350-b25aba1d1ed9c867bbb4ff1b6b7ef9ea075b3cd1.tar.gz scummvm-rg350-b25aba1d1ed9c867bbb4ff1b6b7ef9ea075b3cd1.tar.bz2 scummvm-rg350-b25aba1d1ed9c867bbb4ff1b6b7ef9ea075b3cd1.zip | |
SCI: SciGui/SciGui32 gone for good...
svn-id: r49860
Diffstat (limited to 'engines/sci/sci.cpp')
| -rw-r--r-- | engines/sci/sci.cpp | 81 |
1 files changed, 61 insertions, 20 deletions
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp index 692928f12c..4af6bc7b43 100644 --- a/engines/sci/sci.cpp +++ b/engines/sci/sci.cpp @@ -44,18 +44,24 @@ #include "sci/sound/audio.h" #include "sci/sound/soundcmd.h" -#include "sci/graphics/gui.h" +#include "sci/graphics/animate.h" +#include "sci/graphics/cache.h" +#include "sci/graphics/compare.h" +#include "sci/graphics/controls.h" +#include "sci/graphics/coordadjuster.h" +#include "sci/graphics/cursor.h" #include "sci/graphics/maciconbar.h" #include "sci/graphics/menu.h" #include "sci/graphics/paint16.h" +#include "sci/graphics/paint32.h" #include "sci/graphics/ports.h" #include "sci/graphics/palette.h" -#include "sci/graphics/cursor.h" #include "sci/graphics/screen.h" -#include "sci/graphics/cache.h" +#include "sci/graphics/text16.h" +#include "sci/graphics/transitions.h" #ifdef ENABLE_SCI32 -#include "sci/graphics/gui32.h" +#include "sci/graphics/frameout.h" #endif namespace Sci { @@ -183,9 +189,29 @@ Common::Error SciEngine::run() { if ((getLanguage() == Common::JA_JPN) && (getSciVersion() <= SCI_VERSION_1_1)) upscaledHires = GFX_SCREEN_UPSCALED_640x400; + // Reset all graphics objects + _gfxAnimate = 0; + _gfxCache = 0; + _gfxCompare = 0; + _gfxControls = 0; + _gfxCoordAdjuster = 0; + _gfxCursor = 0; + _gfxMacIconBar = 0; + _gfxMenu = 0; + _gfxPaint = 0; + _gfxPaint16 = 0; + _gfxPalette = 0; + _gfxPorts = 0; + _gfxScreen = 0; + _gfxText16 = 0; + _gfxTransitions = 0; +#ifdef ENABLE_SCI32 + _gfxFrameout = 0; + _gfxPaint32 = 0; +#endif + // Initialize graphics-related parts - // invokes initGraphics() if (_resMan->detectHires()) _gfxScreen = new GfxScreen(_resMan, 640, 480); else @@ -222,23 +248,30 @@ Common::Error SciEngine::run() { #ifdef ENABLE_SCI32 if (getSciVersion() >= SCI_VERSION_2) { - _gfxAnimate = 0; - _gfxControls = 0; - _gfxMenu = 0; - _gfxPaint16 = 0; - _gfxPorts = 0; - _gfxText16 = 0; - _gui = 0; - _gui32 = new SciGui32(_gamestate->_segMan, _eventMan, _gfxScreen, _gfxPalette, _gfxCache, _gfxCursor); + // SCI32 graphic objects creation + _gfxCoordAdjuster = new GfxCoordAdjuster32(segMan); + _gfxCursor->init(_gfxCoordAdjuster, _eventMan); + _gfxCompare = new GfxCompare(segMan, g_sci->getKernel(), _gfxCache, _gfxScreen, _gfxCoordAdjuster); + _gfxPaint32 = new GfxPaint32(g_sci->getResMan(), segMan, g_sci->getKernel(), _gfxCoordAdjuster, _gfxCache, _gfxScreen, _gfxPalette); + _gfxPaint = _gfxPaint32; + _gfxFrameout = new GfxFrameout(segMan, g_sci->getResMan(), _gfxCoordAdjuster, _gfxCache, _gfxScreen, _gfxPalette, _gfxPaint32); } else { #endif + // SCI0-SCI1.1 graphic objects creation _gfxPorts = new GfxPorts(segMan, _gfxScreen); - _gui = new SciGui(_gamestate, _gfxScreen, _gfxPalette, _gfxCache, _gfxCursor, _gfxPorts, _audio); -#ifdef ENABLE_SCI32 - _gui32 = 0; - _gfxFrameout = 0; + _gfxCoordAdjuster = new GfxCoordAdjuster16(_gfxPorts); + _gfxCursor->init(_gfxCoordAdjuster, g_sci->getEventManager()); + _gfxCompare = new GfxCompare(segMan, g_sci->getKernel(), _gfxCache, _gfxScreen, _gfxCoordAdjuster); + _gfxTransitions = new GfxTransitions(_gfxScreen, _gfxPalette, g_sci->getResMan()->isVGA()); + _gfxPaint16 = new GfxPaint16(g_sci->getResMan(), segMan, g_sci->getKernel(), _gfxCache, _gfxPorts, _gfxCoordAdjuster, _gfxScreen, _gfxPalette, _gfxTransitions, _audio); + _gfxPaint = _gfxPaint16; + _gfxAnimate = new GfxAnimate(_gamestate, _gfxCache, _gfxPorts, _gfxPaint16, _gfxScreen, _gfxPalette, _gfxCursor, _gfxTransitions); + _gfxText16 = new GfxText16(g_sci->getResMan(), _gfxCache, _gfxPorts, _gfxPaint16, _gfxScreen); + _gfxControls = new GfxControls(segMan, _gfxPorts, _gfxPaint16, _gfxText16, _gfxScreen); + _gfxMenu = new GfxMenu(g_sci->getEventManager(), segMan, _gfxPorts, _gfxPaint16, _gfxText16, _gfxScreen, _gfxCursor); - g_sci->_gfxMenu->reset(); + _gfxMenu->reset(); +#ifdef ENABLE_SCI32 } #endif @@ -272,15 +305,23 @@ Common::Error SciEngine::run() { ConfMan.flushToDisk(); delete _gamestate->_soundCmd; - delete _gui; #ifdef ENABLE_SCI32 - delete _gui32; + delete _gfxFrameout; #endif + delete _gfxMenu; + delete _gfxControls; + delete _gfxText16; + delete _gfxAnimate; + delete _gfxPaint; + delete _gfxTransitions; + delete _gfxCompare; + delete _gfxCoordAdjuster; delete _gfxPorts; delete _gfxCache; delete _gfxPalette; delete _gfxCursor; delete _gfxScreen; + delete _eventMan; delete segMan; delete _gamestate; |
