diff options
author | michi_cc <michi_cc@openttd.org> | 2011-07-07 14:16:16 +0000 |
---|---|---|
committer | michi_cc <michi_cc@openttd.org> | 2011-07-07 14:16:16 +0000 |
commit | 662a0a9cd31111f9507e6d0706c3d5e9b7a425cc (patch) | |
tree | 844aa17136cf00df449de2dccfd9b6978df163fe /src/water_map.h | |
parent | d1be388bc91fcffe5dc5687b2ae57789c5d576a7 (diff) | |
download | openttd-662a0a9cd31111f9507e6d0706c3d5e9b7a425cc.tar.xz |
(svn r22638) -Fix: Keep the previous owner of the upper and lower lock parts if they are built on existing water.
Diffstat (limited to 'src/water_map.h')
-rw-r--r-- | src/water_map.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/water_map.h b/src/water_map.h index d26b93210..02838a684 100644 --- a/src/water_map.h +++ b/src/water_map.h @@ -421,8 +421,10 @@ static inline void MakeLock(TileIndex t, Owner o, DiagDirection d, WaterClass wc TileIndexDiff delta = TileOffsByDiagDir(d); MakeLockTile(t, o, LOCK_MIDDLE + d, WATER_CLASS_CANAL); - MakeLockTile(t - delta, o, LOCK_LOWER + d, wc_lower); - MakeLockTile(t + delta, o, LOCK_UPPER + d, wc_upper); + /* Keep the current owner for the upper and lower part if it is a + * water tile so we can restore the owner after deleting the lock. */ + MakeLockTile(t - delta, IsWaterTile(t - delta) ? GetTileOwner(t - delta) : o, LOCK_LOWER + d, wc_lower); + MakeLockTile(t + delta, IsWaterTile(t + delta) ? GetTileOwner(t + delta) : o, LOCK_UPPER + d, wc_upper); } #endif /* WATER_MAP_H */ |