(svn r15073) -Fix (r15067) [FS#2532]: Default copy constructors don't necessarily do what you want. Instead of creating one, we now pass a pointer around as that avoids additional allocations.
This commit is contained in:
@@ -2940,10 +2940,8 @@ CommandCost CmdRenameStation(TileIndex tile, uint32 flags, uint32 p1, uint32 p2,
|
||||
*
|
||||
* @return: Set of found stations
|
||||
*/
|
||||
StationList FindStationsAroundTiles(TileIndex tile, int w_prod, int h_prod)
|
||||
void FindStationsAroundTiles(TileIndex tile, int w_prod, int h_prod, StationList *stations)
|
||||
{
|
||||
StationList stations;
|
||||
|
||||
/* area to search = producer plus station catchment radius */
|
||||
int max_rad = (_settings_game.station.modified_catchment ? MAX_CATCHMENT : CA_UNMODIFIED);
|
||||
int w = w_prod + 2 * max_rad;
|
||||
@@ -2989,11 +2987,9 @@ StationList FindStationsAroundTiles(TileIndex tile, int w_prod, int h_prod)
|
||||
/* Insert the station in the set. This will fail if it has
|
||||
* already been added.
|
||||
*/
|
||||
stations.Include(st);
|
||||
stations->Include(st);
|
||||
|
||||
END_TILE_LOOP(cur_tile, w, h, tile - TileDiffXY(max_rad, max_rad))
|
||||
|
||||
return stations;
|
||||
}
|
||||
|
||||
uint MoveGoodsToStation(TileIndex tile, int w, int h, CargoID type, uint amount)
|
||||
@@ -3003,7 +2999,8 @@ uint MoveGoodsToStation(TileIndex tile, int w, int h, CargoID type, uint amount)
|
||||
uint best_rating1 = 0; // rating of st1
|
||||
uint best_rating2 = 0; // rating of st2
|
||||
|
||||
StationList all_stations = FindStationsAroundTiles(tile, w, h);
|
||||
StationList all_stations;
|
||||
FindStationsAroundTiles(tile, w, h, &all_stations);
|
||||
for (Station **st_iter = all_stations.Begin(); st_iter != all_stations.End(); ++st_iter) {
|
||||
Station *st = *st_iter;
|
||||
|
||||
|
Reference in New Issue
Block a user