changeset 14730:bca4699b8736 draft

(svn r19318) -Fix [FS#3661](r19198): crash when building an airport at a station where a plane was headed
author yexo <yexo@openttd.org>
date Fri, 05 Mar 2010 19:19:29 +0000
parents a69b9d8a22b0
children 9d61b2f8f104
files src/station_cmd.cpp
diffstat 1 files changed, 9 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -2162,15 +2162,6 @@
 
 		st->rect.BeforeAddRect(tile, w, h, StationRect::ADD_TRY);
 
-		/* if airport was demolished while planes were en-route to it, the
-		 * positions can no longer be the same (v->u.air.pos), since different
-		 * airports have different indexes. So update all planes en-route to this
-		 * airport. Only update if
-		 * 1. airport is upgraded
-		 * 2. airport is added to existing station (unfortunately unavoideable)
-		 */
-		if (airport_upgrade) UpdateAirplanesOnNewStation(st);
-
 		const AirportTileTable *it = as->table[0];
 		do {
 			TileIndex cur_tile = tile + ToTileIndexDiff(it->ti);
@@ -2188,6 +2179,15 @@
 			AirportTileAnimationTrigger(st, cur_tile, AAT_BUILT);
 		} while ((++it)->ti.x != -0x80);
 
+		/* if airport was demolished while planes were en-route to it, the
+		 * positions can no longer be the same (v->u.air.pos), since different
+		 * airports have different indexes. So update all planes en-route to this
+		 * airport. Only update if
+		 * 1. airport is upgraded
+		 * 2. airport is added to existing station (unfortunately unavoideable)
+		 */
+		if (airport_upgrade) UpdateAirplanesOnNewStation(st);
+
 		st->UpdateVirtCoord();
 		UpdateStationAcceptance(st, false);
 		st->RecomputeIndustriesNear();