From: Ian Jackson Date: Sat, 30 Apr 2022 12:13:12 +0000 (+0100) Subject: currency: Many fixes to splitting X-Git-Tag: otter-1.1.0~402 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=8ca39cd7d6ed44913270b9c7eaac09eca9eeeff5;p=otter.git currency: Many fixes to splitting 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 --- diff --git a/src/currency.rs b/src/currency.rs index b381cb28..2b3ef97e 100644 --- a/src/currency.rs +++ b/src/currency.rs @@ -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()