diff options
author | rubidium <rubidium@openttd.org> | 2008-08-02 22:47:48 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-08-02 22:47:48 +0000 |
commit | 8eb9c27f8d6e3511ed832b1738e11f213cc2e5d1 (patch) | |
tree | ab32926a52ecf98f970be7136e5b8f5078296938 | |
parent | bef1770590e40860758ff32d45abe7eb7f0666b1 (diff) | |
download | openttd-8eb9c27f8d6e3511ed832b1738e11f213cc2e5d1.tar.xz |
(svn r13928) -Add [YAPP]: Function for getting the path reservation state of any tile. (michi_cc)
-rw-r--r-- | projects/openttd_vs80.vcproj | 8 | ||||
-rw-r--r-- | projects/openttd_vs90.vcproj | 8 | ||||
-rw-r--r-- | source.list | 2 | ||||
-rw-r--r-- | src/pbs.cpp | 43 | ||||
-rw-r--r-- | src/pbs.h | 13 |
5 files changed, 74 insertions, 0 deletions
diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj index 2d4f9c02e..b19198b2d 100644 --- a/projects/openttd_vs80.vcproj +++ b/projects/openttd_vs80.vcproj @@ -664,6 +664,10 @@ > </File> <File + RelativePath=".\..\src\pbs.cpp" + > + </File> + <File RelativePath=".\..\src\players.cpp" > </File> @@ -1264,6 +1268,10 @@ > </File> <File + RelativePath=".\..\src\pbs.h" + > + </File> + <File RelativePath=".\..\src\player_base.h" > </File> diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj index 4b33a7f35..3523d11dc 100644 --- a/projects/openttd_vs90.vcproj +++ b/projects/openttd_vs90.vcproj @@ -661,6 +661,10 @@ > </File> <File + RelativePath=".\..\src\pbs.cpp" + > + </File> + <File RelativePath=".\..\src\players.cpp" > </File> @@ -1261,6 +1265,10 @@ > </File> <File + RelativePath=".\..\src\pbs.h" + > + </File> + <File RelativePath=".\..\src\player_base.h" > </File> diff --git a/source.list b/source.list index 8624afe24..a46e52a1e 100644 --- a/source.list +++ b/source.list @@ -57,6 +57,7 @@ os_timer.cpp ottdres.rc #end pathfind.cpp +pbs.cpp players.cpp queue.cpp rail.cpp @@ -241,6 +242,7 @@ order_base.h order_func.h order_type.h pathfind.h +pbs.h player_base.h player_face.h player_func.h diff --git a/src/pbs.cpp b/src/pbs.cpp new file mode 100644 index 000000000..c75eb8caf --- /dev/null +++ b/src/pbs.cpp @@ -0,0 +1,43 @@ +/* $Id$ */ + +/** @file pbs.cpp */ + +#include "stdafx.h" +#include "openttd.h" +#include "pbs.h" +#include "rail_map.h" +#include "road_map.h" +#include "station_map.h" +#include "tunnelbridge_map.h" + +/** + * Get the reserved trackbits for any tile, regardless of type. + * @param t the tile + * @return the reserved trackbits. TRACK_BIT_NONE on nothing reserved or + * a tile without rail. + */ +TrackBits GetReservedTrackbits(TileIndex t) +{ + switch (GetTileType(t)) { + case MP_RAILWAY: + if (IsRailWaypoint(t) || IsRailDepot(t)) return GetRailWaypointReservation(t); + if (IsPlainRailTile(t)) return GetTrackReservation(t); + break; + + case MP_ROAD: + if (IsLevelCrossing(t)) return GetRailCrossingReservation(t); + break; + + case MP_STATION: + if (IsRailwayStation(t)) return GetRailStationReservation(t); + break; + + case MP_TUNNELBRIDGE: + if (GetTunnelBridgeTransportType(t) == TRANSPORT_RAIL) return GetRailTunnelBridgeReservation(t); + break; + + default: + break; + } + return TRACK_BIT_NONE; +} diff --git a/src/pbs.h b/src/pbs.h new file mode 100644 index 000000000..51a9ba201 --- /dev/null +++ b/src/pbs.h @@ -0,0 +1,13 @@ +/* $Id$ */ + +/** @file pbs.h PBS support routines */ + +#ifndef PBS_H +#define PBS_H + +#include "tile_type.h" +#include "track_type.h" + +TrackBits GetReservedTrackbits(TileIndex t); + +#endif /* PBS_H */ |