bugfix: Fix aircraft falling to their death if their Airfield is lost during their return flight - #3076
Open
Stubbjax wants to merge 4 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #27
This change fixes an issue where aircraft would stall and fall to the ground upon returning to an Airfield that was lost during their return flight.
A missing Airfield would erroneously return
STATE_SUCCESSfrom theJetAIUpdatestate machine's various states, which would transition through the state chain until the jet was idle;RETURN_FOR_LANDING→LANDING_AWAIT_CLEARANCE→LANDING→TAXI_FROM_LANDING→ORIENT_FOR_PARKING_PLACE.The
ORIENT_FOR_PARKING_PLACEstate already correctly returnsSTATE_FAILUREif the Airfield does not exist, ending the chain and causing the jet to go idle. However,TAXI_FROM_LANDINGapplies the parking/taxiing locomotor and so the jet gets stuck and falls to the ground.All missing Airfield conditions along the chain now correctly return
STATE_FAILURE, which aligns with the other failure conditions (e.g. is dead, no available runways, no available parking places) and sets the jet to idle before swapping its locomotor, preventing the undesirable behaviour.Before
BEFORE.mp4
After
AFTER.mp4