aboutsummaryrefslogtreecommitdiff
path: root/engines/wage
diff options
context:
space:
mode:
authorEugene Sandulenko2016-04-05 18:18:25 +0200
committerEugene Sandulenko2016-04-05 18:19:23 +0200
commitdee6957c314be54df8b5c1e6ce0f8989f215e58c (patch)
tree4fb21ee6de2c8381e027287b6f269fdfb71f1e1e /engines/wage
parent63e55cefd44e16a4d6499adc51905f5ca511f813 (diff)
downloadscummvm-rg350-dee6957c314be54df8b5c1e6ce0f8989f215e58c.tar.gz
scummvm-rg350-dee6957c314be54df8b5c1e6ce0f8989f215e58c.tar.bz2
scummvm-rg350-dee6957c314be54df8b5c1e6ce0f8989f215e58c.zip
WAGE: Fix window overlap
Diffstat (limited to 'engines/wage')
-rw-r--r--engines/wage/detection_tables.h1
-rw-r--r--engines/wage/gui.cpp21
2 files changed, 12 insertions, 10 deletions
diff --git a/engines/wage/detection_tables.h b/engines/wage/detection_tables.h
index 0214f22f28..e74862e03f 100644
--- a/engines/wage/detection_tables.h
+++ b/engines/wage/detection_tables.h
@@ -84,7 +84,6 @@ static const ADGameDescription gameDescriptions[] = {
// No Next button in intro
FANGAME("Jamie the Demon Slayer", "fa0ca9618c18425b6d9bf913f762d91b", 232789),
FANGAMEN("Journey", "The Journey 1.6.2 US", "e66f37472e1414a088eb5d5acc4df794", 820572),
- // Problems with window overlay
FANGAMEN("Jumble", "LSJUMBLE", "7c46851d2f90c7da9efe40b1688869c2", 647339), // Original file name is "LSJUMBLE† "
FANGAME("Karth of the Jungle", "5f2346834821dc3c4008e139cd37b3cb", 96711),
FANGAME("Karth of the Jungle", "444f9426f342135fbcc32180e5ba5b1c", 96960), // Alternative version
diff --git a/engines/wage/gui.cpp b/engines/wage/gui.cpp
index 4c848963aa..93c799e73a 100644
--- a/engines/wage/gui.cpp
+++ b/engines/wage/gui.cpp
@@ -238,6 +238,12 @@ void Gui::draw() {
return;
}
+ if (_scene != _engine->_world->_player->_currentScene)
+ _sceneDirty = true;
+
+ if (_sceneDirty || _bordersDirty)
+ drawDesktop();
+
if (_sceneIsActive) {
drawConsole();
drawScene();
@@ -264,13 +270,11 @@ void Gui::draw() {
}
void Gui::drawScene() {
- if (_scene == _engine->_world->_player->_currentScene && !_sceneDirty)
+ if (!_sceneDirty && !_bordersDirty)
return;
_scene = _engine->_world->_player->_currentScene;
- drawDesktop();
-
_sceneDirty = true;
_consoleDirty = true;
_menuDirty = true;
@@ -288,17 +292,16 @@ void Gui::drawScene() {
_consoleTextArea.setWidth(_scene->_textBounds->width() - 2 * kBorderWidth);
_consoleTextArea.setHeight(_scene->_textBounds->height() - 2 * kBorderWidth);
- if (_scene && (_bordersDirty || _sceneDirty))
- paintBorder(&_screen, _sceneArea, kWindowScene);
+ paintBorder(&_screen, _sceneArea, kWindowScene);
}
// Render console
void Gui::drawConsole() {
- if (_consoleDirty || _consoleFullRedraw)
- renderConsole(&_screen, _consoleTextArea);
+ if (!_consoleDirty && !_consoleFullRedraw && !_bordersDirty)
+ return;
- if (_bordersDirty || _consoleDirty || _consoleFullRedraw)
- paintBorder(&_screen, _consoleTextArea, kWindowConsole);
+ renderConsole(&_screen, _consoleTextArea);
+ paintBorder(&_screen, _consoleTextArea, kWindowConsole);
}
void Gui::drawBox(Graphics::Surface *g, int x, int y, int w, int h) {