From b404072ccc43fad529e8cf13532e646d3d4767d5 Mon Sep 17 00:00:00 2001 From: tron Date: Wed, 1 Mar 2006 08:56:38 +0000 Subject: (svn r3696) Add functions to turn a tile into a normal rail tile/depot/waypoint. This is just a tiny step, the rail code needs way more love and caring --- rail_map.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 rail_map.h (limited to 'rail_map.h') diff --git a/rail_map.h b/rail_map.h new file mode 100644 index 000000000..35a0ddfd3 --- /dev/null +++ b/rail_map.h @@ -0,0 +1,49 @@ +/* $Id$ */ + +#ifndef RAIL_MAP_H +#define RAIL_MAP_H + +#include "rail.h" +#include "tile.h" +#include "waypoint.h" + + +static inline TrackBits GetRailWaypointBits(TileIndex t) +{ + return _m[t].m5 & RAIL_WAYPOINT_TRACK_MASK ? TRACK_BIT_DIAG2 : TRACK_BIT_DIAG1; +} + + +static inline void MakeRailNormal(TileIndex t, Owner o, TrackBits b, RailType r) +{ + SetTileType(t, MP_RAILWAY); + SetTileOwner(t, o); + _m[t].m2 = 0; + _m[t].m3 = r; + _m[t].m4 = 0; + _m[t].m5 = RAIL_TYPE_NORMAL | b; +} + + +static inline void MakeRailDepot(TileIndex t, Owner o, DiagDirection d, RailType r) +{ + SetTileType(t, MP_RAILWAY); + SetTileOwner(t, o); + _m[t].m2 = 0; + _m[t].m3 = r; + _m[t].m4 = 0; + _m[t].m5 = RAIL_TYPE_DEPOT_WAYPOINT | RAIL_SUBTYPE_DEPOT | d; +} + + +static inline void MakeRailWaypoint(TileIndex t, Owner o, Axis a, RailType r, uint index) +{ + SetTileType(t, MP_RAILWAY); + SetTileOwner(t, o); + _m[t].m2 = index; + _m[t].m3 = r; + _m[t].m4 = 0; + _m[t].m5 = RAIL_TYPE_DEPOT_WAYPOINT | RAIL_SUBTYPE_WAYPOINT | a; +} + +#endif -- cgit v1.2.3-54-g00ecf