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