chiark / gitweb /
before refactor report
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 3 Sep 2020 20:26:35 +0000 (21:26 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 3 Sep 2020 20:26:35 +0000 (21:26 +0100)
src/api.rs

index 1ae3f709eb9b34ac1c7e668fa584ef949f1bb883..485a6c4a29baab17eb4990ebb5f2b80b257b285a 100644 (file)
@@ -122,6 +122,7 @@ impl ApiPieceOpError {
 
     match self {
       ReportViaUpdate(poe) => {
+        ig.gs.gen.increment();
         let gen = ig.gs.gen;
         let pc = ig.gs.pieces.byid_mut(piece).map_err(|()| OE::PieceGone)?;
         let pri = lens.svg_pri(piece,pc,player);
@@ -247,10 +248,11 @@ impl ApiPieceOp for ApiPieceMove {
         _lens: &dyn Lens)
         -> (PieceUpdateOp<()>, Vec<LogEntry>) {
     let pc = gs.pieces.byid_mut(piece).unwrap();
-    if let (_,true) = self.0.clamped(gs.table_size) {
+    let (pos, clamped) = self.0.clamped(gs.table_size);
+    pc.pos = self.0;
+    if clamped {
       Err(ApiPieceOpError::ReportViaUpdate(PieceOpError::PosOffTable))?;
     }
-    pc.pos = self.0;
     let update = PieceUpdateOp::Move(self.0);
     (update, vec![])
   }