(svn r4764) Move some functions from rail.h to rail_map.h

This commit is contained in:
tron 2006-05-07 07:01:48 +00:00
parent ec1edb127a
commit 4f092c8de8
2 changed files with 37 additions and 43 deletions

43
rail.h
View File

@ -178,49 +178,6 @@ static inline byte SignalOnTrack(Track track) {
return _signal_on_track[track];
}
/*
* Some functions to query rail tiles
*/
/**
* Checks if a rail tile has signals.
*/
static inline bool HasSignals(TileIndex tile)
{
return GetRailTileType(tile) == RAIL_TYPE_SIGNALS;
}
/**
* Returns the RailTileSubtype of a given rail tile with type
* RAIL_TYPE_DEPOT_WAYPOINT
*/
static inline RailTileSubtype GetRailTileSubtype(TileIndex tile)
{
assert(GetRailTileType(tile) == RAIL_TYPE_DEPOT_WAYPOINT);
return (RailTileSubtype)(_m[tile].m5 & RAIL_SUBTYPE_MASK);
}
/**
* Returns whether this is plain rails, with or without signals. Iow, if this
* tiles RailTileType is RAIL_TYPE_NORMAL or RAIL_TYPE_SIGNALS.
*/
static inline bool IsPlainRailTile(TileIndex tile)
{
RailTileType rtt = GetRailTileType(tile);
return rtt == RAIL_TYPE_NORMAL || rtt == RAIL_TYPE_SIGNALS;
}
/**
* Returns whether the given track is present on the given tile. Tile must be
* a plain rail tile (IsPlainRailTile()).
*/
static inline bool HasTrack(TileIndex tile, Track track)
{
assert(IsValidTrack(track));
return HASBIT(GetTrackBits(tile), track);
}
/*
* Functions describing logical relations between Tracks, TrackBits, Trackdirs

View File

@ -21,6 +21,24 @@ static inline RailTileType GetRailTileType(TileIndex t)
return _m[t].m5 & RAIL_TILE_TYPE_MASK;
}
/**
* Returns whether this is plain rails, with or without signals. Iow, if this
* tiles RailTileType is RAIL_TYPE_NORMAL or RAIL_TYPE_SIGNALS.
*/
static inline bool IsPlainRailTile(TileIndex tile)
{
RailTileType rtt = GetRailTileType(tile);
return rtt == RAIL_TYPE_NORMAL || rtt == RAIL_TYPE_SIGNALS;
}
/**
* Checks if a rail tile has signals.
*/
static inline bool HasSignals(TileIndex tile)
{
return GetRailTileType(tile) == RAIL_TYPE_SIGNALS;
}
/** These specify the subtype when the main rail type is
* RAIL_TYPE_DEPOT_WAYPOINT */
@ -30,6 +48,16 @@ typedef enum RailTileSubtypes {
RAIL_SUBTYPE_MASK = 0x3C
} RailTileSubtype;
/**
* Returns the RailTileSubtype of a given rail tile with type
* RAIL_TYPE_DEPOT_WAYPOINT
*/
static inline RailTileSubtype GetRailTileSubtype(TileIndex tile)
{
assert(GetRailTileType(tile) == RAIL_TYPE_DEPOT_WAYPOINT);
return (RailTileSubtype)(_m[tile].m5 & RAIL_SUBTYPE_MASK);
}
typedef enum RailTypes {
RAILTYPE_RAIL = 0,
@ -118,6 +146,15 @@ static inline void SetTrackBits(TileIndex t, TrackBits b)
SB(_m[t].m5, 0, 6, b);
}
/**
* Returns whether the given track is present on the given tile. Tile must be
* a plain rail tile (IsPlainRailTile()).
*/
static inline bool HasTrack(TileIndex tile, Track track)
{
return HASBIT(GetTrackBits(tile), track);
}
static inline DiagDirection GetRailDepotDirection(TileIndex t)
{