diff options
-rw-r--r-- | engines/fullpipe/gfx.cpp | 28 | ||||
-rw-r--r-- | engines/fullpipe/gfx.h | 3 |
2 files changed, 30 insertions, 1 deletions
diff --git a/engines/fullpipe/gfx.cpp b/engines/fullpipe/gfx.cpp index 9aa4f219a6..4b0125e6a4 100644 --- a/engines/fullpipe/gfx.cpp +++ b/engines/fullpipe/gfx.cpp @@ -1178,6 +1178,34 @@ bool BigPicture::load(MfcArchive &file) { return true; } +void BigPicture::draw(int x, int y, int style, int angle) { + if (_bitmap) + init(); + + if (_bitmap) { + _bitmap->_flags &= 0xFEFFFFFF; + + int nx = _x; + int ny = _y; + + if (x != -1) + nx = x; + + if (y != -1) + ny = y; + + if (_alpha < 0xFF) { + //vrtSetAlphaBlendMode(g_vrtDrawHandle, 1, v9); + } + + _bitmap->putDib(nx, ny, 0); + + if (_alpha < 0xFF) { + //vrtSetAlphaBlendMode(g_vrtDrawHandle, 0, 255); + } + } +} + Shadows::Shadows() { _staticAniObjectId = 0; _movementId = 0; diff --git a/engines/fullpipe/gfx.h b/engines/fullpipe/gfx.h index 9d5c45de0b..72495bfe0b 100644 --- a/engines/fullpipe/gfx.h +++ b/engines/fullpipe/gfx.h @@ -94,7 +94,7 @@ class Picture : public MemoryObject { void init(); void getDibInfo(); Bitmap *getPixelData(); - void draw(int x, int y, int style, int angle); + virtual void draw(int x, int y, int style, int angle); void drawRotated(int x, int y, int angle); byte getAlpha() { return (byte)_alpha; } @@ -116,6 +116,7 @@ class BigPicture : public Picture { public: BigPicture() {} virtual bool load(MfcArchive &file); + virtual void draw(int x, int y, int style, int angle); }; class GameObject : public CObject { |