changeset 6067:0158909ce445 draft

(svn r8797) -Fix (8741): the 'drive through station built on town owned road' bit was not set.
author rubidium <rubidium@openttd.org>
date Sun, 18 Feb 2007 11:14:55 +0000
parents 407e087ba769
children 657b0cc6a46b
files src/station_cmd.cpp
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -1215,6 +1215,7 @@
 	bool type = HASBIT(p2, 0);
 	bool is_drive_through = HASBIT(p2, 1);
 	bool build_over_road  = is_drive_through && IsTileType(tile, MP_STREET) && GetRoadTileType(tile) == ROAD_TILE_NORMAL;
+	bool town_owned_road  = build_over_road && IsTileOwner(tile, OWNER_TOWN);
 	Owner cur_owner = _current_player;
 
 	/* Saveguard the parameters */
@@ -1233,7 +1234,7 @@
 
 	if (build_over_road) flags ^= DC_AUTO;
 
-	if (build_over_road && IsTileOwner(tile, OWNER_TOWN)) _current_player = OWNER_TOWN;
+	if (town_owned_road) _current_player = OWNER_TOWN;
 	ret = CheckFlatLandBelow(tile, 1, 1, flags, is_drive_through ? 5 << p1 : 1 << p1, NULL);
 	_current_player = cur_owner;
 	if (CmdFailed(ret)) return ret;
@@ -1301,7 +1302,7 @@
 		st->rect.BeforeAddTile(tile, StationRect::ADD_TRY);
 
 		MakeRoadStop(tile, st->owner, st->index, type ? RoadStop::TRUCK : RoadStop::BUS, is_drive_through, (DiagDirection)p1);
-		if (is_drive_through & HASBIT(p2, 3)) SetStopBuiltOnTownRoad(tile);
+		if (town_owned_road) SetStopBuiltOnTownRoad(tile);
 
 		UpdateStationVirtCoordDirty(st);
 		UpdateStationAcceptance(st, false);