OpenTTD Source 20241224-master-gf74b0cf984
|
Functions related to stations. More...
#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. | |
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). | |
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. | |
void | UpdateStationAcceptance (Station *st, bool show_msg) |
Update the acceptance for a station. | |
CargoTypes | GetAcceptanceMask (const Station *st) |
Get a mask of the cargo types that the station accepts. | |
CargoTypes | GetEmptyMask (const Station *st) |
Get a mask of the cargo types that are empty at the station. | |
void | SetRailStationTileFlags (TileIndex tile, const StationSpec *statspec) |
Set rail station tile flags for the given tile. | |
const DrawTileSprites * | GetStationTileLayout (StationType st, uint8_t gfx) |
Get station tile layout for a station type and its station 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. | |
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. | |
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. | |
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. | |
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. | |
void | RerouteCargo (Station *st, CargoID c, StationID avoid, StationID avoid2) |
Reroute cargo of type c at station st or in any vehicles unloading there. | |
Money | StationMaintenanceCost (uint32_t num) |
Calculates the maintenance cost of a number of station tiles. | |
Money | AirportMaintenanceCost (Owner owner) |
Calculates the maintenance cost of all airports of a company. | |
Functions related to stations.
Definition in file station_func.h.
Calculates the maintenance cost of all airports of a company.
owner | Company. |
Definition at line 709 of file station.cpp.
References FACIL_AIRPORT, BaseStation::facilities, SpecializedStation< Station, false >::Iterate(), and BaseStation::owner.
Referenced by CompaniesGenStatistics(), CompanyInfrastructureWindow::DrawWidget(), CompanyInfrastructureWindow::GetTotalMaintenanceCost(), and CompanyInfrastructureWindow::UpdateWidgetSize().
void ClearAllStationCachedNames | ( | ) |
Definition at line 489 of file station_cmd.cpp.
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.
tile | Ex-dock tile to check. |
Definition at line 2898 of file station_cmd.cpp.
References CheckForDockingTile(), DIAGDIR_BEGIN, DIAGDIR_END, IsValidTile(), SetDockingTile(), and TileOffsByDiagDir().
Referenced by RemoveDock().
void DeleteOilRig | ( | TileIndex | t | ) |
Definition at line 4553 of file station_cmd.cpp.
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.
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 585 of file station_cmd.cpp.
References _settings_game, OrthogonalTileArea::Expand(), Industry::GetByTile(), IsTileType(), MP_INDUSTRY, Industry::neutral_station, StationSettings::serve_neutral_industries, and GameSettings::station.
Referenced by DrawStationCoverageAreaText().
CargoTypes GetAcceptanceMask | ( | const Station * | st | ) |
Get a mask of the cargo types that the station accepts.
st | Station to query |
Definition at line 501 of file station_cmd.cpp.
References GoodsEntry::GES_ACCEPTANCE, Station::goods, HasBit(), and SetBit().
Referenced by StationViewWindow::DrawAcceptedCargo(), and UpdateStationAcceptance().
CargoTypes GetEmptyMask | ( | const Station * | st | ) |
Get a mask of the cargo types that are empty at the station.
st | Station to query |
Definition at line 516 of file station_cmd.cpp.
References Station::goods, and SetBit().
Referenced by TriggerRoadStopRandomisation(), and TriggerStationRandomisation().
CargoArray GetProductionAroundTiles | ( | TileIndex | north_tile, |
int | w, | ||
int | h, | ||
int | rad | ||
) |
Get the cargo types being produced around the tile (in a rectangle).
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 547 of file station_cmd.cpp.
References _settings_game, OrthogonalTileArea::Expand(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_industry_pool >::Get(), GetIndustryIndex(), IsTileType(), IsValidCargoID(), MP_INDUSTRY, Industry::neutral_station, Industry::produced, StationSettings::serve_neutral_industries, and GameSettings::station.
Referenced by DrawStationCoverageAreaText().
const DrawTileSprites * GetStationTileLayout | ( | StationType | st, |
uint8_t | gfx | ||
) |
Get station tile layout for a station type and its station gfx.
st | Station type to draw. |
gfx | StationGfx of tile to draw. |
Definition at line 3014 of file station_cmd.cpp.
Referenced by DrawStationTile().
bool HasStationInUse | ( | StationID | station, |
bool | include_company, | ||
CompanyID | company | ||
) |
Tests whether the company's vehicles have this station in orders.
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 2758 of file station_cmd.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_orderlist_pool >::Iterate(), and Vehicle::owner.
Referenced by CompanyStationsWindow::BuildStationsList(), and RemoveBuoy().
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.
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 4118 of file station_cmd.cpp.
References LinkGraph::AddNode(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_link_graph_pool >::CanAllocateItem(), Debug, SpecializedStation< Station, false >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_link_graph_pool >::Get(), Station::goods, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, LinkGraphSchedule::instance, GoodsEntry::link_graph, LinkGraph::Merge(), GoodsEntry::node, LinkGraphSchedule::Queue(), LinkGraph::Size(), and LinkGraphSchedule::Unqueue().
Referenced by Vehicle::BeginLoading(), IncreaseStats(), and LinkRefresher::RefreshStats().
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.
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 4170 of file station_cmd.cpp.
References Vehicle::cargo, Vehicle::cargo_type, EUM_INCREASE, IncreaseStats(), Vehicle::Next(), Vehicle::refit_cap, and VehicleCargoList::StoredCount().
Definition at line 4236 of file station_cmd.cpp.
void RemoveDockingTile | ( | TileIndex | t | ) |
Definition at line 2877 of file station_cmd.cpp.
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".
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 4000 of file station_cmd.cpp.
References GoodsEntry::cargo, Station::goods, Vehicle::Next(), and StationCargoList::Reroute().
Referenced by DeleteStaleLinks(), LinkGraphJob::~LinkGraphJob(), and Station::~Station().
void SetRailStationTileFlags | ( | TileIndex | tile, |
const StationSpec * | statspec | ||
) |
Set rail station tile flags for the given tile.
tile | Tile to set flags on. |
statspec | Statspec of the tile. |
Definition at line 1322 of file station_cmd.cpp.
References StationSpec::Blocked, GetStationGfx(), GetStationTileFlags(), HasFlag(), StationSpec::NoWires, StationSpec::Pylons, SetStationTileBlocked(), SetStationTileHavePylons(), and SetStationTileHaveWires().
Referenced by AfterLoadGame(), CmdBuildRailStation(), and CmdBuildRailWaypoint().
void ShowStationViewWindow | ( | StationID | station | ) |
Opens StationViewWindow for given station.
station | station which window should be opened |
Definition at line 2176 of file station_gui.cpp.
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.
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. |
Definition at line 3030 of file station_cmd.cpp.
References _settings_game, GameSettings::game_creation, GetSnowLine(), GetTropicZone(), GameCreationSettings::landscape, RTO_X, RTO_Y, TileInfo::tile, TILE_HEIGHT, TROPICZONE_DESERT, and TileInfo::z.
Referenced by DrawStationTile().
|
inline |
Calculates the maintenance cost of a number of station tiles.
num | Number of station tiles. |
Definition at line 60 of file station_func.h.
References IntSqrt().
Referenced by CompaniesGenStatistics(), CompanyInfrastructureWindow::DrawWidget(), CompanyInfrastructureWindow::GetTotalMaintenanceCost(), and CompanyInfrastructureWindow::UpdateWidgetSize().
void StationPickerDrawSprite | ( | int | x, |
int | y, | ||
StationType | st, | ||
RailType | railtype, | ||
RoadType | roadtype, | ||
int | image | ||
) |
Definition at line 3395 of file station_cmd.cpp.
void UpdateAirportsNoise | ( | ) |
Recalculate the noise generated by the airports of each town.
Definition at line 2502 of file station_cmd.cpp.
References AirportGetNearestTown(), AT_OILRIG, GetAirportNoiseLevelForDistance(), INVALID_TILE, SpecializedStation< Station, false >::Iterate(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::Iterate(), and Town::noise_reached.
Referenced by DoCreateTown(), and InitializeWindowsAndCaches().
void UpdateAllStationVirtCoords | ( | ) |
Update the virtual coords needed to draw the station sign for all stations.
Definition at line 476 of file station_cmd.cpp.
Referenced by CmdRenameTown(), and UpdateAllVirtCoords().
void UpdateStationAcceptance | ( | Station * | st, |
bool | show_msg | ||
) |
Update the acceptance for a station.
st | Station to update |
show_msg | controls whether to display a message that acceptance was changed. |
Definition at line 625 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 AfterLoadGame(), Station::AfterStationTileSetChange(), and StationHandleBigTick().
void UpdateStationDockingTiles | ( | Station * | st | ) |
Definition at line 4479 of file station_cmd.cpp.