let log = vec![ LogEntry { html: Html(format!("{} {}", nick.0, did)) }];
+ dbgc!("ui op k did main");
+
// We need to reaquire mut references because create_occultation etc.
// need mut access to gpieces.
let gpc = gpieces.byid_mut(piece).expect("piece disappeared");
let xdata = gpc.xdata.get_mut::<HandState>().expect("xdata disappeared!");
assert_eq!(xdata.player(), old_player);
+ dbgc!("thinging done", &xdata, &new_owner);
xdata.owner = new_owner;
(PieceUpdate {
piece: PieceId, gpc: &GPiece, _p: &dyn PieceTrait,
) -> Option<PieceRenderInstructions>
{
+ dbgc!(&gpc);
let vpid = gpl.idmap.fwd_or_insert(piece);
let angle = gpc.angle;
let occulted = PriOcculted::Visible; // xxx
#[throws(InternalError)]
fn recalculate_occultation_general<
- RD, // return data
- LD, // log data
+ RD: Debug, // return data
+ LD: Debug, // log data
VF: FnOnce(LD) -> RD, // ret_vanilla
LF: FnOnce(Html, Html, Option<&Html>) -> LD, // log_callback
RF: FnOnce(PieceUpdateOps_PerPlayer, LD) -> RD, // ret_callback
new:
goccults.occults.iter().find_map(|(occid, occ)| {
- dbg!(if gpc.pinned {
+ if gpc.pinned {
// Prevent pinned pieces being occulted. What scrambling
// them etc. would mean is not entirely clear.
return None
Some(Occulted { occid, occ })
} else {
None
- })
+ }
}),
};
+ dbgc!((piece, occulteds));
+
let occids = occulteds.main().map(|h| h.as_ref().map(|occ| occ.occid));
if occids.old() == occids.new() { return ret_vanilla(log_visible); }
.push(player);
}
+ dbgc!(&situations);
+
let mut puos = SecondarySlotMap::new();
let mut most_obscure = None;
(true, false) => Some(PUO::Delete()),
(true, true ) => Some(PUO::Modify(())),
};
+ dbgc!(&kinds, &players, &most_obscure, &puo);
if let Some(puo) = puo {
for player in players {
}
}
}
+ dbgc!(most_obscure);
let describe_occulter = |oni| {
let h = occulteds.as_refs().main()[oni];
(puos, log, occulteds.map(|h| h.occid))
};
+
+ dbgc!(&puos, &log, &occulteds);
// point of no return
// xxx shuffle some players' ids
notches: default(),
};
debug!("creating occultation {:?}", &occultation);
+ dbgc!(&recalc);
// Everything from here on must be undone if we get an error
// but we hope not to get one...
to_recompute.implement(gplayers, gpieces, goccults, ipieces),
))?;
+ dbgc!(&updates);
updates
}