From: Ian Jackson Date: Sat, 30 Jan 2021 22:08:59 +0000 (+0000) Subject: hidden prep: Allow api updates to be per-player X-Git-Tag: otter-0.4.0~599 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=ed5f46d8ec54d06e3a8c280a0d439c04c1362c63;p=otter.git hidden prep: Allow api updates to be per-player Signed-off-by: Ian Jackson --- diff --git a/src/updates.rs b/src/updates.rs index 97f42702..c7efbc1b 100644 --- a/src/updates.rs +++ b/src/updates.rs @@ -119,9 +119,10 @@ pub struct PieceUpdate { pub ops: PieceUpdateOps, } -#[derive(Debug,Copy,Clone)] +#[derive(Debug,Clone)] pub enum PieceUpdateOps { Simple(PieceUpdateOp<(),()>), + PerPlayer(DenseSlotMap>), } impl From> for PieceUpdateOps { @@ -503,6 +504,10 @@ impl<'r> PrepareUpdatesBuffer<'r> { for player in gs.players.keys() { let ops = match ops { PUO::Simple(update) => update, + PUO::PerPlayer(ref ops) => match ops.get(player) { + Some(op) => *op, + None => continue, + } }; let op = match (&mut pc, p) { (Some(pc), Some(p)) => Self::piece_update_player(