chiark / gitweb /
clock: Actually get per_move basically working
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 20 Mar 2021 21:23:24 +0000 (21:23 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 20 Mar 2021 21:54:45 +0000 (21:54 +0000)
There are still some wrinkles.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/clock.rs

index b22b5e135a296d4c5954751e3ac77584ec13e8f7..675c0a93b448c39e44fcc798b517168dd8bbf5e7 100644 (file)
@@ -243,6 +243,17 @@ impl State {
                       spec: &ChessClock,
                       ig: &InstanceRef) {
     let state = self;
+
+    if_chain! {
+      if let Some(was_current) = was_current;
+      if let Some(now_current) = state.current;
+      if now_current != was_current;
+      then {
+        let remaining = &mut state.users[now_current.user].remaining;
+        *remaining = *remaining + TVL::seconds(spec.per_move.into());
+      }
+    }
+
     if state.implies_running(held) == was_implied_running { return }
 
     let now = now()?;
@@ -255,16 +266,6 @@ impl State {
       }
     }
 
-    if_chain! {
-      if let Some(was_current) = was_current;
-      if let Some(now_current) = state.current;
-      if now_current != was_current;
-      then {
-        let remaining = &mut state.users[now_current.user].remaining;
-        *remaining = *remaining + TVL::seconds(spec.per_move.into());
-      }
-    }
-
     if_chain! {
       if let Some(now_running_user) = state.implies_running(held);
       then {