/* * This file is part of OpenTTD. * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. *//** @file water.h Functions related to water (management) */#ifndef WATER_H#define WATER_H#include"water_map.h"#include"economy_func.h"/** * Describes the behaviour of a tile during flooding. */enumFloodingBehaviour{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.};FloodingBehaviourGetFloodingBehaviour(TileIndextile);voidTileLoop_Water(TileIndextile);boolFloodHalftile(TileIndext);voidDoFloodTile(TileIndextarget);voidConvertGroundTilesIntoWaterTiles();voidDrawShipDepotSprite(intx,inty,Axisaxis,DepotPartpart);voidDrawWaterClassGround(conststructTileInfo*ti);voidDrawShoreTile(Slopetileh);voidMakeWaterKeepingClass(TileIndextile,Ownero);voidCheckForDockingTile(TileIndext);boolRiverModifyDesertZone(TileIndextile,void*data);voidMakeRiverAndModifyDesertZoneAround(TileIndextile);staticconstuintRIVER_OFFSET_DESERT_DISTANCE=5;///< Circular tile search radius to create non-desert around a river tile.boolIsWateredTile(TileIndextile,Directionfrom);/** * Calculates the maintenance cost of a number of canal tiles. * @param num Number of canal tiles. * @return Total cost. */inlineMoneyCanalMaintenanceCost(uint32_tnum){return(_price[PR_INFRASTRUCTURE_WATER]*num*(1+IntSqrt(num)))>>6;// 6 bits scaling.}#endif /* WATER_H */