diff src/station_cmd.cpp @ 7948:4044e2de8086 draft

(svn r11504) -Fix [FS#1467]: removing docks/ship depots could result in non-canal water where canals should have been build.
author rubidium <rubidium@openttd.org>
date Sat, 24 Nov 2007 08:45:04 +0000
parents 44ff7a6d801f
children 38bb7c45688f
line wrap: on
line diff
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -44,6 +44,7 @@
 #include "strings.h"
 #include "autoslope.h"
 #include "transparency.h"
+#include "water.h"
 
 DEFINE_OLD_POOL_GENERIC(Station, Station)
 DEFINE_OLD_POOL_GENERIC(RoadStop, RoadStop)
@@ -1899,12 +1900,7 @@
 		/* We have to set the water tile's state to the same state as before the
 		 * buoy was placed. Otherwise one could plant a buoy on a canal edge,
 		 * remove it and flood the land (if the canal edge is at level 0) */
-		Owner o = GetTileOwner(tile);
-		if (o == OWNER_WATER) {
-			MakeWater(tile);
-		} else {
-			MakeCanal(tile, o);
-		}
+		MakeWaterOrCanalDependingOnSurroundings(tile, GetTileOwner(tile));
 		MarkTileDirtyByTile(tile);
 
 		UpdateStationVirtCoordDirty(st);
@@ -2040,7 +2036,7 @@
 
 	if (flags & DC_EXEC) {
 		DoClearSquare(tile1);
-		MakeWater(tile2);
+		MakeWaterOrCanalDependingOnSurroundings(tile2, st->owner);
 
 		st->rect.AfterRemoveTile(st, tile1);
 		st->rect.AfterRemoveTile(st, tile2);
@@ -2064,9 +2060,6 @@
 	return &_station_display_datas[st][gfx];
 }
 
-/* For drawing canal edges on buoys */
-extern void DrawCanalWater(TileIndex tile);
-
 static void DrawTile_Station(TileInfo *ti)
 {
 	const DrawTileSprites *t = NULL;