src/clear_cmd.cpp
changeset 10439 50f056aa3024
parent 10438 51bff16a04c9
--- a/src/clear_cmd.cpp	Fri Dec 19 01:32:07 2008 +0200
+++ b/src/clear_cmd.cpp	Fri Dec 19 01:38:09 2008 +0200
@@ -299,10 +299,17 @@
 				TileIndex tile_new;
 
 				SetClearGroundDensity(tile, CLEAR_ROCKS, 3);
+
 				do {
 					if (--j == 0) goto get_out;
-					tile_new = tile + TileOffsByDiagDir((DiagDirection)GB(Random(), 0, 2));
+                    
+                    TileIndexDiff dt = TileOffsByDiagDir((DiagDirection)GB(Random(), 0, 2));
+
+                    if (!IsValidTile(tile + dt)) continue;
+
+					tile_new = tile + dt;
 				} while (!IsTileType(tile_new, MP_CLEAR) || IsClearGround(tile_new, CLEAR_DESERT));
+
 				tile = tile_new;
 			}
 get_out:;