let pcs = pri.describe(ioccults,&gs.occults, gpc, ipc);
gpc.held = Some(player);
+ gpc.last_released = default();
let update = PieceUpdateOp::Modify(());
if gpc.held != Some(player) { throw!(Ia::PieceNotHeld) }
gpc.held = None;
+ gpc.last_released = a.client;
let wrc = if let Some(zlevel) = new_z {
gpc.zlevel = zlevel;
pos, face,
xdata: None,
moveable: default(),
+ last_released: default(),
rotateable: true,
};
let PieceSpecLoaded { p, loaded_via_alias, occultable } =
pub angle: PieceAngle,
pub gen: Generation,
pub lastclient: ClientId,
+ #[serde(default)] pub last_released: ClientId,
pub gen_before_lastclient: Generation,
pub xdata: PieceXDataState,
pub moveable: PieceMoveable,
angle: default(),
gen: gen_dummy,
lastclient: ClientId(default()),
+ last_released: ClientId(default()),
gen_before_lastclient: gen_dummy,
xdata: None,
moveable: default(),