diff -r 1d5899edc499 -r 057e340d2e26 src/aircraft_cmd.cpp --- a/src/aircraft_cmd.cpp Wed Mar 05 11:41:26 2008 +0000 +++ b/src/aircraft_cmd.cpp Wed Mar 05 18:33:31 2008 +0000 @@ -1105,34 +1105,36 @@ /* Helicopter landing. */ if (amd->flag & AMED_HELI_LOWER) { - count = UpdateAircraftSpeed(v); - if (count > 0) { - if (st->airport_tile == 0) { - /* FIXME - AircraftController -> if station no longer exists, do not land - * helicopter will circle until sign disappears, then go to next order - * what to do when it is the only order left, right now it just stays in 1 place */ - v->u.air.state = FLYING; - UpdateAircraftCache(v); - AircraftNextAirportPos_and_Order(v); - return false; - } + if (st->airport_tile == 0) { + /* FIXME - AircraftController -> if station no longer exists, do not land + * helicopter will circle until sign disappears, then go to next order + * what to do when it is the only order left, right now it just stays in 1 place */ + v->u.air.state = FLYING; + UpdateAircraftCache(v); + AircraftNextAirportPos_and_Order(v); + return false; + } - /* Vehicle is now at the airport. */ - v->tile = st->airport_tile; - - /* Find altitude of landing position. */ - int z = GetSlopeZ(x, y) + 1 + afc->delta_z; + /* Vehicle is now at the airport. */ + v->tile = st->airport_tile; - if (z == v->z_pos) { - Vehicle *u = v->Next()->Next(); + /* Find altitude of landing position. */ + int z = GetSlopeZ(x, y) + 1 + afc->delta_z; - /* Increase speed of rotors. When speed is 80, we've landed. */ - if (u->cur_speed >= 80) return true; - u->cur_speed += 4; - } else if (v->z_pos > z) { - SetAircraftPosition(v, v->x_pos, v->y_pos, max(v->z_pos - count, z)); - } else { - SetAircraftPosition(v, v->x_pos, v->y_pos, min(v->z_pos + count, z)); + if (z == v->z_pos) { + Vehicle *u = v->Next()->Next(); + + /* Increase speed of rotors. When speed is 80, we've landed. */ + if (u->cur_speed >= 80) return true; + u->cur_speed += 4; + } else { + count = UpdateAircraftSpeed(v); + if (count > 0) { + if (v->z_pos > z) { + SetAircraftPosition(v, v->x_pos, v->y_pos, max(v->z_pos - count, z)); + } else { + SetAircraftPosition(v, v->x_pos, v->y_pos, min(v->z_pos + count, z)); + } } } return false;