summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordominik <dominik@openttd.org>2004-08-13 19:52:45 +0000
committerdominik <dominik@openttd.org>2004-08-13 19:52:45 +0000
commit7af3360c5aa6c5b9cfdad97351bcc7644b4ab5c1 (patch)
tree77de48e3da538eaaeb25646d50e1c7b2575105e6
parent3067b9ac635c69fc93692fcddda91bdb48d3414a (diff)
downloadopenttd-7af3360c5aa6c5b9cfdad97351bcc7644b4ab5c1.tar.xz
(svn r44) Fix: Coast line near edge of map and near oilrigs (Dribbel)
-rw-r--r--industry_cmd.c8
-rw-r--r--station_cmd.c5
-rw-r--r--water_cmd.c14
3 files changed, 27 insertions, 0 deletions
diff --git a/industry_cmd.c b/industry_cmd.c
index 17fa7bcd2..48560cfba 100644
--- a/industry_cmd.c
+++ b/industry_cmd.c
@@ -725,6 +725,14 @@ static void TileLoop_Industry(uint tile)
#define SET_AND_UNANIMATE(tile,a,b) { _map5[tile]=a; _map_owner[tile]=b; DeleteAnimatedTile(tile); }
switch(_map5[tile]) {
+ case 0x18: // coast line at oilrigs
+ case 0x19:
+ case 0x1A:
+ case 0x1B:
+ case 0x1C:
+ TileLoop_Water(tile);
+ break;
+
case 0:
if (!(_tick_counter & 0x400) && CHANCE16(1,2))
SET_AND_ANIMATE(tile,1,0x80);
diff --git a/station_cmd.c b/station_cmd.c
index 74a3308c2..d10e9ef3b 100644
--- a/station_cmd.c
+++ b/station_cmd.c
@@ -1841,6 +1841,11 @@ static void TileLoop_Station(uint tile)
// treat a bouy tile as water.
else if (_map5[tile] == 0x52)
TileLoop_Water(tile);
+
+ // treat a oilrig (the station part) as water
+ else if (_map5[tile] == 0x4B)
+ TileLoop_Water(tile);
+
}
diff --git a/water_cmd.c b/water_cmd.c
index 2a1ccc111..ef98a0a44 100644
--- a/water_cmd.c
+++ b/water_cmd.c
@@ -528,6 +528,20 @@ void TileLoop_Water(uint tile)
for(i=0; i!=4; i++)
TileLoopWaterHelper(tile, _tile_loop_offs_array[i]);
}
+
+ // edges
+ if ( GET_TILE_X(tile)==0 && IS_INT_INSIDE(GET_TILE_Y(tile),1,TILES_Y-3+1)) //NE
+ TileLoopWaterHelper(tile, _tile_loop_offs_array[2]);
+
+ if ( GET_TILE_X(tile)==(TILES_X-2) && IS_INT_INSIDE(GET_TILE_Y(tile),1,TILES_Y-3+1)) //SW
+ TileLoopWaterHelper(tile, _tile_loop_offs_array[0]);
+
+ if ( GET_TILE_Y(tile)==0 && IS_INT_INSIDE(GET_TILE_X(tile),1,TILES_X-3+1)) //NW
+ TileLoopWaterHelper(tile, _tile_loop_offs_array[1]);
+
+ if ( GET_TILE_Y(tile)==(TILES_Y-2) && IS_INT_INSIDE(GET_TILE_X(tile),1,TILES_X-3+1)) //SE
+ TileLoopWaterHelper(tile, _tile_loop_offs_array[3]);
+
}