From dd60e3b7dd0756121c3634c113382fdb1ba1601d Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 31 Aug 2007 19:46:45 +0000 Subject: [PATCH] (svn r11022) -Fix: the canal border determination did not take oil rigs into consideration. --- src/water_cmd.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp index 428cd5f4b9..4a069840fe 100644 --- a/src/water_cmd.cpp +++ b/src/water_cmd.cpp @@ -26,6 +26,7 @@ #include "train.h" #include "roadveh.h" #include "water_map.h" +#include "industry_map.h" #include "newgrf.h" #include "newgrf_canal.h" #include "misc/autoptr.hpp" @@ -362,8 +363,9 @@ static bool IsWateredTile(TileIndex tile) return false; } - case MP_STATION: return IsOilRig(tile) || IsDock(tile) || IsBuoy(tile); - default: return false; + case MP_STATION: return IsOilRig(tile) || IsDock(tile) || IsBuoy(tile); + case MP_INDUSTRY: return (GetIndustrySpec(GetIndustryType(tile))->behaviour & INDUSTRYBEH_BUILT_ONWATER) != 0; + default: return false; } } @@ -377,10 +379,10 @@ void DrawCanalWater(TileIndex tile) if (dikes_base == 0) dikes_base = SPR_CANALS_BASE + 57; /* determine the edges around with water. */ - wa = IsWateredTile(TILE_ADDXY(tile, -1, 0)) << 0; - wa += IsWateredTile(TILE_ADDXY(tile, 0, 1)) << 1; - wa += IsWateredTile(TILE_ADDXY(tile, 1, 0)) << 2; - wa += IsWateredTile(TILE_ADDXY(tile, 0, -1)) << 3; + wa = IsWateredTile(TILE_ADDXY(tile, -1, 0)) << 0; + wa += IsWateredTile(TILE_ADDXY(tile, 0, 1)) << 1; + wa += IsWateredTile(TILE_ADDXY(tile, 1, 0)) << 2; + wa += IsWateredTile(TILE_ADDXY(tile, 0, -1)) << 3; if (!(wa & 1)) DrawGroundSprite(dikes_base, PAL_NONE); if (!(wa & 2)) DrawGroundSprite(dikes_base + 1, PAL_NONE);