diff options
author | frosch <frosch@openttd.org> | 2009-05-15 16:07:36 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2009-05-15 16:07:36 +0000 |
commit | 8ffb93c358c80fc24e349ad232648087508deec6 (patch) | |
tree | 05009b41503e46ed5e5a6edfa56f11dadafa66d9 /src/road_cmd.cpp | |
parent | 683a6ca039fb0c52093dd93261b6233dd6f482f3 (diff) | |
download | openttd-8ffb93c358c80fc24e349ad232648087508deec6.tar.xz |
(svn r16311) -Fix: (Get|Set)TrackBits() is only valid for RAIL_TILE_NORMAL and _SIGNALS.
Diffstat (limited to 'src/road_cmd.cpp')
-rw-r--r-- | src/road_cmd.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index de011e3af..4590111e2 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -321,6 +321,7 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec if (rt == ROADTYPE_ROAD && HasTileRoadType(tile, ROADTYPE_TRAM) && (flags & DC_EXEC || crossing_check)) return CMD_ERROR; if (flags & DC_EXEC) { + Track railtrack = GetCrossingRailTrack(tile); RoadTypes rts = GetRoadTypes(tile) & ComplementRoadTypes(RoadTypeToRoadTypes(rt)); if (rts == ROADTYPES_NONE) { TrackBits tracks = GetCrossingRailBits(tile); @@ -332,7 +333,7 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec /* If we ever get HWAY and it is possible without road then we will need to promote ownership and invalidate town index here, too */ } MarkTileDirtyByTile(tile); - YapfNotifyTrackLayoutChange(tile, FindFirstTrack(GetTrackBits(tile))); + YapfNotifyTrackLayoutChange(tile, railtrack); } return CommandCost(EXPENSES_CONSTRUCTION, _price.remove_road * 2); } @@ -549,9 +550,10 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR; if (flags & DC_EXEC) { - YapfNotifyTrackLayoutChange(tile, FindFirstTrack(GetTrackBits(tile))); + Track railtrack = AxisToTrack(OtherAxis(roaddir)); + YapfNotifyTrackLayoutChange(tile, railtrack); /* Always add road to the roadtypes (can't draw without it) */ - bool reserved = HasBit(GetTrackReservation(tile), AxisToTrack(OtherAxis(roaddir))); + bool reserved = HasBit(GetTrackReservation(tile), railtrack); MakeRoadCrossing(tile, _current_company, _current_company, GetTileOwner(tile), roaddir, GetRailType(tile), RoadTypeToRoadTypes(rt) | ROADTYPES_ROAD, p2); SetCrossingReservation(tile, reserved); UpdateLevelCrossing(tile, false); |