From: Ian Jackson Date: Mon, 28 Dec 2020 17:47:25 +0000 (+0000) Subject: wip synch X-Git-Tag: otter-0.2.0~115 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=389188e532e6071b62c98269c4590694afcf618c;p=otter.git wip synch Signed-off-by: Ian Jackson --- 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"); }