aboutsummaryrefslogtreecommitdiff
path: root/engines/mutationofjb/widgets
diff options
context:
space:
mode:
authorĽubomír Remák2019-01-12 03:51:21 +0100
committerĽubomír Remák2019-01-12 03:51:21 +0100
commita97a14cc8918c7b60d94ec07ca4b214f3a7a2c93 (patch)
tree614bbbbdd844d8d9114d634b2e82d1c030f17632 /engines/mutationofjb/widgets
parent9d5bfdd01518f9bf1156b859894efbbb7d9f46ec (diff)
downloadscummvm-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.cpp18
-rw-r--r--engines/mutationofjb/widgets/gamewidget.h9
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.
*