summaryrefslogtreecommitdiff
path: root/waypoint.h
diff options
context:
space:
mode:
Diffstat (limited to 'waypoint.h')
-rw-r--r--waypoint.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/waypoint.h b/waypoint.h
index aa3cf8cf8..aac46518a 100644
--- a/waypoint.h
+++ b/waypoint.h
@@ -47,7 +47,15 @@ static inline bool IsWaypointIndex(uint index)
return index < GetWaypointPoolSize();
}
-#define FOR_ALL_WAYPOINTS_FROM(wp, start) for (wp = GetWaypoint(start); wp != NULL; wp = (wp->index + 1 < GetWaypointPoolSize()) ? GetWaypoint(wp->index + 1) : NULL)
+/**
+ * Check if a Waypoint really exists.
+ */
+static inline bool IsValidWaypoint(const Waypoint *wp)
+{
+ return wp->xy != 0;
+}
+
+#define FOR_ALL_WAYPOINTS_FROM(wp, start) for (wp = GetWaypoint(start); wp != NULL; wp = (wp->index + 1 < GetWaypointPoolSize()) ? GetWaypoint(wp->index + 1) : NULL) if (IsValidWaypoint(wp))
#define FOR_ALL_WAYPOINTS(wp) FOR_ALL_WAYPOINTS_FROM(wp, 0)