OpenTTD Source: src/station_func.h File Reference

OpenTTD Source 14.0-RC3

Functions
station_func.h File Reference
`#include "sprite.h"`
`#include "rail_type.h"`
`#include "road_type.h"`
`#include "vehicle_type.h"`
`#include "economy_func.h"`
`#include "rail.h"`
`#include "road.h"`
`#include "linkgraph/linkgraph_type.h"`
`#include "industry_type.h"`

Go to the source code of this file.

## Functions
void | ModifyStationRatingAround (TileIndex tile, Owner owner, int amount, uint radius)
void | ShowStationViewWindow (StationID station)
| Opens StationViewWindow for given station. More...
void | UpdateAllStationVirtCoords ()
| Update the virtual coords needed to draw the station sign for all stations.
void | ClearAllStationCachedNames ()
CargoArray | GetProductionAroundTiles (TileIndex tile, int w, int h, int rad)
| Get the cargo types being produced around the tile (in a rectangle). More...
CargoArray | GetAcceptanceAroundTiles (TileIndex tile, int w, int h, int rad, CargoTypes *always_accepted=nullptr)
| Get the acceptance of cargoes around the tile in 1/8. More...
void | UpdateStationAcceptance (Station *st, bool show_msg)
| Update the acceptance for a station. More...
CargoTypes | GetAcceptanceMask (const Station *st)
| Get a mask of the cargo types that the station accepts. More...
CargoTypes | GetEmptyMask (const Station *st)
| Get a mask of the cargo types that are empty at the station. More...
const DrawTileSprites * | GetStationTileLayout (StationType st, byte gfx)
void | StationPickerDrawSprite (int x, int y, StationType st, RailType railtype, RoadType roadtype, int image)
bool | HasStationInUse (StationID station, bool include_company, CompanyID company)
| Tests whether the company's vehicles have this station in orders. More...
void | DeleteOilRig (TileIndex t)
void | UpdateStationDockingTiles (Station *st)
void | RemoveDockingTile (TileIndex t)
void | ClearDockingTilesCheckingNeighbours (TileIndex tile)
| Clear docking tile status from tiles around a removed dock, if the tile has no neighbours which would keep it as a docking tile. More...
void | UpdateAirportsNoise ()
| Recalculate the noise generated by the airports of each town.
bool | SplitGroundSpriteForOverlay (const TileInfo *ti, SpriteID *ground, RailTrackOffset *overlay_offset)
| Check whether a sprite is a track sprite, which can be replaced by a non-track ground sprite and a rail overlay. More...
void | IncreaseStats (Station *st, const Vehicle *v, StationID next_station_id, uint32_t time)
| Increase capacity for all link stats associated with vehicles in the given consist. More...
void | IncreaseStats (Station *st, CargoID cargo, StationID next_station_id, uint capacity, uint usage, uint32_t time, EdgeUpdateMode mode)
| Increase capacity for a link stat given by station cargo and next hop. More...
void | RerouteCargo (Station *st, CargoID c, StationID avoid, StationID avoid2)
| Reroute cargo of type c at station st or in any vehicles unloading there. More...
Money | StationMaintenanceCost (uint32_t num)
| Calculates the maintenance cost of a number of station tiles. More...
Money | AirportMaintenanceCost (Owner owner)
| Calculates the maintenance cost of all airports of a company. More...

## Detailed Description

Functions related to stations.

Definition in file station_func.h.

## Function Documentation

## ◆ AirportMaintenanceCost()

Money AirportMaintenanceCost | ( | Owner | owner | ) |

Calculates the maintenance cost of all airports of a company.

Parameters

  owner | Company.

Returns
  Total cost.

Definition at line 703 of file station.cpp.

References FACIL_AIRPORT, BaseStation::facilities, SpecializedStation< Station, false >::Iterate(), and BaseStation::owner.

## ◆ ClearDockingTilesCheckingNeighbours()

