From 8ca39cd7d6ed44913270b9c7eaac09eca9eeeff5 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 30 Apr 2022 13:13:12 +0100 Subject: [PATCH] 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 --- src/currency.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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() -- 2.30.2