From: Ian Jackson Date: Thu, 13 May 2021 08:45:25 +0000 (+0100) Subject: Game updates: Actually delete old aliases when resetting X-Git-Tag: otter-0.6.0~320 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=9cd051c71ca62c0fa18aa95d39ca585b8660382b;p=otter.git Game updates: Actually delete old aliases when resetting Signed-off-by: Ian Jackson --- diff --git a/daemon/cmdlistener.rs b/daemon/cmdlistener.rs index d5c16e26..2b057023 100644 --- a/daemon/cmdlistener.rs +++ b/daemon/cmdlistener.rs @@ -549,10 +549,17 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>( pieces, table_size, table_colour, pcaliases, } = toml_de::from_value(&spec) .map_err(|e: toml_de::Error| ME::TomlStructureError(e.to_string()))?; + + // Clear out old stuff let mut insns = vec![]; + for alias in ig.pcaliases.keys() { + insns.push(MGI::DeletePieceAlias(alias.clone())); + } for piece in ig.gs.pieces.keys() { insns.push(MGI::DeletePiece(piece)); } + + // Define new stuff for (alias, target) in pcaliases.into_iter() { insns.push(MGI::DefinePieceAlias{ alias, target }); }