Functions

station_func.h File Reference

Functions related to stations. More...

#include "sprite.h"
#include "rail_type.h"
#include "road_type.h"
#include "economy_func.h"
#include "rail.h"

Go to the source code of this file.

Functions

void ModifyStationRatingAround (TileIndex tile, Owner owner, int amount, uint radius)
void FindStationsAroundTiles (const TileArea &location, StationList *stations)
 Find all stations around a rectangular producer (industry, house, headquarter, ...).
void ShowStationViewWindow (StationID station)
 Opens StationViewWindow for given station.
void UpdateAllStationVirtCoords ()
 Update the virtual coords needed to draw the station sign for all stations.
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, uint32 *always_accepted=NULL)
 Get the acceptance of cargoes around the tile in 1/8.
void UpdateStationAcceptance (Station *st, bool show_msg)
 Update the acceptance for a station.
const DrawTileSpritesGetStationTileLayout (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.
void DeleteOilRig (TileIndex t)
bool IsStationTileBlocked (TileIndex tile)
 Check whether a rail station tile is NOT traversable.
bool CanStationTileHavePylons (TileIndex tile)
 Check if a rail station tile shall have pylons when electrified.
bool CanStationTileHaveWires (TileIndex tile)
 Check if a rail station tile shall have wires when electrified.
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.
static Money StationMaintenanceCost (uint32 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.

Detailed Description

Functions related to stations.

Definition in file station_func.h.


Function Documentation

Money AirportMaintenanceCost ( Owner  owner  ) 
bool CanStationTileHavePylons ( TileIndex  tile  ) 

Check if a rail station tile shall have pylons when electrified.

Parameters:
tile Tile to test.
Returns:
Tile shall have pylons.
Note:
This could be cached (during build) in the map array to save on all the dereferencing.

Definition at line 895 of file newgrf_station.cpp.

References GetStationGfx(), HasBit(), and StationSpec::pylons.

Referenced by DrawCatenaryRailway().

bool CanStationTileHaveWires ( TileIndex  tile  ) 

Check if a rail station tile shall have wires when electrified.

Parameters:
tile Tile to test.
Returns:
Tile shall have wires.
Note:
This could be cached (during build) in the map array to save on all the dereferencing.

Definition at line 909 of file newgrf_station.cpp.

References GetStationGfx(), HasBit(), and StationSpec::wires.

Referenced by DrawCatenaryRailway(), and MaskWireBits().

void FindStationsAroundTiles ( const TileArea location,
StationList stations 
)

Find all stations around a rectangular producer (industry, house, headquarter, ...).

Parameters:
location The location/area of the producer
stations The list to store the stations in

Definition at line 3484 of file station_cmd.cpp.

References _settings_game, GameSettings::construction, ConstructionSettings::freeform_edges, SpecializedStation< Station, false >::GetByTile(), Station::GetCatchmentRadius(), TileArea::h, SmallVector< T, S >::Include(), IsTileType(), MapSizeX(), MapSizeY(), MAX_CATCHMENT, StationSettings::modified_catchment, MP_STATION, GameSettings::station, TileArea::tile, TileX(), TileXY(), TileY(), and TileArea::w.

Referenced by StationFinder::GetStations(), and WhoCanServiceIndustry().

CargoArray GetAcceptanceAroundTiles ( TileIndex  tile,
int  w,
int  h,
int  rad,
uint32 *  always_accepted 
)

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

Parameters:
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 NULL

Definition at line 508 of file station_cmd.cpp.

References MapSizeX(), MapSizeY(), max(), min(), TileX(), TileXY(), and TileY().

Referenced by DrawStationCoverageAreaText(), and UpdateStationAcceptance().

CargoArray GetProductionAroundTiles ( TileIndex  tile,
int  w,
int  h,
int  rad 
)

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

Parameters:
tile Northtile 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 455 of file station_cmd.cpp.

References CT_INVALID, TileArea::Intersects(), lengthof, Industry::location, MapSizeX(), MapSizeY(), max(), min(), Industry::produced_cargo, TILE_AREA_LOOP, TileX(), TileXY(), and TileY().

Referenced by DrawStationCoverageAreaText().

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 2406 of file station_cmd.cpp.

References FOR_ALL_VEHICLES, Order::GetDestination(), Order::IsType(), and Vehicle::owner.

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

bool IsStationTileBlocked ( TileIndex  tile  ) 

Check whether a rail station tile is NOT traversable.

Parameters:
tile Tile to test.
Returns:
Station tile is blocked.
Note:
This could be cached (during build) in the map array to save on all the dereferencing.

Definition at line 882 of file newgrf_station.cpp.

References StationSpec::blocked, GetStationGfx(), and HasBit().

Referenced by AfterLoadCompanyStats(), AfterLoadGame(), CmdBuildRailStation(), CmdConvertRail(), ExploreSegment(), IsCompatibleTrainStationTile(), RemoveFromRailBaseStation(), and RemoveRailStation().

void ShowStationViewWindow ( StationID  station  ) 

Opens StationViewWindow for given station.

Parameters:
station station which window should be opened

Definition at line 1185 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.

Parameters:
ti Positional info for the tile to decide snowyness etc. May be NULL.
[in,out] ground Groundsprite to draw.
[out] overlay_offset Overlay to draw.
Returns:
true if overlay can be drawn.

Definition at line 2602 of file station_cmd.cpp.

References _settings_game, GameSettings::game_creation, GetSnowLine(), GetTropicZone(), GameCreationSettings::landscape, TileInfo::tile, TILE_HEIGHT, and TileInfo::z.

Referenced by DrawStationTile().

static Money StationMaintenanceCost ( uint32  num  )  [inline, static]

Calculates the maintenance cost of a number of station tiles.

Parameters:
num Number of station tiles.
Returns:
Total cost.

Definition at line 55 of file station_func.h.

References IntSqrt().

Referenced by CompaniesGenStatistics(), CompanyInfrastructureWindow::DrawWidget(), CompanyInfrastructureWindow::GetTotalMaintenanceCost(), and CompanyInfrastructureWindow::UpdateWidgetSize().

void UpdateAllStationVirtCoords (  ) 

Update the virtual coords needed to draw the station sign for all stations.

Definition at line 410 of file station_cmd.cpp.

References BaseStation::UpdateVirtCoord().

Referenced by CmdRenameTown(), and UpdateAllVirtCoords().

void UpdateStationAcceptance ( Station st,
bool  show_msg 
)