From: Ian Jackson Date: Sun, 31 Jan 2021 15:26:14 +0000 (+0000) Subject: hidden: Pass PlayerId to new APIs X-Git-Tag: otter-0.4.0~582 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=5b4c60cf82f640cc62821ab8df6909e69989ee81;p=otter.git hidden: Pass PlayerId to new APIs We want this for debug logging right now, but we'll surely want it for actual processing when we implement all this. NFC. Signed-off-by: Ian Jackson --- diff --git a/daemon/api.rs b/daemon/api.rs index f9a3407c..646d4097 100644 --- a/daemon/api.rs +++ b/daemon/api.rs @@ -87,11 +87,12 @@ impl<'r> Responder<'r> for OnlineErrorResponse { fn log_did_to_piece( occults: &GameOccults, + player: PlayerId, gpl: &mut GPlayerState, _lens: &L, piece: PieceId, pc: &PieceState, p: &dyn Piece, did: &str, ) -> Vec { - let pri = piece_pri(occults, gpl, piece, pc); + let pri = piece_pri(occults, player, gpl, piece, pc); vec![ LogEntry { html: Html(format!( "{} {} {}", &htmlescape::encode_minimal(&gpl.nick), @@ -119,7 +120,8 @@ fn api_piece_op(form : Json>) let _ = iplayers.byid(player)?; let gpl = gs.players.byid(player)?; let lens = TransparentLens { }; - let piece = vpiece_decode(gs, gpl, form.piece).ok_or(OE::PieceGone)?; + let piece = vpiece_decode(gs, player, gpl, form.piece) + .ok_or(OE::PieceGone)?; use ApiPieceOpError::*; match (||{ @@ -232,8 +234,10 @@ api_route!{ pc.held = Some(player); let update = PieceUpdateOp::ModifyQuiet(()); - let logents = log_did_to_piece(&gs.occults, gpl, lens, piece, pc, p, - "grasped"); + let logents = log_did_to_piece( + &gs.occults, player, gpl, lens, piece, pc, p, + "grasped" + ); (WhatResponseToClientOp::Predictable, update, logents).into() @@ -257,7 +261,7 @@ api_route!{ let was = was.map(|was| htmlescape::encode_minimal(&was.nick)); let gpl = players.byid_mut(player)?; - let pri = piece_pri(&gs.occults, gpl, piece, pc); + let pri = piece_pri(&gs.occults, player, gpl, piece, pc); let pcs = p.describe_pri(&pri).0; pc.held = Some(player); @@ -290,8 +294,10 @@ api_route!{ pc.held = None; let update = PieceUpdateOp::Modify(()); - let logents = log_did_to_piece(&gs.occults, gpl, lens, piece, pc, p, - "released"); + let logents = log_did_to_piece( + &gs.occults, player, gpl, lens, piece, pc, p, + "released" + ); (WhatResponseToClientOp::Predictable, update, logents).into() @@ -347,8 +353,10 @@ api_route!{ let pc = gs.pieces.byid_mut(piece).unwrap(); let gpl = gs.players.byid_mut(player).unwrap(); pc.angle = PieceAngle::Compass(self.0); - let logents = log_did_to_piece(&gs.occults, gpl, lens, piece, pc, p, - "rotated"); + let logents = log_did_to_piece( + &gs.occults, player, gpl, lens, piece, pc, p, + "rotated" + ); let update = PieceUpdateOp::Modify(()); (WhatResponseToClientOp::Predictable, update, logents).into() @@ -367,7 +375,7 @@ api_route!{ pc.pinned = self.0; let update = PieceUpdateOp::Modify(()); let logents = log_did_to_piece( - &gs.occults, gpl, lens, piece, pc, p, + &gs.occults, player, gpl, lens, piece, pc, p, if pc.pinned { "pinned" } else { "unpinned" }, ); (WhatResponseToClientOp::Predictable, @@ -397,8 +405,10 @@ api_route!{ return ( wrc, PieceUpdateOp::Modify(()), - log_did_to_piece(&gs.occults, gpl, lens, piece, pc, p, - "flipped"), + log_did_to_piece( + &gs.occults, player, gpl, lens, piece, pc, p, + "flipped" + ), ).into() }, diff --git a/daemon/session.rs b/daemon/session.rs index 05c8dc31..ec31a238 100644 --- a/daemon/session.rs +++ b/daemon/session.rs @@ -108,7 +108,7 @@ fn session_inner(form : Json, pieces.sort_by_key(|(_,pr)| &pr.zlevel); for (gpid, pr) in pieces { - let pri = piece_pri(&ig.gs.occults, gpl, gpid, pr); + let pri = piece_pri(&ig.gs.occults, player, gpl, gpid, pr); let p = if let Some(p) = ig.ipieces.get(gpid) { p } else { continue /* was deleted */ }; let defs = p.make_defs(&pri)?; diff --git a/src/hidden.rs b/src/hidden.rs index 479d02f7..e66f94b2 100644 --- a/src/hidden.rs +++ b/src/hidden.rs @@ -57,6 +57,7 @@ pub struct GameOccults { pub fn piece_pri( _occults: &GameOccults, // xxx + _player: PlayerId, gpl: &mut GPlayerState, piece: PieceId, pc: &PieceState, @@ -68,6 +69,7 @@ pub fn piece_pri( pub fn vpiece_decode( _gs: &GameState, // xxx + _player: PlayerId, gpl: &GPlayerState, vis: VisiblePieceId ) -> Option { diff --git a/src/updates.rs b/src/updates.rs index 11f2b04e..95b6e567 100644 --- a/src/updates.rs +++ b/src/updates.rs @@ -509,7 +509,7 @@ impl<'r> PrepareUpdatesBuffer<'r> { }; let op = match (&mut pc, p) { (Some(pc), Some(p)) => { - let pri = piece_pri(&gs.occults, gpl, piece, *pc); + let pri = piece_pri(&gs.occults, player, gpl, piece, *pc); Self::piece_update_player( &mut gs.max_z, pc, p, ops, &pri, lens )?