(svn r23512) -Change [FS#4872]: Allow to place locks also on river rapids and restore rivers, if locks are deleted

This commit is contained in:
planetmaker
2011-12-13 23:01:36 +00:00
parent 8017f95b72
commit 38c6c723f3
2 changed files with 13 additions and 9 deletions

View File

@@ -466,14 +466,15 @@ static inline void MakeLockTile(TileIndex t, Owner o, LockPart part, DiagDirecti
* @param d Direction of the water lock.
* @param wc_lower Original water class of the lower part.
* @param wc_upper Original water class of the upper part.
* @param wc_middle Original water class of the middle part.
*/
static inline void MakeLock(TileIndex t, Owner o, DiagDirection d, WaterClass wc_lower, WaterClass wc_upper)
static inline void MakeLock(TileIndex t, Owner o, DiagDirection d, WaterClass wc_lower, WaterClass wc_upper, WaterClass wc_middle)
{
TileIndexDiff delta = TileOffsByDiagDir(d);
MakeLockTile(t, o, LOCK_PART_MIDDLE, d, WATER_CLASS_CANAL);
/* 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. */
/* Keep the current waterclass and owner for the tiles.
* It allows to restore them after the lock is deleted */
MakeLockTile(t, o, LOCK_PART_MIDDLE, d, wc_middle);
MakeLockTile(t - delta, IsWaterTile(t - delta) ? GetTileOwner(t - delta) : o, LOCK_PART_LOWER, d, wc_lower);
MakeLockTile(t + delta, IsWaterTile(t + delta) ? GetTileOwner(t + delta) : o, LOCK_PART_UPPER, d, wc_upper);
}