(svn r21994) -Fix: Make computations of closest-land/water-distances handle waterish tiles more correctly.

This commit is contained in:
frosch 2011-02-06 13:57:17 +00:00
parent afad7920ef
commit a8859bbff9

View File

@ -13,6 +13,7 @@
#include "debug.h"
#include "core/alloc_func.hpp"
#include "tile_map.h"
#include "water_map.h"
#if defined(_MSC_VER)
/* Why the hell is that not in all MSVC headers?? */
@ -339,7 +340,7 @@ bool CircularTileSearch(TileIndex *tile, uint radius, uint w, uint h, TestTileOn
*/
uint GetClosestWaterDistance(TileIndex tile, bool water)
{
if (IsTileType(tile, MP_WATER) == water) return 0;
if (HasTileWaterGround(tile) == water) return 0;
uint max_dist = water ? 0x7F : 0x200;
@ -368,7 +369,7 @@ uint GetClosestWaterDistance(TileIndex tile, bool water)
/* MP_VOID tiles are not checked (interval is [min; max) for IsInsideMM())*/
if (IsInsideMM(x, min_xy, max_x) && IsInsideMM(y, min_xy, max_y)) {
TileIndex t = TileXY(x, y);
if (IsTileType(t, MP_WATER) == water) return dist;
if (HasTileWaterGround(t) == water) return dist;
}
x += dx;
y += dy;