From 748d082a7932fcf83e01db6040bdf02d819c2ecf Mon Sep 17 00:00:00 2001 From: Darkvater Date: Wed, 15 Mar 2006 21:27:19 +0000 Subject: [PATCH] (svn r3893) - Fix: Properly set back the owner of a crossing/road-under bridge after removing it. For crossings we can always use .m2 because it is already 0 when not owned by a town. --- rail_cmd.c | 4 +--- tunnelbridge_cmd.c | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/rail_cmd.c b/rail_cmd.c index 7c84680341..61b5d3f07b 100644 --- a/rail_cmd.c +++ b/rail_cmd.c @@ -427,7 +427,6 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2) break; case MP_STREET: { - uint town; if (!IsLevelCrossing(tile)) return CMD_ERROR; /* This is a crossing, let's check if the direction is correct */ @@ -436,8 +435,7 @@ int32 CmdRemoveSingleRail(int x, int y, uint32 flags, uint32 p1, uint32 p2) if (!(flags & DC_EXEC)) return _price.remove_rail; - town = (_m[tile].m3 == OWNER_TOWN) ? _m[tile].m2 : 0; - MakeRoadNormal(tile, _m[tile].m3, GetCrossingRoadBits(tile), town); + MakeRoadNormal(tile, _m[tile].m3, GetCrossingRoadBits(tile), _m[tile].m2); break; } diff --git a/tunnelbridge_cmd.c b/tunnelbridge_cmd.c index 0034f10f72..191343845f 100644 --- a/tunnelbridge_cmd.c +++ b/tunnelbridge_cmd.c @@ -714,7 +714,8 @@ static int32 DoClearBridge(TileIndex tile, uint32 flags) if (GB(_m[c].m5, 3, 2) == TRANSPORT_RAIL) { MakeRailNormal(c, GetTileOwner(c), _m[c].m5 & 1 ? TRACK_BIT_X : TRACK_BIT_Y, GB(_m[c].m3, 0, 3)); } else { - MakeRoadNormal(c, GetTileOwner(c), _m[c].m5 & 1 ? ROAD_X : ROAD_Y, 0); // XXX Determine town, missing till now + uint town = IsTileOwner(c, OWNER_TOWN) ? ClosestTownFromTile(c, (uint)-1)->index : 0; + MakeRoadNormal(c, GetTileOwner(c), _m[c].m5 & 1 ? ROAD_X : ROAD_Y, town); } MarkTileDirtyByTile(c); } else {