| OpenTTD
    | 
Header file for NewGRF stations. More...
#include "newgrf_animation_type.h"#include "newgrf_callbacks.h"#include "newgrf_class.h"#include "newgrf_commons.h"#include "cargo_type.h"#include "station_type.h"#include "rail_type.h"#include "newgrf_spritegroup.h"#include "newgrf_town.h"Go to the source code of this file.
| Data Structures | |
| struct | StationScopeResolver | 
| Scope resolver for stations.  More... | |
| struct | StationResolverObject | 
| Station resolver.  More... | |
| struct | EnumPropsT< StationClassID > | 
| struct | StationSpec | 
| Station specification.  More... | |
| Typedefs | |
| typedef SimpleTinyEnumT < StationClassID, byte > | StationClassIDByte | 
| typedef byte * | StationLayout | 
| typedef NewGRFClass < StationSpec, StationClassID, STAT_CLASS_MAX > | StationClass | 
| Struct containing information relating to station classes. | |
| Enumerations | |
| enum | StationClassID { STAT_CLASS_BEGIN = 0, STAT_CLASS_DFLT = 0, STAT_CLASS_WAYP, STAT_CLASS_MAX = 256 } | 
| enum | StationSpecFlags { SSF_SEPARATE_GROUND, SSF_DIV_BY_STATION_SIZE, SSF_CB141_RANDOM_BITS, SSF_CUSTOM_FOUNDATIONS, SSF_EXTENDED_FOUNDATIONS } | 
| Allow incrementing of StationClassID variables.  More... | |
| enum | StationRandomTrigger { SRT_NEW_CARGO, SRT_CARGO_TAKEN, SRT_TRAIN_ARRIVES, SRT_TRAIN_DEPARTS, SRT_TRAIN_LOADS, SRT_PATH_RESERVATION } | 
| Randomisation triggers for stations.  More... | |
| Functions | |
| const StationSpec * | GetStationSpec (TileIndex t) | 
| uint32 | GetPlatformInfo (Axis axis, byte tile, int platforms, int length, int x, int y, bool centred) | 
| Evaluate a tile's position within a station, and return the result in a bit-stuffed format. | |
| SpriteID | GetCustomStationRelocation (const StationSpec *statspec, BaseStation *st, TileIndex tile, uint32 var10=0) | 
| Resolve sprites for drawing a station tile. | |
| SpriteID | GetCustomStationFoundationRelocation (const StationSpec *statspec, BaseStation *st, TileIndex tile, uint layout, uint edge_info) | 
| Resolve the sprites for custom station foundations. | |
| uint16 | GetStationCallback (CallbackID callback, uint32 param1, uint32 param2, const StationSpec *statspec, BaseStation *st, TileIndex tile) | 
| CommandCost | PerformStationTileSlopeCheck (TileIndex north_tile, TileIndex cur_tile, const StationSpec *statspec, Axis axis, byte plat_len, byte numtracks) | 
| Check the slope of a tile of a new station. | |
| int | AllocateSpecToStation (const StationSpec *statspec, BaseStation *st, bool exec) | 
| Allocate a StationSpec to a Station. | |
| void | DeallocateSpecFromStation (BaseStation *st, byte specindex) | 
| Deallocate a StationSpec from a Station. | |
| bool | DrawStationTile (int x, int y, RailType railtype, Axis axis, StationClassID sclass, uint station) | 
| Draw representation of a station tile for GUI purposes. | |
| void | AnimateStationTile (TileIndex tile) | 
| void | TriggerStationAnimation (BaseStation *st, TileIndex tile, StationAnimationTrigger trigger, CargoID cargo_type=CT_INVALID) | 
| void | TriggerStationRandomisation (Station *st, TileIndex tile, StationRandomTrigger trigger, CargoID cargo_type=CT_INVALID) | 
| Trigger station randomisation. | |
| void | StationUpdateCachedTriggers (BaseStation *st) | 
| Update the cached animation trigger bitmask for a station. | |
Header file for NewGRF stations.
Definition in file newgrf_station.h.
Struct containing information relating to station classes.
Definition at line 166 of file newgrf_station.h.
| enum StationClassID | 
| STAT_CLASS_BEGIN | the lowest valid value | 
| STAT_CLASS_DFLT | Default station class. | 
| STAT_CLASS_WAYP | Waypoint class. | 
| STAT_CLASS_MAX | Maximum number of classes. | 
Definition at line 73 of file newgrf_station.h.
| enum StationRandomTrigger | 
Randomisation triggers for stations.
Definition at line 94 of file newgrf_station.h.
| enum StationSpecFlags | 
Allow incrementing of StationClassID variables.
Definition at line 85 of file newgrf_station.h.
| int AllocateSpecToStation | ( | const StationSpec * | statspec, | 
| BaseStation * | st, | ||
| bool | exec | ||
| ) | 
Allocate a StationSpec to a Station.
This is called once per build operation.
| statspec | StationSpec to allocate. | 
| st | Station to allocate it to. | 
| exec | Whether to actually allocate the spec. | 
Definition at line 687 of file newgrf_station.cpp.
References StationSpec::grf_prop, GRFFilePropsBase< Tcnt >::grffile, StationSpecList::grfid, GRFFilePropsBase< Tcnt >::local_id, StationSpecList::localidx, BaseStation::num_specs, NUM_STATIONSSPECS_PER_STATION, ReallocT(), BaseStation::speclist, and StationUpdateCachedTriggers().
Referenced by CmdBuildRailStation(), CmdBuildRailWaypoint(), and MoveWaypointsToBaseStations().
| void DeallocateSpecFromStation | ( | BaseStation * | st, | 
| byte | specindex | ||
| ) | 
Deallocate a StationSpec from a Station.
Called when removing a single station tile.
| st | Station to work with. | 
| specindex | Index of the custom station within the Station's spec list. | 
Definition at line 740 of file newgrf_station.cpp.
References BaseStation::cached_anim_triggers, BaseStation::cached_cargo_triggers, free(), GetCustomStationSpecIndex(), StationSpecList::grfid, INVALID_TILE, StationSpecList::localidx, BaseStation::num_specs, ReallocT(), BaseStation::speclist, StationUpdateCachedTriggers(), TILE_AREA_LOOP, and BaseStation::TileBelongsToRailStation().
Referenced by CmdBuildRailStation(), CmdBuildRailWaypoint(), and RemoveFromRailBaseStation().
| bool DrawStationTile | ( | int | x, | 
| int | y, | ||
| RailType | railtype, | ||
| Axis | axis, | ||
| StationClassID | sclass, | ||
| uint | station | ||
| ) | 
Draw representation of a station tile for GUI purposes.
| x | Position x of image. | 
| y | Position y of image. | 
| axis | Axis. | 
| railtype | Rail type. | 
| sclass,station | Type of station. | 
| station | station ID | 
Definition at line 787 of file newgrf_station.cpp.
References _local_company, CALLBACK_FAILED, StationSpec::callback_mask, CBID_STATION_SPRITE_LAYOUT, CBM_STATION_SPRITE_LAYOUT, DrawRailTileSeqInGUI(), DrawSprite(), RailtypeInfo::fallback_railtype, StationSpec::flags, FOR_EACH_SET_BIT, NewGRFClass< Tspec, Tid, Tmax >::Get(), GetCustomRailSprite(), GetCustomStationRelocation(), NewGRFSpriteLayout::GetLayout(), GetRailTypeInfo(), RailtypeInfo::GetRailtypeSpriteOffset(), DrawTileSprites::ground, GroundSpritePaletteTransform(), HasBit(), INVALID_TILE, NewGRFSpriteLayout::NeedsPreprocessing(), PalSpriteID::pal, NewGRFSpriteLayout::PrepareLayout(), NewGRFSpriteLayout::ProcessRegisters(), StationSpec::renderdata, RTSG_GROUND, DrawTileSprites::seq, SplitGroundSpriteForOverlay(), PalSpriteID::sprite, SPRITE_MODIFIER_CUSTOM_SPRITE, SSF_SEPARATE_GROUND, and StationSpec::tiles.
Referenced by DrawWaypointSprite(), and BuildRailStationWindow::DrawWidget().
| SpriteID GetCustomStationFoundationRelocation | ( | const StationSpec * | statspec, | 
| BaseStation * | st, | ||
| TileIndex | tile, | ||
| uint | layout, | ||
| uint | edge_info | ||
| ) | 
Resolve the sprites for custom station foundations.
| statspec | Station spec | 
| st | Station | 
| tile | Station tile being drawn | 
| layout | Spritelayout as returned by previous callback | 
| edge_info | Information about northern tile edges; whether they need foundations or merge into adjacent tile's foundations. | 
Definition at line 630 of file newgrf_station.cpp.
References CBID_NO_CALLBACK, GetRegister(), and SpriteGroup::Resolve().
| SpriteID GetCustomStationRelocation | ( | const StationSpec * | statspec, | 
| BaseStation * | st, | ||
| TileIndex | tile, | ||
| uint32 | var10 | ||
| ) | 
Resolve sprites for drawing a station tile.
| statspec | Station spec | 
| st | Station (NULL in GUI) | 
| tile | Station tile being drawn (INVALID_TILE in GUI) | 
| var10 | Value to put in variable 10; normally 0; 1 when resolving the groundsprite and SSF_SEPARATE_GROUND is set. | 
Definition at line 613 of file newgrf_station.cpp.
References CBID_NO_CALLBACK, and SpriteGroup::Resolve().
Referenced by DrawStationTile().
| uint32 GetPlatformInfo | ( | Axis | axis, | 
| byte | tile, | ||
| int | platforms, | ||
| int | length, | ||
| int | x, | ||
| int | y, | ||
| bool | centred | ||
| ) | 
Evaluate a tile's position within a station, and return the result in a bit-stuffed format.
if not centered: .TNLcCpP, if centered: .TNL..CP
if centered, C/P start from the centre and c/p are not available.
Definition at line 107 of file newgrf_station.cpp.
References AXIS_X, Clamp(), min(), SB(), and Swap().
Referenced by CmdBuildRailStation().
| CommandCost PerformStationTileSlopeCheck | ( | TileIndex | north_tile, | 
| TileIndex | cur_tile, | ||
| const StationSpec * | statspec, | ||
| Axis | axis, | ||
| byte | plat_len, | ||
| byte | numtracks | ||
| ) | 
Check the slope of a tile of a new station.
| north_tile | Norther tile of the station rect. | 
| cur_tile | Tile to check. | 
| statspec | Station spec. | 
| axis | Axis of the new station. | 
| plat_len | Platform length. | 
| numtracks | Number of platforms. | 
Definition at line 659 of file newgrf_station.cpp.
References AXIS_Y, CALLBACK_FAILED, CBID_STATION_LAND_SLOPE_CHECK, GetErrorMessageFromLocationCallbackResult(), GetTileSlope(), StationSpec::grf_prop, GRFFilePropsBase< Tcnt >::grffile, HasBit(), SLOPE_EW, TileX(), TileY(), and ToggleBit().
Referenced by CheckFlatLandRailStation().
| void StationUpdateCachedTriggers | ( | BaseStation * | st | ) | 
Update the cached animation trigger bitmask for a station.
| st | Station to update. | 
Definition at line 1050 of file newgrf_station.cpp.
References BaseStation::cached_anim_triggers, BaseStation::cached_cargo_triggers, StationSpec::cargo_triggers, BaseStation::num_specs, BaseStation::speclist, and AnimationInfo::triggers.
Referenced by AllocateSpecToStation(), and DeallocateSpecFromStation().
| void TriggerStationRandomisation | ( | Station * | st, | 
| TileIndex | tile, | ||
| StationRandomTrigger | trigger, | ||
| CargoID | cargo_type | ||
| ) | 
Trigger station randomisation.
| st | station being triggered | 
| tile | specific tile of platform to trigger | 
| trigger | trigger type | 
| cargo_type | cargo type causing trigger | 
Definition at line 972 of file newgrf_station.cpp.
References BaseStation::cached_cargo_triggers, GoodsEntry::cargo, StationSpec::cargo_triggers, CBID_RANDOM_TRIGGER, CT_INVALID, SpecializedStation< Station, false >::GetByTile(), GetStationTileRandomBits(), Station::goods, HasBit(), MarkTileDirtyByTile(), NUM_CARGO, BaseStation::random_bits, SpriteGroup::Resolve(), SetBit(), SetStationTileRandomBits(), SRT_CARGO_TAKEN, TILE_AREA_LOOP, Station::TileBelongsToRailStation(), and StationCargoList::TotalCount().
Referenced by Vehicle::LeaveStation(), LoadUnloadVehicle(), CYapfReserveTrack< Types >::ReserveRailStationPlatform(), TrainEnterStation(), and TryReserveRailTrack().
 1.8.1.2
 1.8.1.2