diff options
author | rubidium <rubidium@openttd.org> | 2009-03-02 22:57:47 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-03-02 22:57:47 +0000 |
commit | 9f2a906bc1cc3ccbeebf933b36f1a80bd44ea396 (patch) | |
tree | 7514d56ab72b15863906486d7256f8e5dd2cef01 /src/bridge_map.h | |
parent | 90841d55ab9bafb121615e8380fc628b7fb68358 (diff) | |
download | openttd-9f2a906bc1cc3ccbeebf933b36f1a80bd44ea396.tar.xz |
(svn r15601) -Fix [FS#2615]: bridges/tunnels don't store tram owner making it possible to remove someone's tram tracks.
-Feature: allow building road stops on road/tram tracks of competitors.
Diffstat (limited to 'src/bridge_map.h')
-rw-r--r-- | src/bridge_map.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/bridge_map.h b/src/bridge_map.h index 309fc0dd4..7a6035ca6 100644 --- a/src/bridge_map.h +++ b/src/bridge_map.h @@ -71,7 +71,7 @@ static inline bool IsBridgeAbove(TileIndex t) static inline BridgeType GetBridgeType(TileIndex t) { assert(IsBridgeTile(t)); - return GB(_m[t].m2, 4, 4); + return GB(_m[t].m6, 2, 4); } /** @@ -168,10 +168,11 @@ static inline void MakeBridgeRamp(TileIndex t, Owner o, BridgeType bridgetype, D { SetTileType(t, MP_TUNNELBRIDGE); SetTileOwner(t, o); - _m[t].m2 = bridgetype << 4; + _m[t].m2 = 0; _m[t].m3 = rt; _m[t].m4 = 0; _m[t].m5 = 1 << 7 | tt << 2 | d; + SB(_m[t].m6, 2, 4, bridgetype); } /** @@ -184,7 +185,10 @@ static inline void MakeBridgeRamp(TileIndex t, Owner o, BridgeType bridgetype, D */ static inline void MakeRoadBridgeRamp(TileIndex t, Owner o, BridgeType bridgetype, DiagDirection d, RoadTypes r) { - MakeBridgeRamp(t, o, bridgetype, d, TRANSPORT_ROAD, r); + MakeBridgeRamp(t, o, bridgetype, d, TRANSPORT_ROAD, 0); + SetRoadOwner(t, ROADTYPE_ROAD, o); + if (o != OWNER_TOWN) SetRoadOwner(t, ROADTYPE_TRAM, o); + SetRoadTypes(t, r); } /** |