void ClearDockingTilesCheckingNeighbours | ( | TileIndex | tile | ) |

Clear docking tile status from tiles around a removed dock, if the tile has no neighbours which would keep it as a docking tile.

Parameters

  tile | Ex-dock tile to check.

Definition at line 2760 of file station_cmd.cpp.

References DIAGDIR_BEGIN, DIAGDIR_END, IsValidTile(), and TileOffsByDiagDir().

## ◆ GetAcceptanceAroundTiles()

CargoArray GetAcceptanceAroundTiles | ( | TileIndex | center_tile,
|  | int | w,
|  | int | h,
|  | int | rad,
|  | CargoTypes * | always_accepted
| ) |  |

Get the acceptance of cargoes around the tile in 1/8.

Parameters

  center_tile | Center of the search area
  w | X extent of area
  h | Y extent of area
  rad | Search radius in addition to given area
  always_accepted | bitmask of cargo accepted by houses and headquarters; can be nullptr
  ind | Industry associated with neutral station (e.g. oil rig) or nullptr

Definition at line 581 of file station_cmd.cpp.

References _settings_game, OrthogonalTileArea::Expand(), Industry::GetByTile(), IsTileType(), MP_INDUSTRY, StationSettings::serve_neutral_industries, and GameSettings::station.

## ◆ GetAcceptanceMask()

CargoTypes GetAcceptanceMask | ( | const Station * | st | ) |

Get a mask of the cargo types that the station accepts.

Parameters

  st | Station to query

Returns
  the expected mask

Definition at line 497 of file station_cmd.cpp.

References GoodsEntry::GES_ACCEPTANCE, Station::goods, HasBit(), and SetBit().

Referenced by StationViewWindow::DrawAcceptedCargo(), and UpdateStationAcceptance().

## ◆ GetEmptyMask()

CargoTypes GetEmptyMask | ( | const Station * | st | ) |

Get a mask of the cargo types that are empty at the station.

Parameters

  st | Station to query

Returns
  the empty mask

Definition at line 512 of file station_cmd.cpp.

References Station::goods, and SetBit().

Referenced by TriggerRoadStopRandomisation().

## ◆ GetProductionAroundTiles()

CargoArray GetProductionAroundTiles | ( | TileIndex | north_tile,
|  | int | w,
|  | int | h,
|  | int | rad
| ) |  |

Get the cargo types being produced around the tile (in a rectangle).

Parameters

  north_tile | Northern most tile of area
  w | X extent of the area
  h | Y extent of the area
  rad | Search radius in addition to the given area

Definition at line 543 of file station_cmd.cpp.

References OrthogonalTileArea::Expand(), GetIndustryIndex(), IsTileType(), and MP_INDUSTRY.

## ◆ HasStationInUse()

bool HasStationInUse | ( | StationID | station,
|  | bool | include_company,
|  | CompanyID | company
| ) |  |

Tests whether the company's vehicles have this station in orders.

Parameters

  station | station ID
  include_company | If true only check vehicles of company, if false only check vehicles of other companies
  company | company ID

Definition at line 2622 of file station_cmd.cpp.

References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_vehicle_pool >::Iterate(), Vehicle::Orders(), and Vehicle::owner.

Referenced by CompanyStationsWindow::BuildStationsList(), and RemoveBuoy().

## ◆ IncreaseStats() [1/2]

void IncreaseStats | ( | Station * | st,
|  | CargoID | cargo,
|  | StationID | next_station_id,
|  | uint | capacity,
|  | uint | usage,
|  | uint32_t | time,
|  | EdgeUpdateMode | mode
| ) |  |

Increase capacity for a link stat given by station cargo and next hop.

Parameters

  st | Station to get the link stats from.
  cargo | Cargo to increase stat for.
  next_station_id | Station the consist will be travelling to next.
  capacity | Capacity to add to link stat.
  usage | Usage to add to link stat.
  mode | Update mode to be applied.

Definition at line 3915 of file station_cmd.cpp.

