changeset 14204:0c37d90c03be draft

(svn r18755) -Fix [FS#3495] (r14847): CircularTileSearch skipped a few tiles close to the starting tile
author yexo <yexo@openttd.org>
date Thu, 07 Jan 2010 20:56:50 +0000
parents 2c769e317827
children c0ea5d87de2e
files src/map.cpp
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -245,9 +245,9 @@
 		 * separately, as the pattern of uneven sides requires to go around the center */
 		if (proc(*tile, user_data)) return true;
 
-		/* If tile test is not successful, get one tile down and left,
+		/* If tile test is not successful, get one tile up,
 		 * ready for a test in first circle around center tile */
-		*tile = TILE_ADD(*tile, TileOffsByDir(DIR_W));
+		*tile = TILE_ADD(*tile, TileOffsByDir(DIR_N));
 		return CircularTileSearch(tile, size / 2, 1, 1, proc, user_data);
 	} else {
 		return CircularTileSearch(tile, size / 2, 0, 0, proc, user_data);
@@ -261,7 +261,8 @@
  * without a hole, set either h or w to zero.
  * Every tile will be tested by means of the callback function proc,
  * which will determine if yes or no the given tile meets criteria of search.
- * @param tile to start the search from. Upon completion, it will return the tile matching the search
+ * @param tile to start the search from. Upon completion, it will return the tile matching the search.
+ *  This tile should be directly north of the hole (if any).
  * @param radius How many tiles to search outwards. Note: This is a radius and thus different
  *                from the size parameter of the other CircularTileSearch function, which is a diameter.
  * @param w the width of the inner rectangle