File diff r15932:94aeec77b25a → r15933:39e6324db57a
src/water_cmd.cpp
Show inline comments
 
@@ -488,25 +488,25 @@ static bool IsWateredTile(TileIndex tile
 

	
 
				return GetWaterClass(tile) != WATER_CLASS_INVALID;
 
			}
 
			return (IsDock(tile) && GetTileSlope(tile, NULL) == SLOPE_FLAT) || IsBuoy(tile);
 

	
 
		case MP_INDUSTRY: {
 
			/* Do not draw waterborders inside of industries.
 
			 * Note: There is no easy way to detect the industry of an oilrig tile. */
 
			TileIndex src_tile = tile + TileOffsByDir(from);
 
			if ((IsTileType(src_tile, MP_STATION) && IsOilRig(src_tile)) ||
 
			    (IsTileType(src_tile, MP_INDUSTRY) && GetIndustryIndex(src_tile) == GetIndustryIndex(tile))) return true;
 

	
 
			return IsIndustryTileOnWater(tile);
 
			return IsTileOnWater(tile);
 
		}
 

	
 
		case MP_TUNNELBRIDGE: return GetTunnelBridgeTransportType(tile) == TRANSPORT_WATER && ReverseDiagDir(GetTunnelBridgeDirection(tile)) == DirToDiagDir(from);
 

	
 
		default:          return false;
 
	}
 
}
 

	
 
/**
 
 * Draw a water sprite, potentially with a NewGRF-modified sprite offset.
 
 * @param base    Sprite base.
 
 * @param offset  Sprite offset.
 
@@ -923,46 +923,39 @@ static void FloodVehicles(TileIndex tile
 
FloodingBehaviour GetFloodingBehaviour(TileIndex tile)
 
{
 
	/* FLOOD_ACTIVE:  'single-corner-raised'-coast, sea, sea-shipdepots, sea-buoys, sea-docks (water part), rail with flooded halftile, sea-water-industries, sea-oilrigs
 
	 * FLOOD_DRYUP:   coast with more than one corner raised, coast with rail-track, coast with trees
 
	 * FLOOD_PASSIVE: (not used)
 
	 * FLOOD_NONE:    canals, rivers, everything else
 
	 */
 
	switch (GetTileType(tile)) {
 
		case MP_WATER:
 
			if (IsCoast(tile)) {
 
				Slope tileh = GetTileSlope(tile, NULL);
 
				return (IsSlopeWithOneCornerRaised(tileh) ? FLOOD_ACTIVE : FLOOD_DRYUP);
 
			} else {
 
			}
 
			/* FALL THROUGH */
 
		case MP_STATION:
 
		case MP_INDUSTRY:
 
				return (GetWaterClass(tile) == WATER_CLASS_SEA) ? FLOOD_ACTIVE : FLOOD_NONE;
 
			}
 

	
 
		case MP_RAILWAY:
 
			if (GetRailGroundType(tile) == RAIL_GROUND_WATER) {
 
				return (IsSlopeWithOneCornerRaised(GetTileSlope(tile, NULL)) ? FLOOD_ACTIVE : FLOOD_DRYUP);
 
			}
 
			return FLOOD_NONE;
 

	
 
		case MP_TREES:
 
			return (GetTreeGround(tile) == TREE_GROUND_SHORE ? FLOOD_DRYUP : FLOOD_NONE);
 

	
 
		case MP_STATION:
 
			if (IsBuoy(tile) || (IsDock(tile) && GetTileSlope(tile, NULL) == SLOPE_FLAT) || IsOilRig(tile)) {
 
				return (GetWaterClass(tile) == WATER_CLASS_SEA ? FLOOD_ACTIVE : FLOOD_NONE);
 
			}
 
			return FLOOD_NONE;
 

	
 
		case MP_INDUSTRY:
 
			return ((IsIndustryTileOnWater(tile) && GetWaterClass(tile) == WATER_CLASS_SEA) ? FLOOD_ACTIVE : FLOOD_NONE);
 

	
 
		default:
 
			return FLOOD_NONE;
 
	}
 
}
 

	
 
/**
 
 * Floods a tile.
 
 */
 
void DoFloodTile(TileIndex target)
 
{
 
	assert(!IsTileType(target, MP_WATER));