# water.h File Reference

Functions related to water (management). More...

`#include "tile_type.h"`
`#include "company_type.h"`
`#include "slope_type.h"`

Go to the source code of this file.

## Enumerations
enum | FloodingBehaviour { FLOOD_NONE, FLOOD_ACTIVE, FLOOD_PASSIVE, FLOOD_DRYUP }
| Describes the behaviour of a tile during flooding. More...
## Functions
FloodingBehaviour | GetFloodingBehaviour (TileIndex tile)
| Returns the behaviour of a tile during flooding.
void | TileLoop_Water (TileIndex tile)
| Let a water tile floods its diagonal adjoining tiles called from tunnelbridge_cmd, and by TileLoop_Industry() and TileLoop_Track().
bool | FloodHalftile (TileIndex t)
| Called from water_cmd if a non-flat rail-tile gets flooded and should be converted to shore.
void | DoFloodTile (TileIndex target)
| Floods a tile.
void | ConvertGroundTilesIntoWaterTiles ()
void | DrawShipDepotSprite (int x, int y, int image)
void | DrawWaterClassGround (const struct TileInfo *ti)
void | DrawShoreTile (Slope tileh)
void | MakeWaterKeepingClass (TileIndex tile, Owner o)

## Detailed Description

Functions related to water (management).

Definition in file water.h.

## Enumeration Type Documentation

enum FloodingBehaviour

Describes the behaviour of a tile during flooding.

Enumerator:

  FLOOD_NONE | The tile does not flood neighboured tiles.
  FLOOD_ACTIVE | The tile floods neighboured tiles.
  FLOOD_PASSIVE | The tile does not actively flood neighboured tiles, but it prevents them from drying up.
  FLOOD_DRYUP | The tile drys up if it is not constantly flooded from neighboured tiles.

Definition at line 22 of file water.h.

## Function Documentation

bool FloodHalftile | ( | TileIndex | t | ) |

Called from water_cmd if a non-flat rail-tile gets flooded and should be converted to shore.

The function floods the lower halftile, if the tile has a halftile foundation.

Parameters:

  | t | The tile to flood.

Returns:
  true if something was flooded.

Definition at line 645 of file rail_cmd.cpp.

References _current_company, ApplyFoundationToSlope(), CMD_REMOVE_SINGLE_RAIL, CornerToTrackBits(), DC_EXEC, DoCommand(), FIND_FIRST_BIT, GetHighestSlopeCorner(), GetRailFoundation(), GetTileSlope(), GetTrackBits(), IsNonContinuousFoundation(), IsPlainRailTile(), IsSlopeWithOneCornerRaised(), IsSlopeWithThreeCornersRaised(), IsSteepSlope(), MakeShore(), MarkTileDirtyByTile(), OppositeCorner(), OWNER_WATER, RAIL_GROUND_WATER, Backup< T >::Restore(), and CommandCost::Succeeded().

Referenced by DoFloodTile().

FloodingBehaviour GetFloodingBehaviour | ( | TileIndex | tile | ) |

Returns the behaviour of a tile during flooding.

Returns:
  Behaviour of the tile

Definition at line 921 of file water_cmd.cpp.

References FLOOD_ACTIVE, FLOOD_DRYUP, FLOOD_NONE, GetTileSlope(), GetTileType(), GetTreeGround(), GetWaterClass(), IsCoast(), IsSlopeWithOneCornerRaised(), MP_INDUSTRY, MP_OBJECT, MP_RAILWAY, MP_STATION, MP_TREES, MP_WATER, RAIL_GROUND_WATER, TREE_GROUND_SHORE, and WATER_CLASS_SEA.

Referenced by CheckRailSlope(), and TileLoop_Water().

void TileLoop_Water | ( | TileIndex | tile | ) |

Let a water tile floods its diagonal adjoining tiles called from tunnelbridge_cmd, and by TileLoop_Industry() and TileLoop_Track().

Parameters:

  | tile | the water/shore tile that floods

Definition at line 1069 of file water_cmd.cpp.

References _flood_from_dirs, AddTileIndexDiffCWrap(), DIR_BEGIN, DIR_END, DoDryUp(), DoFloodTile(), FLOOD_ACTIVE, FLOOD_DRYUP, FLOOD_PASSIVE, FOR_EACH_SET_BIT, GetFloodingBehaviour(), GetFoundationSlope(), HasBit(), INVALID_TILE, IsTileType(), MP_WATER, ReverseDir(), SLOPE_HALFTILE_MASK, SLOPE_STEEP, and TileIndexDiffCByDir().