OpenTTD Source: src/signal_func.h File Reference

OpenTTD Source 15.0-beta1

Enumerations | Functions
signal_func.h File Reference

Functions related to signals. More...

`#include "track_type.h"`
`#include "tile_type.h"`
`#include "direction_type.h"`
`#include "company_type.h"`

Go to the source code of this file.

## Enumerations
enum | SigSegState { SIGSEG_FREE , SIGSEG_FULL , SIGSEG_PBS }
| State of the signal segment. More...

## Functions
uint8_t | SignalAlongTrackdir (Trackdir trackdir)
| Maps a trackdir to the bit that stores its status in the map arrays, in the direction along with the trackdir.
uint8_t | SignalAgainstTrackdir (Trackdir trackdir)
| Maps a trackdir to the bit that stores its status in the map arrays, in the direction against the trackdir.
uint8_t | SignalOnTrack (Track track)
| Maps a Track to the bits that store the status of the two signals that can be present on the given track.
SigSegState | UpdateSignalsOnSegment (TileIndex tile, DiagDirection side, Owner owner)
| Update signals, starting at one side of a tile Will check tile next to this at opposite side too.
void | SetSignalsOnBothDir (TileIndex tile, Track track, Owner owner)
| Update signals at segments that are at both ends of given (existent or non-existent) track.
void | AddTrackToSignalBuffer (TileIndex tile, Track track, Owner owner)
| Add track to signal update buffer.
void | AddSideToSignalBuffer (TileIndex tile, DiagDirection side, Owner owner)
| Add side of tile to signal update buffer.
void | UpdateSignalsInBuffer ()
| Update signals in buffer Called from 'outside'.

## Detailed Description

Functions related to signals.

Definition in file signal_func.h.

## Enumeration Type Documentation

## ◆ SigSegState

enum SigSegState

State of the signal segment.

Enumerator
SIGSEG_FREE | Free and has no pre-signal exits or at least one green exit.
SIGSEG_FULL | Occupied by a train.
SIGSEG_PBS | Segment is a PBS segment.

Definition at line 49 of file signal_func.h.

## Function Documentation

## ◆ AddSideToSignalBuffer()

void AddSideToSignalBuffer | ( | TileIndex | tile,
|  | DiagDirection | side,
|  | Owner | owner
| ) |  |

Add side of tile to signal update buffer.

Parameters

  tile | tile where we start
  side | side of tile
  owner | owner whose signals we will update

Definition at line 624 of file signal.cpp.

References _globset, _last_owner, INVALID_OWNER, SIG_GLOB_UPDATE, and UpdateSignalsInBuffer().

Referenced by CmdBuildBridge(), CmdBuildTrainDepot(), CmdBuildTunnel(), DoClearBridge(), DoClearTunnel(), and FreeTrainTrackReservation().

## ◆ AddTrackToSignalBuffer()

void AddTrackToSignalBuffer | ( | TileIndex | tile,
|  | Track | track,
|  | Owner | owner
| ) |  |

Add track to signal update buffer.

Parameters

  tile | tile where we start
  track | track at which ends we will update signals
  owner | owner whose signals we will update

Definition at line 592 of file signal.cpp.

References _globset, _last_owner, DIAGDIR_NE, DIAGDIR_NW, DIAGDIR_SE, DIAGDIR_SW, INVALID_OWNER, SIG_GLOB_UPDATE, and UpdateSignalsInBuffer().

Referenced by ChangeOwnershipOfCompanyItems(), CmdBuildRailStation(), CmdBuildSingleRail(), CmdBuildSingleSignal(), CmdRemoveSingleRail(), CmdRemoveSingleSignal(), RemoveFromRailBaseStation(), and SetSignalsOnBothDir().

## ◆ SetSignalsOnBothDir()

void SetSignalsOnBothDir | ( | TileIndex | tile,
|  | Track | track,
|  | Owner | owner
| ) |  |

Update signals at segments that are at both ends of given (existent or non-existent) track.

See also
  UpdateSignalsInBuffer()

Parameters

  tile | tile where we start
  track | track at which ends we will update signals
  owner | owner whose signals we will update

Definition at line 668 of file signal.cpp.

References _globset, AddTrackToSignalBuffer(), and UpdateSignalsInBuffer().

Referenced by DeleteLastWagon().

## ◆ SignalAgainstTrackdir()

uint8_t SignalAgainstTrackdir | ( | Trackdir | trackdir | ) |
| inline

Maps a trackdir to the bit that stores its status in the map arrays, in the direction against the trackdir.

Definition at line 32 of file signal_func.h.

References TRACKDIR_END.

Referenced by CmdSignalTrackHelper().

## ◆ SignalAlongTrackdir()

uint8_t SignalAlongTrackdir | ( | Trackdir | trackdir | ) |
| inline

Maps a trackdir to the bit that stores its status in the map arrays, in the direction along with the trackdir.

Definition at line 22 of file signal_func.h.

References TRACKDIR_END.

Referenced by CmdSignalTrackHelper(), GetSignalStateByTrackdir(), HasSignalOnTrackdir(), and SetSignalStateByTrackdir().

## ◆ SignalOnTrack()

uint8_t SignalOnTrack | ( | Track | track | ) |
| inline

Maps a Track to the bits that store the status of the two signals that can be present on the given track.

Definition at line 42 of file signal_func.h.

References TRACK_END.

Referenced by CmdBuildSingleSignal(), CmdRemoveSingleSignal(), CmdSignalTrackHelper(), and HasSignalOnTrack().

## ◆ UpdateSignalsInBuffer()

void UpdateSignalsInBuffer | ( |  | ) |

Update signals in buffer Called from 'outside'.

Definition at line 576 of file signal.cpp.

References _globset, _last_owner, INVALID_OWNER, and UpdateSignalsInBuffer().

Referenced by AddSideToSignalBuffer(), AddTrackToSignalBuffer(), ChangeOwnershipOfCompanyItems(), DoFloodTile(), FreeTrainTrackReservation(), CommandHelperBase::InternalExecuteProcessResult(), SetSignalsOnBothDir(), UpdateSignalsInBuffer(), and UpdateSignalsOnSegment().

## ◆ UpdateSignalsOnSegment()

SigSegState UpdateSignalsOnSegment | ( | TileIndex | tile,
|  | DiagDirection | side,
|  | Owner | owner
| ) |  |

Update signals, starting at one side of a tile Will check tile next to this at opposite side too.

See also
  UpdateSignalsInBuffer()

Parameters

  tile | tile where we start
  side | side of tile
  owner | owner whose signals we will update

Returns
  the state of the signal segment

Definition at line 650 of file signal.cpp.

References _globset, and UpdateSignalsInBuffer().

Referenced by CheckTrainStayInDepot(), DeleteLastWagon(), ReverseTrainDirection(), TrainController(), and VehicleEnterDepot().