<Update Hidden="No">
<!-- SAVE FLIGHT PLAN (WRITE FP TO FILE) - LOGGER WRITE -->
<!-- THIS ROUTINE SAVES ONLY THE FLIGHT PLAN WAYPOINTS -->
(L:SavingFlightPlan, enum) 1 ==
if{
<!-- WRITE WPT AS LAT LON PAIR OR ICAO DEPENDING UPON WPT TYPE -->
(L:NumberFlightPlanWptsSaved, enum) (L:NumberFlightPlanWpts, enum) <
if{
:1001
(L:NumberFlightPlanWptsSaved, enum) (>@c:FlightPlanWaypointIndex)
(@c:FlightPlanWaypointType) 5 ==
if{
[COLOR="Red"](L:LatLonWapointNumber, enum) ++ (>L:LatLonWapointNumber, enum)
'WPT' (L:LatLonWapointNumber, enum) int scat (>C:LOGGER:string)[/COLOR]
(@c:FlightPlanWaypointLatitude, degrees) (>C:LOGGER:number)
(@c:FlightPlanWaypointLongitude, degrees) (>C:LOGGER:number)
}
els{
(@c:FlightPlanWaypointICAO) (>C:LOGGER:string)
}
(L:NumberFlightPlanWptsSaved, enum) ++ (>L:NumberFlightPlanWptsSaved, enum)
(L:NumberFlightPlanWptsSaved, enum) (L:NumberFlightPlanWpts, enum) <
if{ g1001 }
}
<!-- CLOSE WRITE FILE, THEN UPDATE THE FLIGHT PLAN NAME LIST. -->
(L:NumberFlightPlanWptsSaved, enum) (L:NumberFlightPlanWpts, enum) ==
if{
1 (>L:FPWasSaved,bool)
1 (>C:LOGGER:closeWrite)
0 (>L:SavingFlightPlan, enum)
@Path 'FlightPlanNamesList.txt' scat (>C:LOGGER:openAppend)
'NewFPFileNameShort' @FindIndex
@ReadString (>C:LOGGER:string)
1 (>C:LOGGER:closeWrite)
}
}
<!-- LOAD FLIGHT PLAN -->
(L:LoadingFlightPlan, enum) 1 ==
if{
(L:LoadingCyclesCount, enum) ++ (>L:LoadingCyclesCount, enum)
(L:EOFReached, enum) -1 ==
if{
:1100
<!-- CHECK IF WAYPOINT IS A LATLON. IF YES, USE LAT LON TO ADD NEW WPT. IF NO, USE ICAO TO ADD NEW WPT -->
(C:LOGGER:string) d
(C:LOGGER:eof) 1 == if{ 1 (>L:EOFReached, enum) g1101 }
[COLOR="Red"]slen 12 <[/COLOR]
if{
[COLOR="red"](>@c:FlightPlanNewWaypointIdent)[/COLOR]
(C:LOGGER:number) (>@c:FlightPlanNewWaypointLatitude, degrees)
(C:LOGGER:number) (>@c:FlightPlanNewWaypointLongitude, degrees)
}
els{
(>@c:FlightPlanNewWaypointICAO)
}
(L:NumberFlightPlanWptsLoaded, enum) (>@c:FlightPlanAddWaypoint)
(L:NumberFlightPlanWptsLoaded, enum) ++ (>L:NumberFlightPlanWptsLoaded, enum)
g1100
}
<!-- MAKE WAYPOINT 1 = ACTIVE, THEN CLOSE READ FILE -->
:1101
(L:EOFReached, enum) 1 ==
if{
1 (>@c:FlightPlanActiveWaypoint)
1 (>C:LOGGER:closeRead)
0 (>L:EOFReached, enum)
}
<!-- SKIP 3 CYCLES THEN UNLOCK ACTIVE WAYPOINT, CLOSE LOADING FP ROUTINE. DONE. -->
(L:LoadingCyclesCount, enum) 3 ==
if{
0 (>@c:FlightPlanIsActiveWaypointLocked)
0 (>L:LoadingFlightPlan, enum)
1 (>L:FPWasLoaded, bool)
}
}
</Update>