diff options
author | Ľubomír Remák | 2019-01-12 03:51:21 +0100 |
---|---|---|
committer | Ľubomír Remák | 2019-01-12 03:51:21 +0100 |
commit | a97a14cc8918c7b60d94ec07ca4b214f3a7a2c93 (patch) | |
tree | 614bbbbdd844d8d9114d634b2e82d1c030f17632 /engines/mutationofjb/widgets | |
parent | 9d5bfdd01518f9bf1156b859894efbbb7d9f46ec (diff) | |
download | scummvm-rg350-a97a14cc8918c7b60d94ec07ca4b214f3a7a2c93.tar.gz scummvm-rg350-a97a14cc8918c7b60d94ec07ca4b214f3a7a2c93.tar.bz2 scummvm-rg350-a97a14cc8918c7b60d94ec07ca4b214f3a7a2c93.zip |
MUTATIONOFJB: Add support for SETANIM command.
Diffstat (limited to 'engines/mutationofjb/widgets')
-rw-r--r-- | engines/mutationofjb/widgets/gamewidget.cpp | 18 | ||||
-rw-r--r-- | engines/mutationofjb/widgets/gamewidget.h | 9 |
2 files changed, 17 insertions, 10 deletions
diff --git a/engines/mutationofjb/widgets/gamewidget.cpp b/engines/mutationofjb/widgets/gamewidget.cpp index 603736729e..77375a7c5c 100644 --- a/engines/mutationofjb/widgets/gamewidget.cpp +++ b/engines/mutationofjb/widgets/gamewidget.cpp @@ -57,6 +57,18 @@ void GameWidget::clearState() { void GameWidget::draw(Graphics::ManagedSurface &) { Room &room = _gui.getGame().getRoom(); + // Full redraw using background buffer. + if (_dirtyBits == DIRTY_ALL) { + room.redraw(); + return; + } + + // Full redraw without background buffer. + if (_dirtyBits & DIRTY_AFTER_SCENE_CHANGE) { + room.redraw(false); // Don't use background buffer. + return; + } + // Only selection changed. if (_dirtyBits & DIRTY_MAP_SELECTION) { if (_currentMapObjectId != _nextMapObjectId) { @@ -69,12 +81,6 @@ void GameWidget::draw(Graphics::ManagedSurface &) { _currentMapObjectId = _nextMapObjectId; } } - - // Full redraw. - if (_dirtyBits == DIRTY_ALL) { - room.redraw(); - return; - } } void GameWidget::handleNormalScene(const Common::Event &event) { diff --git a/engines/mutationofjb/widgets/gamewidget.h b/engines/mutationofjb/widgets/gamewidget.h index c600d3aab6..29d44a6303 100644 --- a/engines/mutationofjb/widgets/gamewidget.h +++ b/engines/mutationofjb/widgets/gamewidget.h @@ -48,6 +48,11 @@ public: GAME_FULL_AREA_HEIGHT = 200 }; + enum DirtyFlags { + DIRTY_AFTER_SCENE_CHANGE = 1 << 1, + DIRTY_MAP_SELECTION = 1 << 2 + }; + GameWidget(GuiScreen &gui); void setCallback(GameWidgetCallback *callback) { _callback = callback; @@ -60,10 +65,6 @@ protected: virtual void draw(Graphics::ManagedSurface &); private: - enum { - DIRTY_MAP_SELECTION = 1 << 1 - }; - /** * Handling for normal (non-map) scenes. * |