diff options
author | Matthew Hoops | 2010-08-01 17:54:48 +0000 |
---|---|---|
committer | Matthew Hoops | 2010-08-01 17:54:48 +0000 |
commit | 79bf94c87729506b556f66d15ea30827b509451a (patch) | |
tree | c5602be4e7501dc543770bd7aed5631484c3630a /engines | |
parent | f3851674f38bfc5a799dd52e2ef2617517280c5f (diff) | |
download | scummvm-rg350-79bf94c87729506b556f66d15ea30827b509451a.tar.gz scummvm-rg350-79bf94c87729506b556f66d15ea30827b509451a.tar.bz2 scummvm-rg350-79bf94c87729506b556f66d15ea30827b509451a.zip |
SCI: Move kernelShakeScreen to GfxScreen so it can be used in SCI32 (it's used in GK1)
svn-id: r51583
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/engine/kgraphics.cpp | 2 | ||||
-rw-r--r-- | engines/sci/graphics/paint.cpp | 4 | ||||
-rw-r--r-- | engines/sci/graphics/paint.h | 4 | ||||
-rw-r--r-- | engines/sci/graphics/paint16.cpp | 17 | ||||
-rw-r--r-- | engines/sci/graphics/paint16.h | 2 | ||||
-rw-r--r-- | engines/sci/graphics/screen.cpp | 16 | ||||
-rw-r--r-- | engines/sci/graphics/screen.h | 5 |
7 files changed, 20 insertions, 30 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index b2ff83aa1e..07864f5648 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -1082,7 +1082,7 @@ reg_t kShakeScreen(EngineState *s, int argc, reg_t *argv) { int16 shakeCount = (argc > 0) ? argv[0].toUint16() : 1; int16 directions = (argc > 1) ? argv[1].toUint16() : 1; - g_sci->_gfxPaint->kernelShakeScreen(shakeCount, directions); + g_sci->_gfxScreen->kernelShakeScreen(shakeCount, directions); return s->r_acc; } diff --git a/engines/sci/graphics/paint.cpp b/engines/sci/graphics/paint.cpp index 13dcebc27a..50b0534ba7 100644 --- a/engines/sci/graphics/paint.cpp +++ b/engines/sci/graphics/paint.cpp @@ -49,8 +49,4 @@ void GfxPaint::kernelDrawCel(GuiResourceId viewId, int16 loopNo, int16 celNo, ui void GfxPaint::kernelGraphDrawLine(Common::Point startPoint, Common::Point endPoint, int16 color, int16 priority, int16 control) { } -void GfxPaint::kernelShakeScreen(uint16 shakeCount, uint16 directions) { - warning("Unimplemented kShakeScreen"); -} - } // End of namespace Sci diff --git a/engines/sci/graphics/paint.h b/engines/sci/graphics/paint.h index 75a17461d4..994bc4e5e9 100644 --- a/engines/sci/graphics/paint.h +++ b/engines/sci/graphics/paint.h @@ -38,10 +38,6 @@ public: virtual void kernelDrawPicture(GuiResourceId pictureId, int16 animationNr, bool animationBlackoutFlag, bool mirroredFlag, bool addToFlag, int16 EGApaletteNo); virtual void kernelDrawCel(GuiResourceId viewId, int16 loopNo, int16 celNo, uint16 leftPos, uint16 topPos, int16 priority, uint16 paletteNo, bool hiresMode, reg_t upscaledHiresHandle); virtual void kernelGraphDrawLine(Common::Point startPoint, Common::Point endPoint, int16 color, int16 priority, int16 control); - - virtual void kernelShakeScreen(uint16 shakeCount, uint16 directions); - -private: }; } // End of namespace Sci diff --git a/engines/sci/graphics/paint16.cpp b/engines/sci/graphics/paint16.cpp index bb3975e9ef..0685d96073 100644 --- a/engines/sci/graphics/paint16.cpp +++ b/engines/sci/graphics/paint16.cpp @@ -596,23 +596,6 @@ reg_t GfxPaint16::kernelDisplay(const char *text, int argc, reg_t *argv) { return result; } -// TODO: If this matches the sci32 implementation, we may put it into GfxScreen -void GfxPaint16::kernelShakeScreen(uint16 shakeCount, uint16 directions) { - while (shakeCount--) { - if (directions & SCI_SHAKE_DIRECTION_VERTICAL) - _screen->setVerticalShakePos(10); - // TODO: horizontal shakes - g_system->updateScreen(); - g_sci->getEngineState()->wait(3); - - if (directions & SCI_SHAKE_DIRECTION_VERTICAL) - _screen->setVerticalShakePos(0); - - g_system->updateScreen(); - g_sci->getEngineState()->wait(3); - } -} - reg_t GfxPaint16::kernelPortraitLoad(const Common::String &resourceName) { //Portrait *myPortrait = new Portrait(g_sci->getResMan(), _screen, _palette, resourceName); return NULL_REG; diff --git a/engines/sci/graphics/paint16.h b/engines/sci/graphics/paint16.h index edffa8da6e..e944c71bdd 100644 --- a/engines/sci/graphics/paint16.h +++ b/engines/sci/graphics/paint16.h @@ -88,8 +88,6 @@ public: reg_t kernelDisplay(const char *text, int argc, reg_t *argv); - void kernelShakeScreen(uint16 shakeCount, uint16 directions); - reg_t kernelPortraitLoad(const Common::String &resourceName); void kernelPortraitShow(const Common::String &resourceName, Common::Point position, uint16 resourceNum, uint16 noun, uint16 verb, uint16 cond, uint16 seq); void kernelPortraitUnload(uint16 portraitId); diff --git a/engines/sci/graphics/screen.cpp b/engines/sci/graphics/screen.cpp index 131a3d2eb8..839b9975c5 100644 --- a/engines/sci/graphics/screen.cpp +++ b/engines/sci/graphics/screen.cpp @@ -534,6 +534,22 @@ void GfxScreen::setVerticalShakePos(uint16 shakePos) { g_system->setShakePos(shakePos * 2); } +void GfxScreen::kernelShakeScreen(uint16 shakeCount, uint16 directions) { + while (shakeCount--) { + if (directions & SCI_SHAKE_DIRECTION_VERTICAL) + setVerticalShakePos(10); + // TODO: horizontal shakes + g_system->updateScreen(); + g_sci->getEngineState()->wait(3); + + if (directions & SCI_SHAKE_DIRECTION_VERTICAL) + setVerticalShakePos(0); + + g_system->updateScreen(); + g_sci->getEngineState()->wait(3); + } +} + void GfxScreen::dither(bool addToFlag) { int y, x; byte color, ditheredColor; diff --git a/engines/sci/graphics/screen.h b/engines/sci/graphics/screen.h index f1e3d028a8..97f5736289 100644 --- a/engines/sci/graphics/screen.h +++ b/engines/sci/graphics/screen.h @@ -109,8 +109,6 @@ public: void getPalette(Palette *pal); void setPalette(Palette *pal); - void setVerticalShakePos(uint16 shakePos); - void scale2x(const byte *src, byte *dst, int16 srcWidth, int16 srcHeight); void adjustToUpscaledCoordinates(int16 &y, int16 &x); @@ -126,6 +124,7 @@ public: int _picNotValidSci11; // another variable that is used by kPicNotValid in sci1.1 int16 kernelPicNotValid(int16 newPicNotValid); + void kernelShakeScreen(uint16 shakeCount, uint16 direction); private: uint16 _width; @@ -143,6 +142,8 @@ private: void bitsSaveScreen(Common::Rect rect, byte *screen, uint16 screenWidth, byte *&memoryPtr); void bitsSaveDisplayScreen(Common::Rect rect, byte *&memoryPtr); + void setVerticalShakePos(uint16 shakePos); + bool _unditherState; int16 _unditherMemorial[SCI_SCREEN_UNDITHERMEMORIAL_SIZE]; |