aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2015-01-31 15:51:20 -0500
committerPaul Gilbert2015-01-31 15:51:20 -0500
commit73a522150f5097e83f9ea24974265fcb1c827a99 (patch)
treefa8c64ba3c25196c9d2b10c4453df5e264f20b8d /engines
parentd67b8d364d8c2a48d26fd0349cc902786b50235b (diff)
downloadscummvm-rg350-73a522150f5097e83f9ea24974265fcb1c827a99.tar.gz
scummvm-rg350-73a522150f5097e83f9ea24974265fcb1c827a99.tar.bz2
scummvm-rg350-73a522150f5097e83f9ea24974265fcb1c827a99.zip
XEEN: Yet more bugfixes for automap dialog
Diffstat (limited to 'engines')
-rw-r--r--engines/xeen/dialogs_automap.cpp8
-rw-r--r--engines/xeen/interface_map.cpp8
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);
}
/**