changeset 4390:495ca5f888cc draft

(svn r6143) -Codechange: DeleteWaypoint removes a waypoint from the pool -Codechange: DestroyWaypoint is called by DeleteWaypoint to remove all things where a waypoint depends on. Last 2 changes to prepare for new pool system. Not pretty now, will be soon.
author truelight <truelight@openttd.org>
date Sat, 26 Aug 2006 16:46:32 +0000
parents 588995cd6d97
children 4daf41d96969
files waypoint.c waypoint.h
diffstat 2 files changed, 19 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/waypoint.c
+++ b/waypoint.c
@@ -95,6 +95,16 @@
 	}
 }
 
+/* Internal handler to delete a waypoint */
+void DestroyWaypoint(Waypoint *wp)
+{
+	RemoveOrderFromAllVehicles(OT_GOTO_WAYPOINT, (DestinationID)wp->index);
+
+	if (wp->string != STR_NULL) DeleteName(wp->string);
+
+	RedrawWaypointSign(wp);
+}
+
 /* Set the default name for a waypoint */
 static void MakeDefaultWaypointName(Waypoint* wp)
 {
@@ -244,18 +254,6 @@
 	return _price.build_train_depot;
 }
 
-/* Internal handler to delete a waypoint */
-static void DoDeleteWaypoint(Waypoint *wp)
-{
-	wp->xy = 0;
-
-	RemoveOrderFromAllVehicles(OT_GOTO_WAYPOINT, (DestinationID)wp->index);
-
-	if (wp->string != STR_NULL) DeleteName(wp->string);
-
-	RedrawWaypointSign(wp);
-}
-
 /* Daily loop for waypoints */
 void WaypointsDailyLoop(void)
 {
@@ -263,7 +261,7 @@
 
 	/* Check if we need to delete a waypoint */
 	FOR_ALL_WAYPOINTS(wp) {
-		if (wp->deleted != 0 && --wp->deleted == 0) DoDeleteWaypoint(wp);
+		if (wp->deleted != 0 && --wp->deleted == 0) DestroyWaypoint(wp);
 	}
 }
 
--- a/waypoint.h
+++ b/waypoint.h
@@ -55,6 +55,14 @@
 	return index < GetWaypointPoolSize() && IsValidWaypoint(GetWaypoint(index));
 }
 
+void DestroyWaypoint(Waypoint *wp);
+
+static inline void DeleteWaypoint(Waypoint *wp)
+{
+	DestroyWaypoint(wp);
+	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)