Mercurial > hg > openttd
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)