diff options
author | frosch <frosch@openttd.org> | 2008-10-15 21:10:43 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2008-10-15 21:10:43 +0000 |
commit | 7f5f0fea42ab013f6b6db2b3d434fc2a3f8eb541 (patch) | |
tree | ab26705a682a06aa5f89624c92d8066545a6f665 | |
parent | b3742c0165689ee39d7cf32b69aff5acd54f5b6f (diff) | |
download | openttd-7f5f0fea42ab013f6b6db2b3d434fc2a3f8eb541.tar.xz |
(svn r14469) -Fix [FS#2355]: Empty station spreads (e.g. from greyed station signs) were modified in test mode.
-rw-r--r-- | src/station.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/station.cpp b/src/station.cpp index 356bb0151..97ad6c712 100644 --- a/src/station.cpp +++ b/src/station.cpp @@ -286,9 +286,10 @@ bool StationRect::BeforeAddTile(TileIndex tile, StationRectMode mode) int y = TileY(tile); if (IsEmpty()) { /* we are adding the first station tile */ - left = right = x; - top = bottom = y; - + if (mode != ADD_TEST) { + left = right = x; + top = bottom = y; + } } else if (!PtInExtendedRect(x, y)) { /* current rect is not empty and new point is outside this rect */ /* make new spread-out rectangle */ @@ -316,7 +317,8 @@ bool StationRect::BeforeAddTile(TileIndex tile, StationRectMode mode) bool StationRect::BeforeAddRect(TileIndex tile, int w, int h, StationRectMode mode) { - return BeforeAddTile(tile, mode) && BeforeAddTile(TILE_ADDXY(tile, w - 1, h - 1), mode); + return (mode == ADD_FORCE || (w <= _settings_game.station.station_spread && h <= _settings_game.station.station_spread)) && // important when the old rect is completely inside the new rect, resp. the old one was empty + BeforeAddTile(tile, mode) && BeforeAddTile(TILE_ADDXY(tile, w - 1, h - 1), mode); } /*static*/ bool StationRect::ScanForStationTiles(StationID st_id, int left_a, int top_a, int right_a, int bottom_a) |