diff options
author | Eugene Sandulenko | 2016-04-05 18:18:25 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-04-05 18:19:23 +0200 |
commit | dee6957c314be54df8b5c1e6ce0f8989f215e58c (patch) | |
tree | 4fb21ee6de2c8381e027287b6f269fdfb71f1e1e /engines/wage | |
parent | 63e55cefd44e16a4d6499adc51905f5ca511f813 (diff) | |
download | scummvm-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.h | 1 | ||||
-rw-r--r-- | engines/wage/gui.cpp | 21 |
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) { |