# HG changeset patch # User rubidium # Date 2007-01-12 08:37:14 # Node ID d1cdafd4e9f953c4bcdfadb84255905b68d7c27c # Parent 589a8c90d910edf9678f8bed720f61494ddf4b98 (svn r8074) -Fix (FS#537, r7555, r5749): revert r7555 because it was really wrong and fix the off-by-one error due to truncation that was supposedly fixed by r7555. diff --git a/src/heightmap.cpp b/src/heightmap.cpp --- a/src/heightmap.cpp +++ b/src/heightmap.cpp @@ -304,11 +304,11 @@ static void GrayscaleToMapHeights(uint i if ((img_width * num_div) / img_height > ((width * num_div) / height)) { /* Image is wider than map - center vertically */ img_scale = (width * num_div) / img_width; - row_pad = (height - ((img_height * img_scale) / num_div)) / 2; + row_pad = (1 + height - ((img_height * img_scale) / num_div)) / 2; } else { /* Image is taller than map - center horizontally */ img_scale = (height * num_div) / img_height; - col_pad = (width - ((img_width * img_scale) / num_div)) / 2; + col_pad = (1 + width - ((img_width * img_scale) / num_div)) / 2; } /* Form the landscape */ @@ -322,8 +322,8 @@ static void GrayscaleToMapHeights(uint i /* Check if current tile is within the 1-pixel map edge or padding regions */ if ((DistanceFromEdge(tile) <= 1) || - (row < row_pad) || (row >= (img_height + row_pad)) || - (col < col_pad) || (col >= (img_width + col_pad))) { + (row < row_pad) || (row >= (height - row_pad - 1)) || + (col < col_pad) || (col >= (width - col_pad - 1))) { SetTileHeight(tile, 0); } else { /* Use nearest neighbor resizing to scale map data.