Mercurial > hg > openttd
diff src/station_cmd.cpp @ 6402:b0b11d9fe257 draft
(svn r9532) -Fix (r8741) [FS#708]: Make errors when building drive through road stops more descriptive.
author | maedhros <maedhros@openttd.org> |
---|---|
date | Sat, 31 Mar 2007 09:53:40 +0000 |
parents | d1cf5ac55918 |
children | 080aae477331 |
line wrap: on
line diff
--- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1190,9 +1190,12 @@ /* If it is a drive-through stop check for valid axis */ if (is_drive_through && !IsValidAxis((Axis)p1)) return CMD_ERROR; /* Road bits in the wrong direction */ - if (build_over_road && (GetRoadBits(tile) & ((Axis)p1 == AXIS_X ? ROAD_Y : ROAD_X)) != 0) return CMD_ERROR; + if (build_over_road && (GetRoadBits(tile) & ((Axis)p1 == AXIS_X ? ROAD_Y : ROAD_X)) != 0) return_cmd_error(STR_DRIVE_THROUGH_ERROR_DIRECTION); /* Not allowed to build over this road */ - if (build_over_road && !IsTileOwner(tile, _current_player) && !(IsTileOwner(tile, OWNER_TOWN) && _patches.road_stop_on_town_road)) return CMD_ERROR; + if (build_over_road) { + if (IsTileOwner(tile, OWNER_TOWN) && !_patches.road_stop_on_town_road) return_cmd_error(STR_DRIVE_THROUGH_ERROR_ON_TOWN_ROAD); + if (!IsTileOwner(tile, OWNER_TOWN) && !CheckOwnership(GetTileOwner(tile))) return CMD_ERROR; + } SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);