summaryrefslogtreecommitdiff
path: root/src/waypoint_base.h
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-07-22 10:18:19 +0000
committerrubidium <rubidium@openttd.org>2009-07-22 10:18:19 +0000
commitcb0409fe529586fc85cf3a1f7526c2ad6f9a53d6 (patch)
tree06dbe1abe0377239177fb7909877f9cfdf14f057 /src/waypoint_base.h
parent565b99db223824ae1bf9dd10ffdc075753ce2050 (diff)
downloadopenttd-cb0409fe529586fc85cf3a1f7526c2ad6f9a53d6.tar.xz
(svn r16912) -Codechange: split waypoint.h in waypoint_base.h and waypoint_func.h
Diffstat (limited to 'src/waypoint_base.h')
-rw-r--r--src/waypoint_base.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/waypoint_base.h b/src/waypoint_base.h
new file mode 100644
index 000000000..99efefa0d
--- /dev/null
+++ b/src/waypoint_base.h
@@ -0,0 +1,31 @@
+/* $Id$ */
+
+/** @file waypoint_base.h Base of waypoints. */
+
+#ifndef WAYPOINT_H
+#define WAYPOINT_H
+
+#include "waypoint_type.h"
+#include "station_base.h"
+
+struct Waypoint : SpecializedStation<Waypoint, true> {
+ uint16 town_cn; ///< The Nth waypoint for this town (consecutive number)
+
+ Waypoint(TileIndex tile = INVALID_TILE) : SpecializedStation<Waypoint, true>(tile) { }
+ ~Waypoint();
+
+ void UpdateVirtCoord();
+
+ /* virtual */ FORCEINLINE bool TileBelongsToRailStation(TileIndex tile) const
+ {
+ return IsRailWaypointTile(tile) && GetStationIndex(tile) == this->index;
+ }
+
+ /* virtual */ uint32 GetNewGRFVariable(const struct ResolverObject *object, byte variable, byte parameter, bool *available) const;
+
+ /* virtual */ void GetTileArea(TileArea *ta, StationType type) const;
+};
+
+#define FOR_ALL_WAYPOINTS(var) FOR_ALL_BASE_STATIONS_OF_TYPE(Waypoint, var)
+
+#endif /* WAYPOINT_H */