chiark / gitweb /
clock: User swap to other position
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 19 Mar 2021 19:47:25 +0000 (19:47 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 20 Mar 2021 20:12:41 +0000 (20:12 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/clock.rs

index 8250a2c90621ad39b3271d4084afa0ae4c5d869d..632cd22702db22be21b3940b81b7f6d71f1bceba 100644 (file)
@@ -430,12 +430,11 @@ impl PieceTrait for Clock {
         if let Some(_gpl) = gs.players.get(state.users[user].player) {
           throw!(OE::BadPieceStateForOperation);
         }
+        state.users[user].player = player;
         if state.users[! user].player == player {
-          // todo: some more useful per-player message
-          // xxx: actually, clear us from the other player instead ?
-          throw!(OE::BadPieceStateForOperation);
+          // OK, you want to swap
+          state.users[! user].player = default();
         }
-        state.users[user].player = player;
       },
       "unclaim-x" | "unclaim-y" => { // xxx these need to be Unpredictable
         let user = get_user();