mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-09 07:29:44 +00:00
(svn r17106) -Codechange: move computation of station's catchment rectagle to separate function
This commit is contained in:
parent
33288c9d50
commit
39e145e586
@ -239,6 +239,27 @@ uint Station::GetCatchmentRadius() const
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines catchment rectangle of this station
|
||||
* @return clamped catchment rectangle
|
||||
*/
|
||||
Rect Station::GetCatchmentRect() const
|
||||
{
|
||||
assert(!this->rect.IsEmpty());
|
||||
|
||||
/* Compute acceptance rectangle */
|
||||
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())
|
||||
};
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/** Rect and pointer to IndustryVector */
|
||||
struct RectAndIndustryVector {
|
||||
Rect rect;
|
||||
@ -290,16 +311,8 @@ void Station::RecomputeIndustriesNear()
|
||||
this->industries_near.Clear();
|
||||
if (this->rect.IsEmpty()) return;
|
||||
|
||||
/* Compute acceptance rectangle */
|
||||
int catchment_radius = this->GetCatchmentRadius();
|
||||
|
||||
RectAndIndustryVector riv = {
|
||||
{
|
||||
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())
|
||||
},
|
||||
this->GetCatchmentRect(),
|
||||
&this->industries_near
|
||||
};
|
||||
|
||||
|
@ -101,6 +101,7 @@ public:
|
||||
static void RecomputeIndustriesNearForAll();
|
||||
|
||||
uint GetCatchmentRadius() const;
|
||||
Rect GetCatchmentRect() const;
|
||||
|
||||
/* virtual */ FORCEINLINE bool TileBelongsToRailStation(TileIndex tile) const
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user