summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2009-08-07 21:11:58 +0000
committersmatz <smatz@openttd.org>2009-08-07 21:11:58 +0000
commit39e145e586385861b4e3ded70f7df0a29b56fa00 (patch)
tree60a8aa42867fd72e863b67b69d1f717cfb1e5cb9
parent33288c9d5059fba7aee5eb15eb5c4b60034178c5 (diff)
downloadopenttd-39e145e586385861b4e3ded70f7df0a29b56fa00.tar.xz
(svn r17106) -Codechange: move computation of station's catchment rectagle to separate function
-rw-r--r--src/station.cpp31
-rw-r--r--src/station_base.h1
2 files changed, 23 insertions, 9 deletions
diff --git a/src/station.cpp b/src/station.cpp
index ee000a8e0..14d66cf60 100644
--- a/src/station.cpp
+++ b/src/station.cpp
@@ -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
};
diff --git a/src/station_base.h b/src/station_base.h
index 7ddb92b39..c1b0640e1 100644
--- a/src/station_base.h
+++ b/src/station_base.h
@@ -101,6 +101,7 @@ public:
static void RecomputeIndustriesNearForAll();
uint GetCatchmentRadius() const;
+ Rect GetCatchmentRect() const;
/* virtual */ FORCEINLINE bool TileBelongsToRailStation(TileIndex tile) const
{