File diff r24596:eddf98238034 → r24597:afde5721a3b6
src/station.cpp
Show inline comments
 
@@ -320,11 +320,11 @@ uint Station::GetCatchmentRadius() const
 
	uint ret = CA_NONE;
 

	
 
	if (_settings_game.station.modified_catchment) {
 
		if (this->bus_stops          != nullptr)         ret = max<uint>(ret, CA_BUS);
 
		if (this->truck_stops        != nullptr)         ret = max<uint>(ret, CA_TRUCK);
 
		if (this->train_station.tile != INVALID_TILE) ret = max<uint>(ret, CA_TRAIN);
 
		if (this->ship_station.tile  != INVALID_TILE) ret = max<uint>(ret, CA_DOCK);
 
		if (this->airport.tile       != INVALID_TILE) ret = max<uint>(ret, this->airport.GetSpec()->catchment);
 
		if (this->bus_stops          != nullptr)      ret = std::max<uint>(ret, CA_BUS);
 
		if (this->truck_stops        != nullptr)      ret = std::max<uint>(ret, CA_TRUCK);
 
		if (this->train_station.tile != INVALID_TILE) ret = std::max<uint>(ret, CA_TRAIN);
 
		if (this->ship_station.tile  != INVALID_TILE) ret = std::max<uint>(ret, CA_DOCK);
 
		if (this->airport.tile       != INVALID_TILE) ret = std::max<uint>(ret, this->airport.GetSpec()->catchment);
 
	} else {
 
		if (this->bus_stops != nullptr || this->truck_stops != nullptr || this->train_station.tile != INVALID_TILE || this->ship_station.tile != INVALID_TILE || this->airport.tile != INVALID_TILE) {
 
			ret = CA_UNMODIFIED;
 
@@ -346,10 +346,10 @@ Rect Station::GetCatchmentRect() const
 
	int catchment_radius = this->GetCatchmentRadius();
 

	
 
	Rect ret = {
 
		max<int>(this->rect.left   - catchment_radius, 0),
 
		max<int>(this->rect.top    - catchment_radius, 0),
 
		min<int>(this->rect.right  + catchment_radius, MapMaxX()),
 
		min<int>(this->rect.bottom + catchment_radius, MapMaxY())
 
		std::max<int>(this->rect.left   - catchment_radius, 0),
 
		std::max<int>(this->rect.top    - catchment_radius, 0),
 
		std::min<int>(this->rect.right  + catchment_radius, MapMaxX()),
 
		std::min<int>(this->rect.bottom + catchment_radius, MapMaxY())
 
	};
 

	
 
	return ret;
 
@@ -523,7 +523,7 @@ CommandCost StationRect::BeforeAddTile(T
 
	} else if (!this->PtInExtendedRect(x, y)) {
 
		/* current rect is not empty and new point is outside this rect
 
		 * make new spread-out rectangle */
 
		Rect new_rect = {min(x, this->left), min(y, this->top), max(x, this->right), max(y, this->bottom)};
 
		Rect new_rect = {std::min(x, this->left), std::min(y, this->top), std::max(x, this->right), std::max(y, this->bottom)};
 

	
 
		/* check new rect dimensions against preset max */
 
		int w = new_rect.right - new_rect.left + 1;