src/signal_func.h
branchNewGRF_ports
changeset 6872 1c4a4a609f85
child 10724 68a692eacf22
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/signal_func.h	Tue Jan 22 21:00:30 2008 +0000
@@ -0,0 +1,50 @@
+/* $Id$ */
+
+/** @file signal_func.h Functions related to signals. */
+
+#ifndef SIGNAL_FUNC_H
+#define SIGNAL_FUNC_H
+
+#include "track_type.h"
+#include "tile_type.h"
+#include "direction_type.h"
+#include "track_type.h"
+#include "player_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];
+}
+
+bool UpdateSignalsOnSegment(TileIndex tile, DiagDirection side, Owner owner);
+void SetSignalsOnBothDir(TileIndex tile, Track track, Owner owner);
+void AddTrackToSignalBuffer(TileIndex tile, Track track, Owner owner);
+void AddSideToSignalBuffer(TileIndex tile, DiagDirection side, Owner owner);
+void UpdateSignalsInBuffer();
+
+#endif /* SIGNAL_FUNC_H */