From 7831346ef8924c757fbd763c225c7b29b665604f Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 2 Mar 2009 22:57:47 +0000 Subject: (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. --- src/bridge_map.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/bridge_map.h') 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); } /** -- cgit v1.2.3-54-g00ecf