diff options
author | smatz <smatz@openttd.org> | 2008-09-16 16:07:18 +0000 |
---|---|---|
committer | smatz <smatz@openttd.org> | 2008-09-16 16:07:18 +0000 |
commit | 4a97033e7e2cbc8e028d974b1eaeee1114cc8fd6 (patch) | |
tree | f1c3418506ec0d5afba0b85d95ae8a50fbd9e7c5 | |
parent | 192d348f78794793ba19cbeb51444f7f1d4e8c03 (diff) | |
download | openttd-4a97033e7e2cbc8e028d974b1eaeee1114cc8fd6.tar.xz |
(svn r14344) -Fix: when a new airport is built in the same tick as the old station is deleted, aircraft may go crazy (and crash the game)
-rw-r--r-- | src/station.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/station.cpp b/src/station.cpp index b74ef3783..17af0e5ec 100644 --- a/src/station.cpp +++ b/src/station.cpp @@ -32,6 +32,7 @@ #include "command_func.h" #include "order_func.h" #include "news_func.h" +#include "aircraft.h" #include "table/sprites.h" #include "table/strings.h" @@ -74,6 +75,13 @@ Station::~Station() loading_vehicles.front()->LeaveStation(); } + Vehicle *v; + FOR_ALL_VEHICLES(v) { + if (v->type == VEH_AIRCRAFT && IsNormalAircraft(v) && v->u.air.targetairport == this->index) { + v->u.air.targetairport = INVALID_STATION; + } + } + MarkDirty(); InvalidateWindowData(WC_STATION_LIST, this->owner, 0); |