Fix UI waypoint numbering.

The flight plan used to not include a waypoint for departure, so a few
places would create one for the sake of the UI, or were built to assume
there was a missing waypoint that was okay to ignore. At some point we
added them to the flight plan, but never updated the UI, so the waypoint
list in the flight dialog started counting from 1 instead of 0, and the
openapi endpoint wrongly reported two departure waypoints to the front-
end.

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/3037.

(cherry picked from commit f7b0dfc3a5)
This commit is contained in:
Dan Albert
2023-06-26 18:39:37 -07:00
parent 5a7a730e23
commit fffe1b6e94
3 changed files with 20 additions and 16 deletions

View File

@@ -6,30 +6,16 @@ from starlette.responses import Response
from game import Game
from game.ato import Flight
from game.ato.flightwaypoint import FlightWaypoint
from game.ato.flightwaypointtype import FlightWaypointType
from game.server import GameContext
from game.server.leaflet import LeafletPoint
from game.server.waypoints.models import FlightWaypointJs
from game.sim import GameUpdateEvents
from game.utils import meters
router: APIRouter = APIRouter(prefix="/waypoints")
def waypoints_for_flight(flight: Flight) -> list[FlightWaypointJs]:
departure = FlightWaypointJs.for_waypoint(
FlightWaypoint(
"TAKEOFF",
FlightWaypointType.TAKEOFF,
flight.departure.position,
meters(0),
"RADIO",
),
flight,
0,
)
return [departure] + [
return [
FlightWaypointJs.for_waypoint(w, flight, i)
for i, w in enumerate(flight.flight_plan.waypoints, 1)
]