Mercurial > hg > openttd
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;