References SpecializedStation< Station, false >::Get(), Station::goods, and GoodsEntry::link_graph.

Referenced by IncreaseStats().

## ◆ IncreaseStats() [2/2]

void IncreaseStats | ( | Station * | st,
|  | const Vehicle * | front,
|  | StationID | next_station_id,
|  | uint32_t | time
| ) |  |

Increase capacity for all link stats associated with vehicles in the given consist.

Parameters

  st | Station to get the link stats from.
  front | First vehicle in the consist.
  next_station_id | Station the consist will be travelling to next.

Definition at line 3967 of file station_cmd.cpp.

References Vehicle::cargo, Vehicle::cargo_type, EUM_INCREASE, IncreaseStats(), Vehicle::Next(), Vehicle::refit_cap, and VehicleCargoList::StoredCount().

## ◆ RerouteCargo()

void RerouteCargo | ( | Station * | st,
|  | CargoID | c,
|  | StationID | avoid,
|  | StationID | avoid2
| ) |  |

Reroute cargo of type c at station st or in any vehicles unloading there.

Make sure the cargo's new next hop is neither "avoid" nor "avoid2".

Parameters

  st | Station to be rerouted at.
  c | Type of cargo.
  avoid | Original next hop of cargo, avoid this.
  avoid2 | Another station to be avoided when rerouting.

Definition at line 3797 of file station_cmd.cpp.

References GoodsEntry::cargo, Station::goods, Vehicle::Next(), and StationCargoList::Reroute().

## ◆ ShowStationViewWindow()

void ShowStationViewWindow | ( | StationID | station | ) |

Opens StationViewWindow for given station.

Parameters

  station | station which window should be opened

Definition at line 2145 of file station_gui.cpp.

## ◆ SplitGroundSpriteForOverlay()

bool SplitGroundSpriteForOverlay | ( | const TileInfo * | ti,
|  | SpriteID * | ground,
|  | RailTrackOffset * | overlay_offset
| ) |  |

Check whether a sprite is a track sprite, which can be replaced by a non-track ground sprite and a rail overlay.

If the ground sprite is suitable, ground is replaced with the new non-track ground sprite, and overlay_offset is set to the overlay to draw.

Parameters

  | ti | Positional info for the tile to decide snowyness etc. May be nullptr.
  [in,out] | ground | Groundsprite to draw.
  [out] | overlay_offset | Overlay to draw.

Returns
  true if overlay can be drawn.

Definition at line 2884 of file station_cmd.cpp.

## ◆ StationMaintenanceCost()

Money StationMaintenanceCost | ( | uint32_t | num | ) |
| inline

Calculates the maintenance cost of a number of station tiles.

Parameters

  num | Number of station tiles.

Returns
  Total cost.

Definition at line 59 of file station_func.h.

## ◆ UpdateStationAcceptance()

void UpdateStationAcceptance | ( | Station * | st,
|  | bool | show_msg
| ) |  |

Update the acceptance for a station.

Parameters

  st | Station to update
  show_msg | controls whether to display a message that acceptance was changed.

Definition at line 621 of file station_cmd.cpp.

References _local_company, Station::always_accepted, CC_PASSENGERS, FACIL_BUS_STOP, FACIL_TRUCK_STOP, BaseStation::facilities, GoodsEntry::GES_ACCEPTANCE, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_link_graph_pool >::Get(), GetAcceptanceAroundStation(), GetAcceptanceMask(), Station::goods, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, IsCargoInClass(), BaseStation::IsInUse(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_link_graph_pool >::IsValidID(), GoodsEntry::link_graph, GoodsEntry::node, NUM_CARGO, BaseStation::owner, BaseStation::rect, SB(), SetWindowWidgetDirty(), ShowRejectOrAcceptNews(), GoodsEntry::status, WC_STATION_VIEW, and WID_SV_ACCEPT_RATING_LIST.

Referenced by StationHandleBigTick().