chiark / gitweb /
currency: Many fixes to splitting
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 30 Apr 2022 12:13:12 +0000 (13:13 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 30 Apr 2022 14:15:30 +0000 (15:15 +0100)
This was quite broken.

* Actually set the value of the new (change) piece.
* Set the value of tghe taken piece correctly.
* Set the WRC so that clients see the taken piece value.

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

index b381cb28ec1ade30bf2e24a0e18314773e330c4e..2b3ef97e435c2ac68a50c9687e55a32a7f295623 100644 (file)
@@ -139,11 +139,12 @@ impl PieceTrait for Banknote {
     let remaining = tgpc_value.qty.checked_sub(take)
       .ok_or(Ia::CurrencyShortfall)?;
 
-    ngpc.xdata_init(Value { qty: take })?;
+    tgpc_value.qty = take;
+    ngpc.xdata_init(Value { qty: remaining })?;
 
     tgpc.held = Some(player);
     ngpc.held = None;
-
+    
     tgpc.pinned = false;
 
     let logents = log_did_to_piece(
@@ -156,7 +157,7 @@ impl PieceTrait for Banknote {
     let update = PieceUpdateOp::ModifyQuiet(());
 
     Ok((
-      (WhatResponseToClientOp::Predictable,
+      (WhatResponseToClientOp::UpdateSvg,
        update,
        logents).into(),
       default()