changeset 6733:84f67d7e1b86 draft

(svn r9965) -Fix: the ownership of drive through road stops on town owned roads wasn't properly reset when the road stop was removed.
author rubidium <rubidium@openttd.org>
date Mon, 28 May 2007 20:46:59 +0000
parents 74029c52b5ae
children 078d8129a184
files src/station_cmd.cpp
diffstat 1 files changed, 5 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -1438,20 +1438,11 @@
 
 	/* If the stop was a drive-through stop replace the road */
 	if ((flags & DC_EXEC) && !CmdFailed(ret) && is_drive_through) {
-		uint index = 0;
-		Owner cur_owner = _current_player;
-
-		if (is_towns_road) {
-			index = ClosestTownFromTile(tile, (uint)-1)->index;
-			_current_player = OWNER_TOWN;
-		}
-		if (HASBIT(rts, ROADTYPE_ROAD)) {
-			DoCommand(tile, ROADTYPE_ROAD << 4 | road_bits, index, DC_EXEC, CMD_BUILD_ROAD);
-		}
-		if (HASBIT(rts, ROADTYPE_TRAM)) {
-			DoCommand(tile, ROADTYPE_TRAM << 4 | road_bits, index, DC_EXEC, CMD_BUILD_ROAD);
-		}
-		_current_player = cur_owner;
+		/* Rebuild the drive throuhg road stop. As a road stop can only be
+		 * removed by the owner of the roadstop, _current_player is the
+		 * owner of the road stop. */
+		MakeRoadNormal(tile, road_bits, rts, is_towns_road ? ClosestTownFromTile(tile, (uint)-1)->index : 0,
+				is_towns_road ? OWNER_TOWN : _current_player, _current_player, _current_player);
 	}
 
 	return ret;