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

pull/155/head
frosch 14 years ago
parent a66e32efb5
commit e6f28bf300

@ -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;

Loading…
Cancel
Save