(svn r13928) -Add [YAPP]: Function for getting the path reservation state of any tile. (michi_cc)
--- a/projects/openttd_vs80.vcproj Sat Aug 02 22:47:34 2008 +0000
+++ b/projects/openttd_vs80.vcproj Sat Aug 02 22:47:48 2008 +0000
@@ -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>
--- a/projects/openttd_vs90.vcproj Sat Aug 02 22:47:34 2008 +0000
+++ b/projects/openttd_vs90.vcproj Sat Aug 02 22:47:48 2008 +0000
@@ -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>
--- a/source.list Sat Aug 02 22:47:34 2008 +0000
+++ b/source.list Sat Aug 02 22:47:48 2008 +0000
@@ -57,6 +57,7 @@
ottdres.rc
#end
pathfind.cpp
+pbs.cpp
players.cpp
queue.cpp
rail.cpp
@@ -241,6 +242,7 @@
order_func.h
order_type.h
pathfind.h
+pbs.h
player_base.h
player_face.h
player_func.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pbs.cpp Sat Aug 02 22:47:48 2008 +0000
@@ -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;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pbs.h Sat Aug 02 22:47:48 2008 +0000
@@ -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 */