Replace CP integer ID with a UUID.

This allows unique identification across saves. The front-end needs to
be able to differentiate the first carrier in game A and the first
carrier in game B, but because carriers (and other non-airfield CPs) are
assigned IDs sequentially, collisions were to be expected. The front-end
can't tell the difference between a reloaded game and a new turn, so we
need to ensure different IDs across games.

This is a handy cleanup anyway, since callers constructing CPs no longer
need to manually track the CP ID counter.

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/2078.
This commit is contained in:
Dan Albert
2022-03-20 15:11:58 -07:00
parent 941a7d441c
commit 039ac9ec74
21 changed files with 127 additions and 179 deletions

View File

@@ -53,7 +53,7 @@ def show_tgo_info(
status_code=status.HTTP_204_NO_CONTENT,
)
def new_cp_package(
cp_id: int,
cp_id: UUID,
game: Game = Depends(GameContext.require),
qt: QtCallbacks = Depends(QtContext.get),
) -> None:
@@ -72,7 +72,7 @@ def new_cp_package(
status_code=status.HTTP_204_NO_CONTENT,
)
def show_control_point_info(
cp_id: int,
cp_id: UUID,
game: Game = Depends(GameContext.require),
qt: QtCallbacks = Depends(QtContext.get),
) -> None: