aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/frameout.cpp
diff options
context:
space:
mode:
authorColin Snover2016-01-06 20:00:28 -0600
committerColin Snover2016-01-07 16:35:09 -0600
commitaeee621e4413fe71ffada6c4bc096ae2a5a8c204 (patch)
tree41817ee3e96fcc279988bb5e604553694e2737ba /engines/sci/graphics/frameout.cpp
parent453afd7bbc7b83506638bf87b830384078f729e1 (diff)
downloadscummvm-rg350-aeee621e4413fe71ffada6c4bc096ae2a5a8c204.tar.gz
scummvm-rg350-aeee621e4413fe71ffada6c4bc096ae2a5a8c204.tar.bz2
scummvm-rg350-aeee621e4413fe71ffada6c4bc096ae2a5a8c204.zip
SCI32: Add initial support for palette cycling (kPalCycle) and fading (kPalFade)
Graphics palette code was rewritten between SCI1 and SCI2, so SCI32 palette engine code has been moved to a separate GfxPalette32 class.
Diffstat (limited to 'engines/sci/graphics/frameout.cpp')
-rw-r--r--engines/sci/graphics/frameout.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/sci/graphics/frameout.cpp b/engines/sci/graphics/frameout.cpp
index 61aeb00ac3..7396115f4c 100644
--- a/engines/sci/graphics/frameout.cpp
+++ b/engines/sci/graphics/frameout.cpp
@@ -44,7 +44,7 @@
#include "sci/graphics/view.h"
#include "sci/graphics/screen.h"
#include "sci/graphics/paint32.h"
-#include "sci/graphics/palette.h"
+#include "sci/graphics/palette32.h"
#include "sci/graphics/picture.h"
#include "sci/graphics/text32.h"
#include "sci/graphics/frameout.h"
@@ -59,7 +59,7 @@ enum SciSpeciaPlanelPictureCodes {
kPlanePlainColored = 0xffff // -1
};
-GfxFrameout::GfxFrameout(SegManager *segMan, ResourceManager *resMan, GfxCoordAdjuster *coordAdjuster, GfxCache *cache, GfxScreen *screen, GfxPalette *palette, GfxPaint32 *paint32)
+GfxFrameout::GfxFrameout(SegManager *segMan, ResourceManager *resMan, GfxCoordAdjuster *coordAdjuster, GfxCache *cache, GfxScreen *screen, GfxPalette32 *palette, GfxPaint32 *paint32)
: _segMan(segMan), _resMan(resMan), _cache(cache), _screen(screen), _palette(palette), _paint32(paint32) {
_coordAdjuster = (GfxCoordAdjuster32 *)coordAdjuster;
@@ -658,6 +658,11 @@ void GfxFrameout::kernelFrameout() {
}
_palette->palVaryUpdate();
+ _palette->applyCycles();
+ _palette->applyFade();
+ // TODO: This should probably not require screen pic invalidation
+ _screen->_picNotValid = 1;
+ _palette->setOnScreen();
for (PlaneList::iterator it = _planes.begin(); it != _planes.end(); it++) {
reg_t planeObject = it->object;