From 19fa38601d8df49c309052e8bccb8c2e4302b51e Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 4 Dec 2009 20:29:46 +0000 Subject: (svn r18402) -Codechange: unify/centralise the code for crashing vehicles --- src/aircraft_cmd.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/aircraft_cmd.cpp') diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index d363fd3d4..dd2884a8c 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -1238,19 +1238,21 @@ void Aircraft::MarkDirty() if (this->subtype == AIR_HELICOPTER) this->Next()->Next()->cur_image = GetRotorImage(this); } -static void CrashAirplane(Aircraft *v) + +uint Aircraft::Crash(bool flooded) { - v->vehstatus |= VS_CRASHED; - v->crashed_counter = 0; + uint pass = Vehicle::Crash(flooded) + 2; // pilots + this->crashed_counter = flooded ? 9000 : 0; // max 10000, disappear pretty fast when flooded - CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE); + return pass; +} - v->MarkDirty(); - SetWindowDirty(WC_VEHICLE_VIEW, v->index); +static void CrashAirplane(Aircraft *v) +{ + CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE); - uint amt = 2; - if (IsCargoInClass(v->cargo_type, CC_PASSENGERS)) amt += v->cargo.Count(); - SetDParam(0, amt); + uint pass = v->Crash(); + SetDParam(0, pass); v->cargo.Truncate(0); v->Next()->cargo.Truncate(0); -- cgit v1.2.3-54-g00ecf