OpenTTD Source 20250205-master-gfd85ab1e2c
StationSpec Struct Reference

Station specification. More...

#include <newgrf_station.h>

Inheritance diagram for StationSpec:
NewGRFSpecBase< StationClassID >

Public Types

enum class  TileFlag : uint8_t { Pylons = 0 , NoWires = 1 , Blocked = 2 }
 
using TileFlags = EnumBitSet< TileFlag, uint8_t >
 

Data Fields

GRFFilePropsBase< NUM_CARGO+3 > grf_prop
 Properties related the the grf file.
 
StringID name
 Name of this station.
 
uint8_t disallowed_platforms
 Bitmask of number of platforms available for the station.
 
uint8_t disallowed_lengths
 Bitmask of platform lengths available for the station.
 
std::vector< NewGRFSpriteLayoutrenderdata
 Number of tile layouts.
 
uint16_t cargo_threshold
 Cargo threshold for choosing between little and lots of cargo.
 
CargoTypes cargo_triggers
 Bitmask of cargo types which cause trigger re-randomizing.
 
StationCallbackMasks callback_mask
 Bitmask of station callbacks that have to be called.
 
StationSpecFlags flags
 Bitmask of flags, bit 0: use different sprite set; bit 1: divide cargo about by station size.
 
std::vector< TileFlagstileflags
 List of tile flags.
 
AnimationInfo animation
 
std::unordered_map< uint16_t, std::vector< uint8_t > > layouts
 Custom platform layouts, keyed by platform and length combined.
 
- Data Fields inherited from NewGRFSpecBase< StationClassID >
StationClassID class_index
 Class index of this spec, invalid until class is allocated.
 
uint16_t index
 Index within class of this spec, invalid until inserted into class.
 

Detailed Description

Station specification.

Definition at line 116 of file newgrf_station.h.

Member Typedef Documentation

◆ TileFlags

Definition at line 169 of file newgrf_station.h.

Member Enumeration Documentation

◆ TileFlag

enum class StationSpec::TileFlag : uint8_t
strong
Enumerator
Pylons 

Tile should contain catenary pylons.

NoWires 

Tile should NOT contain catenary wires.

Blocked 

Tile is blocked to vehicles.

Definition at line 164 of file newgrf_station.h.

Constructor & Destructor Documentation

◆ StationSpec()

StationSpec::StationSpec ( )
inline

Definition at line 117 of file newgrf_station.h.

Field Documentation

◆ animation

AnimationInfo StationSpec::animation

Definition at line 172 of file newgrf_station.h.

◆ callback_mask

StationCallbackMasks StationSpec::callback_mask

Bitmask of station callbacks that have to be called.

Definition at line 160 of file newgrf_station.h.

Referenced by CheckFlatLandRailStation(), CmdBuildRailStation(), DrawStationTile(), and IsStationAvailable().

◆ cargo_threshold

uint16_t StationSpec::cargo_threshold

Cargo threshold for choosing between little and lots of cargo.

Note
little/lots are equivalent to the moving/loading states for vehicles

Definition at line 156 of file newgrf_station.h.

Referenced by StationResolverObject::ResolveReal().

◆ cargo_triggers

CargoTypes StationSpec::cargo_triggers

Bitmask of cargo types which cause trigger re-randomizing.

Definition at line 158 of file newgrf_station.h.

Referenced by TriggerStationRandomisation().

◆ disallowed_lengths

uint8_t StationSpec::disallowed_lengths

Bitmask of platform lengths available for the station.

0..6 correspond to 1..7, while bit 7 corresponds to >7 tiles long.

Definition at line 140 of file newgrf_station.h.

Referenced by BuildRailStationWindow::CheckSelectedSize(), CmdBuildRailStation(), BuildRailStationWindow::OnClick(), and BuildRailStationWindow::OnPaint().

◆ disallowed_platforms

uint8_t StationSpec::disallowed_platforms

Bitmask of number of platforms available for the station.

0..6 correspond to 1..7, while bit 7 corresponds to >7 platforms.

Definition at line 135 of file newgrf_station.h.

Referenced by BuildRailStationWindow::CheckSelectedSize(), CmdBuildRailStation(), BuildRailStationWindow::OnClick(), and BuildRailStationWindow::OnPaint().

◆ flags

StationSpecFlags StationSpec::flags

Bitmask of flags, bit 0: use different sprite set; bit 1: divide cargo about by station size.

Definition at line 162 of file newgrf_station.h.

Referenced by DrawStationTile(), and StationResolverObject::ResolveReal().

◆ grf_prop

GRFFilePropsBase<NUM_CARGO + 3> StationSpec::grf_prop

Properties related the the grf file.

NUM_CARGO real cargo plus three pseudo cargo sprite groups. Used for obtaining the sprite offset of custom sprites, and for evaluating callbacks.

Definition at line 128 of file newgrf_station.h.

Referenced by AllocateSpecToStation(), CmdBuildRailStation(), StationResolverObject::GetDebugID(), StationScopeResolver::GetVariable(), IsStationAvailable(), MoveWaypointsToBaseStations(), PerformStationTileSlopeCheck(), and StationResolverObject::StationResolverObject().

◆ layouts

std::unordered_map<uint16_t, std::vector<uint8_t> > StationSpec::layouts

Custom platform layouts, keyed by platform and length combined.

Definition at line 175 of file newgrf_station.h.

Referenced by GetStationLayout(), and StationChangeInfo().

◆ name

StringID StationSpec::name

Name of this station.

Definition at line 129 of file newgrf_station.h.

◆ renderdata

std::vector<NewGRFSpriteLayout> StationSpec::renderdata

Number of tile layouts.

A minimum of 8 is required is required for stations. 0-1 = plain platform 2-3 = platform with building 4-5 = platform with roof, left side 6-7 = platform with roof, right side Array of tile layouts.

Definition at line 150 of file newgrf_station.h.

Referenced by DrawStationTile(), and StationChangeInfo().

◆ tileflags

std::vector<TileFlags> StationSpec::tileflags

List of tile flags.

Definition at line 170 of file newgrf_station.h.

Referenced by GetStationTileFlags().


The documentation for this struct was generated from the following file: