summaryrefslogtreecommitdiff
path: root/src/station_cmd.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2010-01-04 18:16:32 +0000
committerrubidium <rubidium@openttd.org>2010-01-04 18:16:32 +0000
commit71f2789270ca091af14ab4cfd64a4f17234cf007 (patch)
tree0f36e792e9bb853140257564a530be65751e1ea6 /src/station_cmd.cpp
parent31b325baafc0abe02c380af63dd6f5fe86f573fd (diff)
downloadopenttd-71f2789270ca091af14ab4cfd64a4f17234cf007.tar.xz
(svn r18716) -Codechange: pass a TileArea to FindStationsAroundTiles
Diffstat (limited to 'src/station_cmd.cpp')
-rw-r--r--src/station_cmd.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp
index 39e6283bd..fdf8b1f29 100644
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -2997,19 +2997,17 @@ CommandCost CmdRenameStation(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
/**
* Find all stations around a rectangular producer (industry, house, headquarter, ...)
*
- * @param tile North tile of producer
- * @param w_prod X extent of producer
- * @param h_prod Y extent of producer
+ * @param location The location/area of the producer
* @param stations The list to store the stations in
*/
-void FindStationsAroundTiles(TileIndex tile, int w_prod, int h_prod, StationList *stations)
+void FindStationsAroundTiles(const TileArea &location, StationList *stations)
{
/* area to search = producer plus station catchment radius */
int max_rad = (_settings_game.station.modified_catchment ? MAX_CATCHMENT : CA_UNMODIFIED);
- for (int dy = -max_rad; dy < h_prod + max_rad; dy++) {
- for (int dx = -max_rad; dx < w_prod + max_rad; dx++) {
- TileIndex cur_tile = TileAddWrap(tile, dx, dy);
+ for (int dy = -max_rad; dy < location.h + max_rad; dy++) {
+ for (int dx = -max_rad; dx < location.w + max_rad; dx++) {
+ TileIndex cur_tile = TileAddWrap(location.tile, dx, dy);
if (cur_tile == INVALID_TILE || !IsTileType(cur_tile, MP_STATION)) continue;
Station *st = Station::GetByTile(cur_tile);
@@ -3017,7 +3015,7 @@ void FindStationsAroundTiles(TileIndex tile, int w_prod, int h_prod, StationList
if (_settings_game.station.modified_catchment) {
int rad = st->GetCatchmentRadius();
- if (dx < -rad || dx >= rad + w_prod || dy < -rad || dy >= rad + h_prod) continue;
+ if (dx < -rad || dx >= rad + location.w || dy < -rad || dy >= rad + location.h) continue;
}
/* Insert the station in the set. This will fail if it has
@@ -3035,7 +3033,7 @@ void FindStationsAroundTiles(TileIndex tile, int w_prod, int h_prod, StationList
const StationList *StationFinder::GetStations()
{
if (this->tile != INVALID_TILE) {
- FindStationsAroundTiles(this->tile, this->w, this->h, &this->stations);
+ FindStationsAroundTiles(*this, &this->stations);
this->tile = INVALID_TILE;
}
return &this->stations;