summaryrefslogtreecommitdiff
path: root/src/bridge_map.h
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-03-02 22:57:47 +0000
committerrubidium <rubidium@openttd.org>2009-03-02 22:57:47 +0000
commit7831346ef8924c757fbd763c225c7b29b665604f (patch)
tree7514d56ab72b15863906486d7256f8e5dd2cef01 /src/bridge_map.h
parent6dd3703a4caafff9a56d878ffac6ce322739067d (diff)
downloadopenttd-7831346ef8924c757fbd763c225c7b29b665604f.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.h10
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);
}
/**