From 389188e532e6071b62c98269c4590694afcf618c Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 28 Dec 2020 17:47:25 +0000 Subject: [PATCH] wip synch Signed-off-by: Ian Jackson --- src/cmdlistener.rs | 12 ++++++++++++ src/commands.rs | 2 ++ wdriver/wdt-simple.rs | 3 +++ 3 files changed, 17 insertions(+) diff --git a/src/cmdlistener.rs b/src/cmdlistener.rs index bca44a28..892bc520 100644 --- a/src/cmdlistener.rs +++ b/src/cmdlistener.rs @@ -358,6 +358,18 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>( ig) }, + Insn::Synch => { + let (mut ig, _) = cs.check_acl(&ag, ig, PCH::Instance, &[TP::Play])?; + let mut buf = PrepareUpdatesBuffer::new(&mut ig, None, None); + let gen = buf.gen(); + drop(buf); // does update + (U{ pcs: vec![], // we handled the update ourselves, + log: vec![], // return no update info + raw: None }, + Resp::Synch(gen), + ig) + }, + Insn::ListPieces => readonly(cs,ag,ig, &[TP::ViewPublic], |ig|{ let pieces = ig.gs.pieces.iter().map(|(piece,p)|{ let &PieceState { pos, face, .. } = p; diff --git a/src/commands.rs b/src/commands.rs index 888ff534..e71d8950 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -70,6 +70,7 @@ pub enum MgmtResponse { pub enum MgmtGameInstruction { Noop, Info, + Synch, SetTableSize(Pos), SetTableColour(ColourSpec), @@ -98,6 +99,7 @@ pub struct MgmtPlayerDetails { pub enum MgmtGameResponse { Fine, Info(MgmtGameResponseGameInfo), + Synch(Generation), Pieces(Vec), diff --git a/wdriver/wdt-simple.rs b/wdriver/wdt-simple.rs index 16d8a53f..60d6bfaa 100644 --- a/wdriver/wdt-simple.rs +++ b/wdriver/wdt-simple.rs @@ -10,6 +10,9 @@ fn main(){ let [alice, bob] : [Window; 2] = su.setup_static_users()?.try_into().unwrap(); debug!("ok {:?} {:?}", alice, bob); + +// alice.synch()?; + sleep(750 * MS); debug!("finishing"); } -- 2.30.2