OpenTTD Source: StationScopeResolver Struct Reference

OpenTTD Source 15.0-RC2

Data Structures | Public Member Functions | Data Fields
StationScopeResolver Struct Reference

Scope resolver for stations. More...

`#include <newgrf_station.h>`

Inheritance diagram for StationScopeResolver:

## Data Structures
struct | Cache
| Station variable cache This caches 'expensive' station variable lookups which iterate over several tiles that may be called multiple times per Resolve(). More...

## Public Member Functions
| StationScopeResolver (ResolverObject &ro, const StationSpec *statspec, BaseStation *st, TileIndex tile)
| Constructor for station scopes.
uint32_t | GetRandomBits () const override
| Get a few random bits.
uint32_t | GetRandomTriggers () const override
| Get the triggers.
uint32_t | GetVariable (uint8_t variable, uint32_t parameter, bool &available) const override
| Get a variable value.
Public Member Functions inherited from ScopeResolver
| ScopeResolver (ResolverObject &ro)
virtual void | StorePSA (uint reg, int32_t value)
| Store a value into the persistent storage area (PSA).

## Data Fields
TileIndex | tile
| Tile of the station.
struct BaseStation * | st
| Instance of the station.
const struct StationSpec * | statspec
| Station (type) specification.
CargoType | cargo_type
| Type of cargo of the station.
Axis | axis
| Station axis, used only for the slope check callback.
Cache | cache
Data Fields inherited from ScopeResolver
ResolverObject & | ro
| Surrounding resolver object.

## Detailed Description

Scope resolver for stations.

Definition at line 27 of file newgrf_station.h.

## Constructor & Destructor Documentation

## ◆ StationScopeResolver()

StationScopeResolver::StationScopeResolver | ( | ResolverObject & | ro,
|  | const StationSpec * | statspec,
|  | BaseStation * | st,
|  | TileIndex | tile
| ) |  |
| inline

Constructor for station scopes.

Parameters

  ro | Surrounding resolver.
  statspec | Station (type) specification.
  st | Instance of the station.
  tile | Tile of the station.

Definition at line 56 of file newgrf_station.h.

## Member Function Documentation

## ◆ GetRandomBits()

uint32_t StationScopeResolver::GetRandomBits | ( |  | ) | const
| overridevirtual

Get a few random bits.

Default implementation has no random bits.

Returns
  Random bits.

Reimplemented from ScopeResolver.

Definition at line 239 of file newgrf_station.cpp.

References GetStationTileRandomBits(), INVALID_TILE, BaseStation::random_bits, and st.

## ◆ GetRandomTriggers()

uint32_t StationScopeResolver::GetRandomTriggers | ( |  | ) | const
| overridevirtual

Get the triggers.

Base class returns `0` to prevent trouble.

Returns
  The triggers.

Reimplemented from ScopeResolver.

Definition at line 245 of file newgrf_station.cpp.

References BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::base(), st, and BaseStation::waiting_random_triggers.

## ◆ GetVariable()

uint32_t StationScopeResolver::GetVariable | ( | uint8_t | variable,
|  | uint32_t | parameter,
|  | bool & | available
| ) |  | const
| overridevirtual

Get a variable value.

Default implementation has no available variables.

Parameters

  | variable | Variable to read
  | parameter | Parameter for 60+x variables
  [out] | available | Set to false, in case the variable does not exist.

Returns
  Value

Reimplemented from ScopeResolver.

Definition at line 271 of file newgrf_station.cpp.

References _current_company, axis, AXIS_Y, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::base(), BaseStation::build_date, TimerGameCalendar::date, TimerGameConst< struct Calendar >::DAYS_TILL_ORIGINAL_BASE_YEAR, BaseStation::facilities, GB(), GetAnimationFrame(), GetBadgeVariableResult(), BaseStation::GetByTile(), GetCompanyInfo(), GetCustomStationSpecIndex(), GetNearbyTile(), GetNearbyTileInformation(), BaseStation::GetNewGRFVariable(), GetRailStationAxis(), GetRailType(), GetReverseRailTypeTranslation(), GetStationGfx(), GetTerrainType(), GetTileSlope(), StationSpec::grf_prop, GRFFilePropsBase::grffile, ResolverObject::grffile, HasBit(), HasStationReservation(), HasStationTileRail(), INVALID_AXIS, INVALID_TILE, IsCustomStationSpecIndex(), BaseStation::owner, ScopeResolver::ro, SLOPE_EW, BaseStation::speclist, st, statspec, BaseStation::string_id, tile, and BaseStation::TileBelongsToRailStation().

## Field Documentation

## ◆ axis

Axis StationScopeResolver::axis

Station axis, used only for the slope check callback.

Definition at line 32 of file newgrf_station.h.

Referenced by GetVariable().

## ◆ cache

Cache StationScopeResolver::cache
| mutable

Definition at line 47 of file newgrf_station.h.

## ◆ cargo_type

CargoType StationScopeResolver::cargo_type

Type of cargo of the station.

Definition at line 31 of file newgrf_station.h.

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

## ◆ st

struct BaseStation* StationScopeResolver::st

Instance of the station.

Definition at line 29 of file newgrf_station.h.

Referenced by GetRandomBits(), GetRandomTriggers(), StationResolverObject::GetTown(), GetVariable(), StationResolverObject::ResolveReal(), and StationResolverObject::StationResolverObject().

## ◆ statspec

const struct StationSpec* StationScopeResolver::statspec

Station (type) specification.

Definition at line 30 of file newgrf_station.h.

Referenced by StationResolverObject::GetDebugID(), GetVariable(), StationResolverObject::ResolveReal(), and StationResolverObject::StationResolverObject().

## ◆ tile

TileIndex StationScopeResolver::tile

Tile of the station.

Definition at line 28 of file newgrf_station.h.

Referenced by StationResolverObject::GetTown(), and GetVariable().

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

- src/newgrf_station.h
- src/newgrf_station.cpp