summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-09-14 16:49:21 +0000
committerrubidium <rubidium@openttd.org>2008-09-14 16:49:21 +0000
commit7c8a50d7d899c6e5694825ecc8dad950adbc4079 (patch)
tree6599ac9d18b051b738f2d51222213f17d5bf3bfc
parent5df524ecc0dfb016fa561cdb48451467288c814f (diff)
downloadopenttd-7c8a50d7d899c6e5694825ecc8dad950adbc4079.tar.xz
(svn r14324) -Fix [FS#2241]: free any blocks that a helicopter may have on an oilrig when the helicopter gets forcefully removed (bankruptcy). For other airports this isn't needed as they can't be used by multiple companies.
-rw-r--r--src/vehicle.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/vehicle.cpp b/src/vehicle.cpp
index ce757c470..943fc7076 100644
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -651,6 +651,11 @@ void Vehicle::PreDestructor()
}
if (this->type == VEH_ROAD) ClearSlot(this);
+ if (this->type == VEH_AIRCRAFT && this->IsPrimaryVehicle()) {
+ Station *st = GetStation(this->u.air.targetairport);
+ const AirportFTA *layout = st->Airport()->layout;
+ CLRBITS(st->airport_flags, layout[this->u.air.previous_pos].block | layout[this->u.air.pos].block);
+ }
if (this->type != VEH_TRAIN || (this->type == VEH_TRAIN && (IsFrontEngine(this) || IsFreeWagon(this)))) {
InvalidateWindowData(WC_VEHICLE_DEPOT, this->tile);