(svn r13928) -Add [YAPP]: Function for getting the path reservation state of any tile. (michi_cc)
authorrubidium
Sat, 02 Aug 2008 22:47:48 +0000
changeset 9786 0169b327f3d2
parent 9785 2005c34d0811
child 9787 cedb26977f52
(svn r13928) -Add [YAPP]: Function for getting the path reservation state of any tile. (michi_cc)
projects/openttd_vs80.vcproj
projects/openttd_vs90.vcproj
source.list
src/pbs.cpp
src/pbs.h
--- 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 */