summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/station.cpp8
-rw-r--r--src/station.h12
2 files changed, 10 insertions, 10 deletions
diff --git a/src/station.cpp b/src/station.cpp
index 80b039d78..416c41ea1 100644
--- a/src/station.cpp
+++ b/src/station.cpp
@@ -403,7 +403,7 @@ RoadStop *RoadStop::AllocateRaw( void )
/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
* TODO - This is just a temporary stage, this will be removed. */
for (rs = GetRoadStop(0); rs != NULL; rs = (rs->index + 1U < GetRoadStopPoolSize()) ? GetRoadStop(rs->index + 1U) : NULL) {
- if (!IsValidRoadStop(rs)) {
+ if (!rs->IsValid()) {
RoadStopID index = rs->index;
memset(rs, 0, sizeof(*rs));
@@ -418,3 +418,9 @@ RoadStop *RoadStop::AllocateRaw( void )
return NULL;
}
+
+/** Determines whether a RoadStop is a valid (i.e. existing) one */
+bool RoadStop::IsValid() const
+{
+ return xy != INVALID_TILE;
+}
diff --git a/src/station.h b/src/station.h
index b4365d2ba..0202e7209 100644
--- a/src/station.h
+++ b/src/station.h
@@ -64,6 +64,8 @@ typedef struct RoadStop {
void *operator new (size_t size, int index);
void operator delete(void *rs, int index);
+ bool IsValid() const;
+protected:
static RoadStop *AllocateRaw(void);
} RoadStop;
@@ -253,15 +255,7 @@ static inline bool IsValidStationID(StationID index)
DECLARE_OLD_POOL(RoadStop, RoadStop, 5, 2000)
-/**
- * Check if a RaodStop really exists.
- */
-static inline bool IsValidRoadStop(const RoadStop *rs)
-{
- return rs->xy != INVALID_TILE;
-}
-
-#define FOR_ALL_ROADSTOPS_FROM(rs, start) for (rs = GetRoadStop(start); rs != NULL; rs = (rs->index + 1U < GetRoadStopPoolSize()) ? GetRoadStop(rs->index + 1U) : NULL) if (IsValidRoadStop(rs))
+#define FOR_ALL_ROADSTOPS_FROM(rs, start) for (rs = GetRoadStop(start); rs != NULL; rs = (rs->index + 1U < GetRoadStopPoolSize()) ? GetRoadStop(rs->index + 1U) : NULL) if (rs->IsValid())
#define FOR_ALL_ROADSTOPS(rs) FOR_ALL_ROADSTOPS_FROM(rs, 0)
/* End of stuff for ROADSTOPS */