Changeset - r10353:6bd59d70f042
[Not reviewed]
master
0 3 0
frosch - 16 years ago 2008-11-22 15:48:43
frosch@openttd.org
(svn r14604) -Codechange: Simplify a function and rename it, and fix some comments.
3 files changed with 22 insertions and 34 deletions:
0 comments (0 inline, 0 general)
src/industry_cmd.cpp
Show inline comments
 
@@ -1966,7 +1966,7 @@ static void CanCargoServiceIndustry(Carg
 
int WhoCanServiceIndustry(Industry* ind)
 
{
 
	/* Find all stations within reach of the industry */
 
	StationSet stations = FindStationsAroundIndustryTile(ind->xy, ind->width, ind->height);
 
	StationSet stations = FindStationsAroundTiles(ind->xy, ind->width, ind->height);
 

	
 
	if (stations.size() == 0) return 0; // No stations found at all => nobody services
 

	
src/station_cmd.cpp
Show inline comments
 
@@ -453,11 +453,11 @@ static void ShowRejectOrAcceptNews(const
 

	
 
/**
 
 * Get a list of the cargo types being produced around the tile (in a rectangle).
 
 * @param produced: Destination array of produced cargo
 
 * @param tile: Center of the search area
 
 * @param w: Width of the center
 
 * @param h: Height of the center
 
 * @param rad: Radius of the search area
 
 * @param produced Destination array of produced cargo
 
 * @param tile Northtile of area
 
 * @param w X extent of the area
 
 * @param h Y extent of the area
 
 * @param rad Search radius in addition to the given area
 
 */
 
void GetProductionAroundTiles(AcceptedCargo produced, TileIndex tile,
 
	int w, int h, int rad)
 
@@ -502,11 +502,11 @@ void GetProductionAroundTiles(AcceptedCa
 

	
 
/**
 
 * Get a list of the cargo types that are accepted around the tile.
 
 * @param accepts: Destination array of accepted cargo
 
 * @param tile: Center of the search area
 
 * @param w: Width of the center
 
 * @param h: Height of the center
 
 * @param rad: Radius of the rectangular search area
 
 * @param accepts Destination array of accepted cargo
 
 * @param tile Center of the search area
 
 * @param w X extent of area
 
 * @param h Y extent of area
 
 * @param rad Search radius in addition to given area
 
 */
 
void GetAcceptanceAroundTiles(AcceptedCargo accepts, TileIndex tile,
 
	int w, int h, int rad)
 
@@ -2899,34 +2899,22 @@ CommandCost CmdRenameStation(TileIndex t
 
}
 

	
 
/**
 
 * Find all (non-buoy) stations around an industry tile
 
 * Find all (non-buoy) stations around a rectangular producer (industry, house, headquarter, ...)
 
 *
 
 * @param tile: Center tile to search from
 
 * @param w: Width of the center
 
 * @param h: Height of the center
 
 * @param tile North tile of producer
 
 * @param w_prod X extent of producer
 
 * @param h_prod Y extent of producer
 
 *
 
 * @return: Set of found stations
 
 */
 
StationSet FindStationsAroundIndustryTile(TileIndex tile, int w, int h)
 
StationSet FindStationsAroundTiles(TileIndex tile, int w_prod, int h_prod)
 
{
 
	StationSet station_set;
 

	
 
	int w_prod; // width and height of the "producer" of the cargo
 
	int h_prod;
 
	int max_rad;
 
	if (_settings_game.station.modified_catchment) {
 
		w_prod = w;
 
		h_prod = h;
 
		w += 2 * MAX_CATCHMENT;
 
		h += 2 * MAX_CATCHMENT;
 
		max_rad = MAX_CATCHMENT;
 
	} else {
 
		w_prod = 0;
 
		h_prod = 0;
 
		w += 8;
 
		h += 8;
 
		max_rad = CA_UNMODIFIED;
 
	}
 
	/* 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;
 
	int h = h_prod + 2 * max_rad;
 

	
 
	BEGIN_TILE_LOOP(cur_tile, w, h, tile - TileDiffXY(max_rad, max_rad))
 
		cur_tile = TILE_MASK(cur_tile);
 
@@ -2982,7 +2970,7 @@ uint MoveGoodsToStation(TileIndex tile, 
 
	uint best_rating1 = 0; // rating of st1
 
	uint best_rating2 = 0; // rating of st2
 

	
 
	StationSet all_stations = FindStationsAroundIndustryTile(tile, w, h);
 
	StationSet all_stations = FindStationsAroundTiles(tile, w, h);
 
	for (StationSet::iterator st_iter = all_stations.begin(); st_iter != all_stations.end(); ++st_iter) {
 
		Station *st = *st_iter;
 

	
src/station_func.h
Show inline comments
 
@@ -20,7 +20,7 @@ void ModifyStationRatingAround(TileIndex
 
/** A set of stations (\c const \c Station* ) */
 
typedef std::set<Station*, PoolItemIndexLess<Station> > StationSet;
 

	
 
StationSet FindStationsAroundIndustryTile(TileIndex tile, int w, int h);
 
StationSet FindStationsAroundTiles(TileIndex tile, int w_prod, int h_prod);
 

	
 
void ShowStationViewWindow(StationID station);
 
void UpdateAllStationVirtCoord();
0 comments (0 inline, 0 general)