aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/screen.h
diff options
context:
space:
mode:
authorjohndoe1232014-04-15 13:21:00 +0200
committerEugene Sandulenko2018-07-20 06:43:33 +0000
commit1f74de6a4679cecba4fd77e9c79cfaee9c3dd0f6 (patch)
treed8a58e89f20839b2853551bf41b28a9623a0e2af /engines/illusions/screen.h
parentb1927ca30458226ad7ed52cc85d37416261d444d (diff)
downloadscummvm-rg350-1f74de6a4679cecba4fd77e9c79cfaee9c3dd0f6.tar.gz
scummvm-rg350-1f74de6a4679cecba4fd77e9c79cfaee9c3dd0f6.tar.bz2
scummvm-rg350-1f74de6a4679cecba4fd77e9c79cfaee9c3dd0f6.zip
ILLUSIONS: More work on Duckman
- Implement palette fader - Add more inventory functions - Add more script opcodes
Diffstat (limited to 'engines/illusions/screen.h')
-rw-r--r--engines/illusions/screen.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/engines/illusions/screen.h b/engines/illusions/screen.h
index bdecda48a5..15a703c46c 100644
--- a/engines/illusions/screen.h
+++ b/engines/illusions/screen.h
@@ -97,6 +97,20 @@ protected:
bool calcItemRect(SpriteDrawQueueItem *item, Common::Rect &srcRect, Common::Rect &dstRect);
};
+struct Fader {
+ bool _active;
+ int _currValue;
+ bool _paused;
+ int _minValue;
+ int _maxValue;
+ int _firstIndex;
+ int _lastIndex;
+ uint32 _startTime;
+ int _duration;
+ uint32 _notifyThreadId;
+ Fader() : _active(false), _paused(false) {}
+};
+
// TODO Split into two classes (8bit and 16bit)?
class Screen {
@@ -116,6 +130,8 @@ public:
void getPalette(byte *colors);
void shiftPalette(int16 fromIndex, int16 toIndex);
void updatePalette();
+ void updateFaderPalette();
+ void setFader(int newValue, int firstIndex, int lastIndex);
void drawText(FontResource *font, Graphics::Surface *surface, int16 x, int16 y, uint16 *text, uint count);
int16 drawChar(FontResource *font, Graphics::Surface *surface, int16 x, int16 y, uint16 c);
int16 getScreenWidth() const { return _backSurface->w; }
@@ -133,6 +149,10 @@ public:
byte _mainPalette[768];
byte _colorTransTbl[256];
+ bool _isFaderActive;
+ byte _faderPalette[768];
+ int _newFaderValue, _firstFaderIndex, _lastFaderIndex;
+
void setSystemPalette(byte *palette);
void buildColorTransTbl();