mirror of https://github.com/OpenTTD/OpenTTD
(svn r2453) * CodeChange: Declared the lookup arrays in rail.h as extern, so the linker will complain if they are not defined (ie when rail.c is not included).
parent
8c6fa13faa
commit
3c133f1f53
26
rail.h
26
rail.h
|
@ -153,21 +153,21 @@ static inline bool IsValidTrackdir(Trackdir trackdir) { return trackdir < TRACKD
|
|||
* Maps a trackdir to the bit that stores its status in the map arrays, in the
|
||||
* direction along with the trackdir.
|
||||
*/
|
||||
const byte _signal_along_trackdir[TRACKDIR_END];
|
||||
extern const byte _signal_along_trackdir[TRACKDIR_END];
|
||||
static inline byte SignalAlongTrackdir(Trackdir trackdir) {return _signal_along_trackdir[trackdir];}
|
||||
|
||||
/**
|
||||
* Maps a trackdir to the bit that stores its status in the map arrays, in the
|
||||
* direction against the trackdir.
|
||||
*/
|
||||
const byte _signal_against_trackdir[TRACKDIR_END];
|
||||
extern const byte _signal_against_trackdir[TRACKDIR_END];
|
||||
static inline byte SignalAgainstTrackdir(Trackdir trackdir) { return _signal_against_trackdir[trackdir]; }
|
||||
|
||||
/**
|
||||
* Maps a Track to the bits that store the status of the two signals that can
|
||||
* be present on the given track.
|
||||
*/
|
||||
const byte _signal_on_track[TRACK_END];
|
||||
extern const byte _signal_on_track[TRACK_END];
|
||||
static inline byte SignalOnTrack(Track track) { return _signal_on_track[track]; }
|
||||
|
||||
/*
|
||||
|
@ -247,7 +247,7 @@ static inline bool HasTrack(TileIndex tile, Track track)
|
|||
/**
|
||||
* Maps a trackdir to the reverse trackdir.
|
||||
*/
|
||||
const Trackdir _reverse_trackdir[TRACKDIR_END];
|
||||
extern const Trackdir _reverse_trackdir[TRACKDIR_END];
|
||||
static inline Trackdir ReverseTrackdir(Trackdir trackdir) { return _reverse_trackdir[trackdir]; }
|
||||
|
||||
/**
|
||||
|
@ -280,48 +280,48 @@ static inline TrackdirBits TrackToTrackdirBits(Track track) { Trackdir td = Trac
|
|||
* ahead. This will be the same trackdir for diagonal trackdirs, but a
|
||||
* different (alternating) one for straight trackdirs
|
||||
*/
|
||||
const Trackdir _next_trackdir[TRACKDIR_END];
|
||||
extern const Trackdir _next_trackdir[TRACKDIR_END];
|
||||
static inline Trackdir NextTrackdir(Trackdir trackdir) { return _next_trackdir[trackdir]; }
|
||||
|
||||
/**
|
||||
* Maps a track to all tracks that make 90 deg turns with it.
|
||||
*/
|
||||
const TrackBits _track_crosses_tracks[TRACK_END];
|
||||
extern const TrackBits _track_crosses_tracks[TRACK_END];
|
||||
static inline TrackBits TrackCrossesTracks(Track track) { return _track_crosses_tracks[track]; }
|
||||
|
||||
/**
|
||||
* Maps a trackdir to the (4-way) direction the tile is exited when following
|
||||
* that trackdir.
|
||||
*/
|
||||
const DiagDirection _trackdir_to_exitdir[TRACKDIR_END];
|
||||
extern const DiagDirection _trackdir_to_exitdir[TRACKDIR_END];
|
||||
static inline DiagDirection TrackdirToExitdir(Trackdir trackdir) { return _trackdir_to_exitdir[trackdir]; }
|
||||
|
||||
/**
|
||||
* Maps a track and an (4-way) dir to the trackdir that represents the track
|
||||
* with the exit in the given direction.
|
||||
*/
|
||||
const Trackdir _track_exitdir_to_trackdir[TRACK_END][DIAGDIR_END];
|
||||
extern const Trackdir _track_exitdir_to_trackdir[TRACK_END][DIAGDIR_END];
|
||||
static inline Trackdir TrackExitdirToTrackdir(Track track, DiagDirection diagdir) { return _track_exitdir_to_trackdir[track][diagdir]; }
|
||||
|
||||
/**
|
||||
* Maps a track and a full (8-way) direction to the trackdir that represents
|
||||
* the track running in the given direction.
|
||||
*/
|
||||
const Trackdir _track_direction_to_trackdir[TRACK_END][DIR_END];
|
||||
extern const Trackdir _track_direction_to_trackdir[TRACK_END][DIR_END];
|
||||
static inline Trackdir TrackDirectionToTrackdir(Track track, Direction dir) { return _track_direction_to_trackdir[track][dir]; }
|
||||
|
||||
/**
|
||||
* Maps a (4-way) direction to the diagonal trackdir that runs in that
|
||||
* direction.
|
||||
*/
|
||||
const Trackdir _dir_to_diag_trackdir[DIAGDIR_END];
|
||||
extern const Trackdir _dir_to_diag_trackdir[DIAGDIR_END];
|
||||
static inline Trackdir DiagdirToDiagTrackdir(DiagDirection diagdir) { return _dir_to_diag_trackdir[diagdir]; }
|
||||
|
||||
/**
|
||||
* Maps a trackdir to the trackdirs that can be reached from it (ie, when
|
||||
* entering the next tile. This
|
||||
*/
|
||||
const TrackdirBits _exitdir_reaches_trackdirs[DIAGDIR_END];
|
||||
extern const TrackdirBits _exitdir_reaches_trackdirs[DIAGDIR_END];
|
||||
/* Note that there is no direct table for this function (there used to be),
|
||||
* but it uses two simpeler tables to achieve the result */
|
||||
static inline TrackdirBits TrackdirReachesTrackdirs(Trackdir trackdir) { return _exitdir_reaches_trackdirs[TrackdirToExitdir(trackdir)]; }
|
||||
|
@ -329,13 +329,13 @@ static inline TrackdirBits TrackdirReachesTrackdirs(Trackdir trackdir) { return
|
|||
/**
|
||||
* Maps a trackdir to all trackdirs that make 90 deg turns with it.
|
||||
*/
|
||||
const TrackdirBits _track_crosses_trackdirs[TRACKDIR_END];
|
||||
extern const TrackdirBits _track_crosses_trackdirs[TRACKDIR_END];
|
||||
static inline TrackdirBits TrackdirCrossesTrackdirs(Trackdir trackdir) { return _track_crosses_trackdirs[TrackdirToTrack(trackdir)]; }
|
||||
|
||||
/**
|
||||
* Maps a (4-way) direction to the reverse.
|
||||
*/
|
||||
const DiagDirection _reverse_diagdir[DIAGDIR_END];
|
||||
extern const DiagDirection _reverse_diagdir[DIAGDIR_END];
|
||||
static inline DiagDirection ReverseDiagdir(DiagDirection diagdir) { return _reverse_diagdir[diagdir]; }
|
||||
|
||||
/* Checks if a given Track is diagonal */
|
||||
|
|
Loading…
Reference in New Issue