From a8694d42380d0146c3a725cfa725f0142a294704 Mon Sep 17 00:00:00 2001 From: Michael Corcoran Date: Wed, 27 Apr 2022 14:38:12 +1200 Subject: [PATCH] fix: discontinuity in properly strung arrival (#7113) --- .../FlightElements/A32NX_WaypointLoader.js | 19 +++++++++++++------ .../src/flightplanning/ManagedFlightPlan.ts | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/FlightElements/A32NX_WaypointLoader.js b/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/FlightElements/A32NX_WaypointLoader.js index f0d052c924e..b8322f8a69f 100644 --- a/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/FlightElements/A32NX_WaypointLoader.js +++ b/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/FlightElements/A32NX_WaypointLoader.js @@ -117,10 +117,12 @@ class FacilityLoader { } } - const pendingRequest = this._pendingRawRequests.get(`${type}${_data.icaoTrimed}`); - if (pendingRequest) { - clearTimeout(pendingRequest.timeout); - pendingRequest.resolve(_data); + const pendingRequests = this._pendingRawRequests.get(`${type}${_data.icaoTrimed}`); + if (pendingRequests) { + pendingRequests.forEach((pendingRequest) => { + clearTimeout(pendingRequest.timeout); + pendingRequest.resolve(_data); + }); this._pendingRawRequests.delete(`${type}${_data.icaoTrimed}`); } } @@ -138,8 +140,13 @@ class FacilityLoader { icao: icao.trim() }; - this._pendingRawRequests.set(`${type}${request.icao}`, request); - Coherent.call(loadCall, icao).catch(console.error); + const pendingRequests = this._pendingRawRequests.get(`${type}${request.icao}`); + if (pendingRequests) { + pendingRequests.push(request); + } else { + this._pendingRawRequests.set(`${type}${request.icao}`, [request]); + Coherent.call(loadCall, icao).catch(console.error); + } }); }; diff --git a/src/fmgc/src/flightplanning/ManagedFlightPlan.ts b/src/fmgc/src/flightplanning/ManagedFlightPlan.ts index 7760131dcc1..f2c930da9b0 100644 --- a/src/fmgc/src/flightplanning/ManagedFlightPlan.ts +++ b/src/fmgc/src/flightplanning/ManagedFlightPlan.ts @@ -1301,7 +1301,7 @@ export class ManagedFlightPlan { for (let i = 0; i < toDeleteFromB; i++) { this.removeWaypoint(segmentB.offset, true); } - if (toDeleteFromB === 0 && !ManagedFlightPlan.legsStartOrEndAtSameFix(lastLegA, firstLegB)) { + if (toDeleteFromB === 0 && firstLegB.additionalData.legType === LegType.IF) { lastLegA.endsInDiscontinuity = true; lastLegA.discontinuityCanBeCleared = true; }