aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2017-12-06 21:36:10 -0500
committerPaul Gilbert2017-12-06 21:36:10 -0500
commite400695ae6fad722add9c8054913919f8734e2e1 (patch)
treefec627288643d9df07343af47c7aebfc80ace900
parente06d649570488d37818db7afc40c7203dcbe6cc2 (diff)
downloadscummvm-rg350-e400695ae6fad722add9c8054913919f8734e2e1.tar.gz
scummvm-rg350-e400695ae6fad722add9c8054913919f8734e2e1.tar.bz2
scummvm-rg350-e400695ae6fad722add9c8054913919f8734e2e1.zip
XEEN: Further fixes for map rendering
-rw-r--r--engines/xeen/dialogs_map.cpp60
-rw-r--r--engines/xeen/interface_minimap.cpp76
2 files changed, 67 insertions, 69 deletions
diff --git a/engines/xeen/dialogs_map.cpp b/engines/xeen/dialogs_map.cpp
index 6f225d5b2c..276098e0fb 100644
--- a/engines/xeen/dialogs_map.cpp
+++ b/engines/xeen/dialogs_map.cpp
@@ -318,45 +318,45 @@ void MapDialog::drawIndoors() {
v = map.mazeLookup(Common::Point(xDiff, yDiff), 12);
switch (v) {
- case SURFTYPE_DIRT:
+ case 1:
frame = 18;
break;
- case SURFTYPE_GRASS:
+ case 2:
frame = 34;
break;
- case SURFTYPE_SNOW:
+ case 3:
frame = 22;
break;
- case SURFTYPE_SWAMP:
- case SURFTYPE_CLOUD:
+ case 4:
+ case 13:
frame = 16;
break;
- case SURFTYPE_LAVA:
- case SURFTYPE_DWATER:
+ case 5:
+ case 8:
frame = 2;
break;
- case SURFTYPE_DESERT:
+ case 6:
frame = 30;
break;
- case SURFTYPE_ROAD:
+ case 7:
frame = 32;
break;
- case SURFTYPE_TFLR:
+ case 9:
frame = 20;
break;
- case SURFTYPE_SKY:
+ case 10:
frame = 28;
break;
- case SURFTYPE_CROAD:
+ case 11:
frame = 14;
break;
- case SURFTYPE_SEWER:
+ case 12:
frame = frame2 + 4;
break;
- case SURFTYPE_SCORCH:
+ case 14:
frame = 24;
break;
- case SURFTYPE_SPACE:
+ case 15:
frame = 26;
break;
default:
@@ -369,45 +369,45 @@ void MapDialog::drawIndoors() {
v = map.mazeLookup(Common::Point(xDiff, yDiff), 0);
switch (v) {
- case SURFTYPE_DIRT:
+ case 1:
frame = 19;
break;
- case SURFTYPE_GRASS:
+ case 2:
frame = 35;
break;
- case SURFTYPE_SNOW:
+ case 3:
frame = 23;
break;
- case SURFTYPE_SWAMP:
- case SURFTYPE_CLOUD:
+ case 4:
+ case 13:
frame = 17;
break;
- case SURFTYPE_LAVA:
- case SURFTYPE_DWATER:
+ case 5:
+ case 8:
frame = 3;
break;
- case SURFTYPE_DESERT:
+ case 6:
frame = 31;
break;
- case SURFTYPE_ROAD:
+ case 7:
frame = 33;
break;
- case SURFTYPE_TFLR:
+ case 9:
frame = 21;
break;
- case SURFTYPE_SKY:
+ case 10:
frame = 29;
break;
- case SURFTYPE_CROAD:
+ case 11:
frame = 15;
break;
- case SURFTYPE_SEWER:
+ case 12:
frame = frame2 + 5;
break;
- case SURFTYPE_SCORCH:
+ case 14:
frame = 25;
break;
- case SURFTYPE_SPACE:
+ case 15:
frame = 27;
break;
default:
diff --git a/engines/xeen/interface_minimap.cpp b/engines/xeen/interface_minimap.cpp
index c00e576e5b..ba15204cc5 100644
--- a/engines/xeen/interface_minimap.cpp
+++ b/engines/xeen/interface_minimap.cpp
@@ -174,11 +174,9 @@ void InterfaceMinimap::drawIndoorsMinimap() {
}
// Handle drawing surface sprites partially clipped at the top edge
- for (int colNum = 0, xp = MINIMAP_YSTART + (TILE_HEIGHT / 2), xDiff = -3;
- colNum < MINIMAP_SIZE; ++colNum, ++xDiff, xp += TILE_WIDTH) {
- v = map.mazeLookup(
- Common::Point(party._mazePosition.x + xDiff, party._mazePosition.y + 4),
- 0, 0xffff);
+ for (int xp = MINIMAP_XSTART + (TILE_WIDTH / 2), mazeX = pt.x - MINIMAP_DIFF;
+ mazeX <= (pt.x + MINIMAP_DIFF); xp += TILE_WIDTH, ++mazeX) {
+ v = map.mazeLookup(Common::Point(mazeX, pt.y + MINIMAP_DIFF + 1), 0, 0xffff);
if (v != INVALID_CELL && map._currentSurfaceId &&
(map._currentSteppedOn || party._wizardEyeActive)) {
@@ -306,50 +304,51 @@ void InterfaceMinimap::drawIndoorsMinimap() {
if (mazeX == pt.x && mazeY == pt.y) {
// Center of the minimap. Draw the direction arrow
res._globalSprites.draw(1, party._mazeDirection + 1,
- Common::Point(272, 40));
+ Common::Point(MINIMAP_XSTART + (TILE_WIDTH * 3) + (TILE_WIDTH / 2),
+ MINIMAP_YSTART + (TILE_HEIGHT * 3) + (TILE_HEIGHT / 2)));
}
v = map.mazeLookup(Common::Point(mazeX, mazeY), 12, 0xffff);
switch (v) {
- case SURFTYPE_DIRT:
+ case 1:
frame = 18;
break;
- case SURFTYPE_GRASS:
+ case 2:
frame = 34;
break;
- case SURFTYPE_SNOW:
+ case 3:
frame = 22;
break;
- case SURFTYPE_SWAMP:
- case SURFTYPE_CLOUD:
+ case 4:
+ case 13:
frame = 16;
break;
- case SURFTYPE_LAVA:
- case SURFTYPE_DWATER:
+ case 5:
+ case 8:
frame = 2;
break;
- case SURFTYPE_DESERT:
+ case 6:
frame = 30;
break;
- case SURFTYPE_ROAD:
+ case 7:
frame = 32;
break;
- case SURFTYPE_TFLR:
+ case 9:
frame = 20;
break;
- case SURFTYPE_SKY:
+ case 10:
frame = 28;
break;
- case SURFTYPE_CROAD:
+ case 11:
frame = 14;
break;
- case SURFTYPE_SEWER:
+ case 12:
frame = frame2 + 4;
break;
- case SURFTYPE_SCORCH:
+ case 14:
frame = 24;
break;
- case SURFTYPE_SPACE:
+ case 15:
frame = 26;
break;
default:
@@ -363,45 +362,45 @@ void InterfaceMinimap::drawIndoorsMinimap() {
v = map.mazeLookup(Common::Point(mazeX, mazeY), 0);
switch (v) {
- case SURFTYPE_DIRT:
+ case 1:
frame = 19;
break;
- case SURFTYPE_GRASS:
+ case 2:
frame = 35;
break;
- case SURFTYPE_SNOW:
+ case 3:
frame = 23;
break;
- case SURFTYPE_SWAMP:
- case SURFTYPE_CLOUD:
+ case 4:
+ case 13:
frame = 17;
break;
- case SURFTYPE_LAVA:
- case SURFTYPE_DWATER:
+ case 5:
+ case 8:
frame = 3;
break;
- case SURFTYPE_DESERT:
+ case 6:
frame = 31;
break;
- case SURFTYPE_ROAD:
+ case 7:
frame = 33;
break;
- case SURFTYPE_TFLR:
+ case 9:
frame = 21;
break;
- case SURFTYPE_SKY:
+ case 10:
frame = 29;
break;
- case SURFTYPE_CROAD:
+ case 11:
frame = 15;
break;
- case SURFTYPE_SEWER:
+ case 12:
frame = frame2 + 5;
break;
- case SURFTYPE_SCORCH:
+ case 14:
frame = 25;
break;
- case SURFTYPE_SPACE:
+ case 15:
frame = 27;
break;
default:
@@ -409,9 +408,8 @@ void InterfaceMinimap::drawIndoorsMinimap() {
break;
}
- if (v == -1 && (map._currentSteppedOn || party._wizardEyeActive)) {
- map._tileSprites.draw(1, frame, Common::Point(xp, yp));
- }
+ if (frame != -1 && (map._currentSteppedOn || party._wizardEyeActive))
+ map._tileSprites.draw(0, frame, Common::Point(xp, yp));
}
}