diff options
author | Paul Gilbert | 2015-01-31 15:51:20 -0500 |
---|---|---|
committer | Paul Gilbert | 2015-01-31 15:51:20 -0500 |
commit | 73a522150f5097e83f9ea24974265fcb1c827a99 (patch) | |
tree | fa8c64ba3c25196c9d2b10c4453df5e264f20b8d | |
parent | d67b8d364d8c2a48d26fd0349cc902786b50235b (diff) | |
download | scummvm-rg350-73a522150f5097e83f9ea24974265fcb1c827a99.tar.gz scummvm-rg350-73a522150f5097e83f9ea24974265fcb1c827a99.tar.bz2 scummvm-rg350-73a522150f5097e83f9ea24974265fcb1c827a99.zip |
XEEN: Yet more bugfixes for automap dialog
-rw-r--r-- | engines/xeen/dialogs_automap.cpp | 8 | ||||
-rw-r--r-- | engines/xeen/interface_map.cpp | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/engines/xeen/dialogs_automap.cpp b/engines/xeen/dialogs_automap.cpp index 539911058a..61821425dd 100644 --- a/engines/xeen/dialogs_automap.cpp +++ b/engines/xeen/dialogs_automap.cpp @@ -120,7 +120,7 @@ void AutoMapDialog::execute() { // Draw indoors map frame2 = (frame2 + 2) % 8; - // Draw ground tiles + // Draw default ground for all the valid explored areas for (int yp = 38, yDiff = pt.y + 7; yp < 166; yp += 8, --yDiff) { for (int xp = 80, xDiff = pt.x - 7; xp < 240; xp += 10, ++xDiff) { v = map.mazeLookup(Common::Point(xDiff, yDiff), 0, 0xffff); @@ -159,8 +159,9 @@ void AutoMapDialog::execute() { for (int xp = 85, xDiff = pt.x - 7; xp < 245; xp += 10, ++xDiff) { v = map.mazeLookup(Common::Point(xDiff, yDiff), 0, 0xffff); - if (v != INVALID_CELL && map._currentSteppedOn) - map._tileSprites.draw(screen, 0, Common::Point(xp, yp)); + if (v != INVALID_CELL && map._currentSurfaceId && map._currentSteppedOn) + map._tileSprites.draw(screen, map.mazeData()._surfaceTypes[ + map._currentSurfaceId], Common::Point(xp, yp)); } } @@ -272,6 +273,7 @@ void AutoMapDialog::execute() { map._tileSprites.draw(screen, frame, Common::Point(xp, 30)); } + // Draw any walls on the cells for (int yCtr = 0, yp = 38, yDiff = pt.y + 7; yCtr < 16; ++yCtr, yp += 8, --yDiff) { for (int xCtr = 0, xp = 80, xDiff = pt.x - 7; xCtr < 16; ++xCtr, xp += 10, ++xDiff) { // Draw the arrow if at the correct position diff --git a/engines/xeen/interface_map.cpp b/engines/xeen/interface_map.cpp index 46f52729e7..84f8fa6aa1 100644 --- a/engines/xeen/interface_map.cpp +++ b/engines/xeen/interface_map.cpp @@ -756,7 +756,13 @@ void InterfaceMap::draw3d(bool updateFlag) { if (_vm->_mode == MODE_9) { // TODO } - events.wait(2); + + // TODO: Check use of updateFlag here. Original doesn't have it, but I + // wanted to ensure in places like the AutoMapDialog, that the draw3d + // doesn't result in the screen updating until the dialog has had + // a chance to full render itself + if (updateFlag) + events.wait(2); } /** |