You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
996 B
C
41 lines
996 B
C
17 years ago
|
/* $Id$ */
|
||
|
|
||
|
/** @file signal_func.h Functions related to signals. */
|
||
|
|
||
|
#ifndef SIGNAL_FUNC_H
|
||
|
#define SIGNAL_FUNC_H
|
||
|
|
||
|
#include "track_type.h"
|
||
|
|
||
|
/**
|
||
|
* Maps a trackdir to the bit that stores its status in the map arrays, in the
|
||
|
* direction along with the trackdir.
|
||
|
*/
|
||
|
static inline byte SignalAlongTrackdir(Trackdir trackdir)
|
||
|
{
|
||
|
extern const byte _signal_along_trackdir[TRACKDIR_END];
|
||
|
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.
|
||
|
*/
|
||
|
static inline byte SignalAgainstTrackdir(Trackdir trackdir)
|
||
|
{
|
||
|
extern const byte _signal_against_trackdir[TRACKDIR_END];
|
||
|
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.
|
||
|
*/
|
||
|
static inline byte SignalOnTrack(Track track)
|
||
|
{
|
||
|
extern const byte _signal_on_track[TRACK_END];
|
||
|
return _signal_on_track[track];
|
||
|
}
|
||
|
|
||
|
#endif /* SIGNAL_FUNC_H */
|