Class that handles all marine related functions. More...
#include <ai_marine.hpp>
Public Types | |
enum | ErrorMessages { ERR_MARINE_BASE = AIError::ERR_CAT_MARINE << AIError::ERR_CAT_BIT_SIZE, ERR_MARINE_MUST_BE_BUILT_ON_WATER } |
All marine related error messages. More... | |
enum | BuildType { BT_DOCK, BT_DEPOT, BT_BUOY } |
Types of water-related objects in the game. More... | |
Static Public Member Functions | |
static const char * | GetClassName () |
Get the name of this class to identify it towards squirrel. | |
static bool | IsWaterDepotTile (TileIndex tile) |
Checks whether the given tile is actually a tile with a water depot. | |
static bool | IsDockTile (TileIndex tile) |
Checks whether the given tile is actually a tile with a dock. | |
static bool | IsBuoyTile (TileIndex tile) |
Checks whether the given tile is actually a tile with a buoy. | |
static bool | IsLockTile (TileIndex tile) |
Checks whether the given tile is actually a tile with a lock. | |
static bool | IsCanalTile (TileIndex tile) |
Checks whether the given tile is actually a tile with a canal. | |
static bool | AreWaterTilesConnected (TileIndex tile_from, TileIndex tile_to) |
Checks whether the given tiles are directly connected, i.e. | |
static bool | BuildWaterDepot (TileIndex tile, TileIndex front) |
Builds a water depot on tile. | |
static bool | BuildDock (TileIndex tile, StationID station_id) |
Builds a dock where tile is the tile still on land. | |
static bool | BuildBuoy (TileIndex tile) |
Builds a buoy on tile. | |
static bool | BuildLock (TileIndex tile) |
Builds a lock on tile. | |
static bool | BuildCanal (TileIndex tile) |
Builds a canal on tile. | |
static bool | RemoveWaterDepot (TileIndex tile) |
Removes a water depot. | |
static bool | RemoveDock (TileIndex tile) |
Removes a dock. | |
static bool | RemoveBuoy (TileIndex tile) |
Removes a buoy. | |
static bool | RemoveLock (TileIndex tile) |
Removes a lock. | |
static bool | RemoveCanal (TileIndex tile) |
Removes a canal. | |
static Money | GetBuildCost (BuildType build_type) |
Get the baseprice of building a water-related object. |
Class that handles all marine related functions.
Definition at line 20 of file ai_marine.hpp.
enum AIMarine::BuildType |
Types of water-related objects in the game.
Definition at line 39 of file ai_marine.hpp.
All marine related error messages.
ERR_MARINE_BASE |
Base for marine related errors. |
ERR_MARINE_MUST_BE_BUILT_ON_WATER |
Infrastructure must be built on water. |
Definition at line 28 of file ai_marine.hpp.
Checks whether the given tiles are directly connected, i.e.
whether a ship vehicle can travel from the center of the first tile to the center of the second tile.
tile_from | The source tile. | |
tile_to | The destination tile. |
Definition at line 54 of file ai_marine.cpp.
References DiagdirBetweenTiles(), DiagdirReachesTracks(), DistanceManhattan(), GetTileTrackStatus(), IsValidTile(), ReverseDiagDir(), TRACK_BIT_NONE, TrackStatusToTrackBits(), and TRANSPORT_WATER.
bool AIMarine::BuildBuoy | ( | TileIndex | tile | ) | [static] |
Builds a buoy on tile.
tile | The tile where the buoy will be build. |
AIError::ERR_AREA_NOT_CLEAR | ||
AIError::ERR_SITE_UNSUITABLE | ||
AIStation::ERR_STATION_TOO_MANY_STATIONS |
Definition at line 93 of file ai_marine.cpp.
References CMD_BUILD_BUOY, AIObject::DoCommand(), EnforcePrecondition, and IsValidTile().
bool AIMarine::BuildCanal | ( | TileIndex | tile | ) | [static] |
Builds a canal on tile.
tile | The tile where the canal will be build. |
AIError::ERR_AREA_NOT_CLEAR | ||
AIError::ERR_LAND_SLOPED_WRONG | ||
AIError::ERR_OWNED_BY_ANOTHER_COMPANY | ||
AIError::ERR_ALREADY_BUILT |
Definition at line 107 of file ai_marine.cpp.
References CMD_BUILD_CANAL, AIObject::DoCommand(), EnforcePrecondition, IsValidTile(), and WATER_CLASS_CANAL.
Builds a dock where tile is the tile still on land.
tile | The tile still on land of the dock. | |
station_id | The station to join, AIStation::STATION_NEW or AIStation::STATION_JOIN_ADJACENT. |
AIError::ERR_AREA_NOT_CLEAR | ||
AIError::ERR_SITE_UNSUITABLE | ||
AIStation::ERR_STATION_TOO_CLOSE_TO_ANOTHER_STATION | ||
AIStation::ERR_STATION_TOO_MANY_STATIONS |
Definition at line 83 of file ai_marine.cpp.
References CMD_BUILD_DOCK, AIObject::DoCommand(), EnforcePrecondition, AIStation::IsValidStation(), IsValidTile(), AIBaseStation::STATION_JOIN_ADJACENT, and AIBaseStation::STATION_NEW.
bool AIMarine::BuildLock | ( | TileIndex | tile | ) | [static] |
Builds a lock on tile.
tile | The tile where the lock will be build. |
Definition at line 100 of file ai_marine.cpp.
References CMD_BUILD_LOCK, AIObject::DoCommand(), EnforcePrecondition, and IsValidTile().
Builds a water depot on tile.
tile | The tile where the water depot will be build. | |
front | A tile on the same axis with 'tile' as the depot shall be oriented. |
AIError::ERR_AREA_NOT_CLEAR | ||
AIError::ERR_SITE_UNSUITABLE | ||
AIMarine::ERR_MARINE_MUST_BE_BUILT_ON_WATER |
Definition at line 74 of file ai_marine.cpp.
References CMD_BUILD_SHIP_DEPOT, AIObject::DoCommand(), EnforcePrecondition, IsValidTile(), TileX(), and TileY().
Get the baseprice of building a water-related object.
build_type | the type of object to build |
Definition at line 154 of file ai_marine.cpp.
References BT_BUOY, BT_DEPOT, BT_DOCK, and GetPrice().
static const char* AIMarine::GetClassName | ( | ) | [inline, static] |
Get the name of this class to identify it towards squirrel.
Definition at line 23 of file ai_marine.hpp.
bool AIMarine::IsBuoyTile | ( | TileIndex | tile | ) | [static] |
Checks whether the given tile is actually a tile with a buoy.
tile | The tile to check. |
Definition at line 33 of file ai_marine.cpp.
References IsBuoy(), IsTileType(), IsValidTile(), and MP_STATION.
Referenced by AIWaypoint::GetWaypointID(), and RemoveBuoy().
bool AIMarine::IsCanalTile | ( | TileIndex | tile | ) | [static] |
Checks whether the given tile is actually a tile with a canal.
tile | The tile to check. |
Definition at line 47 of file ai_marine.cpp.
References IsCanal(), IsTileType(), IsValidTile(), and MP_WATER.
Referenced by RemoveCanal().
bool AIMarine::IsDockTile | ( | TileIndex | tile | ) | [static] |
Checks whether the given tile is actually a tile with a dock.
tile | The tile to check. |
Definition at line 26 of file ai_marine.cpp.
References IsDock(), IsTileType(), IsValidTile(), and MP_STATION.
Referenced by RemoveDock().
bool AIMarine::IsLockTile | ( | TileIndex | tile | ) | [static] |
Checks whether the given tile is actually a tile with a lock.
tile | The tile to check. |
Definition at line 40 of file ai_marine.cpp.
References GetWaterTileType(), IsTileType(), IsValidTile(), MP_WATER, and WATER_TILE_LOCK.
Referenced by RemoveLock().
bool AIMarine::IsWaterDepotTile | ( | TileIndex | tile | ) | [static] |
Checks whether the given tile is actually a tile with a water depot.
tile | The tile to check. |
Definition at line 19 of file ai_marine.cpp.
References GetWaterTileType(), IsTileType(), IsValidTile(), MP_WATER, and WATER_TILE_DEPOT.
Referenced by RemoveWaterDepot().
bool AIMarine::RemoveBuoy | ( | TileIndex | tile | ) | [static] |
Removes a buoy.
tile | Any tile of the buoy. |
AIError::ERR_OWNED_BY_ANOTHER_COMPANY |
Definition at line 130 of file ai_marine.cpp.
References CMD_LANDSCAPE_CLEAR, AIObject::DoCommand(), EnforcePrecondition, IsBuoyTile(), and IsValidTile().
bool AIMarine::RemoveCanal | ( | TileIndex | tile | ) | [static] |
Removes a canal.
tile | Any tile of the canal. |
AIError::ERR_OWNED_BY_ANOTHER_COMPANY |
Definition at line 146 of file ai_marine.cpp.
References CMD_LANDSCAPE_CLEAR, AIObject::DoCommand(), EnforcePrecondition, IsCanalTile(), and IsValidTile().
bool AIMarine::RemoveDock | ( | TileIndex | tile | ) | [static] |
Removes a dock.
tile | Any tile of the dock. |
AIError::ERR_OWNED_BY_ANOTHER_COMPANY |
Definition at line 122 of file ai_marine.cpp.
References CMD_LANDSCAPE_CLEAR, AIObject::DoCommand(), EnforcePrecondition, IsDockTile(), and IsValidTile().
bool AIMarine::RemoveLock | ( | TileIndex | tile | ) | [static] |
Removes a lock.
tile | Any tile of the lock. |
AIError::ERR_OWNED_BY_ANOTHER_COMPANY |
Definition at line 138 of file ai_marine.cpp.
References CMD_LANDSCAPE_CLEAR, AIObject::DoCommand(), EnforcePrecondition, IsLockTile(), and IsValidTile().
bool AIMarine::RemoveWaterDepot | ( | TileIndex | tile | ) | [static] |
Removes a water depot.
tile | Any tile of the water depot. |
AIError::ERR_OWNED_BY_ANOTHER_COMPANY |
Definition at line 114 of file ai_marine.cpp.
References CMD_LANDSCAPE_CLEAR, AIObject::DoCommand(), EnforcePrecondition, IsValidTile(), and IsWaterDepotTile().