}
#[throws(IE)]
- fn describe_html(&self, _gpc: &GPiece, _goccults: &GameOccults) -> Html {
+ fn describe_html(&self, _gpc: &GPiece, _goccults: &GOccults) -> Html {
Html::lit("the chess clock").into()
}
#[typetag::serde(name="Currency")]
impl PieceTrait for Banknote {
#[throws(IE)]
- fn describe_html(&self, gpc: &GPiece, _: &GameOccults) -> Html {
+ fn describe_html(&self, gpc: &GPiece, _: &GOccults) -> Html {
let value: &Value = gpc.xdata.get_exp()?;
hformat!("{}, {}{}",
self.image.describe_html(gpc.face)?,
move |ig: &mut InstanceGuard, (player, tpiece)|
{
ig.fastsplit_split(player, tpiece, show, new_z,
- move |_: &IOccults, _: &GameOccults, gpl: &GPlayer,
+ move |_: &IOccults, _: &GOccults, gpl: &GPlayer,
tgpc: &mut GPiece, tipc: &IPiece,
ngpc: &mut GPiece|
{
impl Deck {
#[throws(IE)]
- fn state(&self, gpc: &GPiece, goccults: &GameOccults) -> State {
+ fn state(&self, gpc: &GPiece, goccults: &GOccults) -> State {
match gpc.occult.active_views(goccults)? {
None => Disabled,
Some(OccultationViews { defview: OccK::Visible,.. }) => Counting,
}
#[throws(IE)]
- fn current_face(&self, gpc: &GPiece, goccults: &GameOccults) -> FaceId {
+ fn current_face(&self, gpc: &GPiece, goccults: &GOccults) -> FaceId {
RawFaceId::into(match self.state(gpc, goccults)? {
Disabled | Counting => 0,
Enabled => 1,
}
#[throws(IE)]
- fn describe_html(&self, gpc: &GPiece, goccults: &GameOccults) -> Html {
+ fn describe_html(&self, gpc: &GPiece, goccults: &GOccults) -> Html {
match self.state(gpc, goccults)? {
Disabled => DISABLED_DESC,
Counting => COUNTING_DESC,
#[typetag::serde(name="Die")]
impl PieceTrait for Die {
#[throws(IE)]
- fn describe_html(&self, gpc: &GPiece, _: &GameOccults) -> Html {
+ fn describe_html(&self, gpc: &GPiece, _: &GOccults) -> Html {
let nfaces = self.nfaces();
let showing = {
let label = &self.labels[gpc.face];
tpiece: PieceId, _: ShowUnocculted, tpc_new_z: ShouldSetZLevel,
implementation: I
) -> UpdateFromOpComplex
- where I: FnOnce(&IOccults, &GameOccults, &GPlayer,
+ where I: FnOnce(&IOccults, &GOccults, &GPlayer,
&mut GPiece, &IPiece,
&mut GPiece)
-> Result<UpdateFromOpComplex, ApiPieceOpError>
pub log: VecDeque<(Generation, Arc<CommittedLogEntry>)>,
pub max_z: ZLevel,
pub players: GPlayers,
- pub occults: GameOccults,
+ pub occults: GOccults,
}
pub type GPlayers = DenseSlotMap<PlayerId, GPlayer>;
fn svg_piece(&self, f: &mut Html, gpc: &GPiece, gs: &GameState,
id: VisiblePieceId) -> Result<(),IE>;
- fn describe_html(&self, gpc: &GPiece, _goccults: &GameOccults)
+ fn describe_html(&self, gpc: &GPiece, _goccults: &GOccults)
-> Result<Html,IE>;
/// Piece is responsible for dealing with the possibility that they
}
#[throws(IE)]
- fn describe_html(&self, gpc: &GPiece, _goccults: &GameOccults) -> Html {
+ fn describe_html(&self, gpc: &GPiece, _goccults: &GOccults) -> Html {
let xdata = gpc.xdata.get()?;
self.behaviour.describe_html_inner(xdata)
}
pub struct IPieceTraitObj(Box<dyn PieceTrait>);
#[derive(Clone,Debug,Default,Serialize,Deserialize)]
-pub struct GameOccults {
+pub struct GOccults {
occults: DenseSlotMap<OccId, Occultation>,
}
pub fn is_active(&self) -> bool { self.active.is_some() }
#[throws(IE)]
- fn active_occ<'r>(&'r self, goccults: &'r GameOccults)
+ fn active_occ<'r>(&'r self, goccults: &'r GOccults)
-> Option<&'r Occultation> {
if let Some(occid) = self.active {
let occ = goccults.occults.get(occid).ok_or_else(
}
#[throws(IE)]
- pub fn active_views<'r>(&'r self, goccults: &'r GameOccults)
+ pub fn active_views<'r>(&'r self, goccults: &'r GOccults)
-> Option<&'r OccultationViews> {
self.active_occ(goccults)?.map(
|occ| &occ.views
}
#[throws(IE)]
- pub fn active_region<'r>(&'r self, goccults: &'r GameOccults)
+ pub fn active_region<'r>(&'r self, goccults: &'r GOccults)
-> Option<&'r Region> {
self.active_occ(goccults)?.map(
|occ| &occ.region
}
#[throws(IE)]
- pub fn active_total_ppieces(&self, goccults: &GameOccults)
+ pub fn active_total_ppieces(&self, goccults: &GOccults)
-> Option<usize> {
self.active_occ(goccults)?.map(|occ| {
let notches_len = usize::try_from(occ.notches.len()).unwrap();
}
pub fn passive_occid(&self) -> Option<OccId> { Some(self.passive?.occid) }
- pub fn passive_delete_hook(&self, goccults: &mut GameOccults,
+ pub fn passive_delete_hook(&self, goccults: &mut GOccults,
piece: PieceId) {
if_chain! {
if let Some(Passive { occid, permute_notch }) = self.passive;
}
}
-impl GameOccults {
+impl GOccults {
#[throws(IE)]
fn by_id(&self, occid: OccId) -> &Occultation {
self.occults.get(occid).ok_or_else(
}
#[throws(IE)]
- pub fn pos_occulter(&self, goccults: &GameOccults, pos: Pos)
+ pub fn pos_occulter(&self, goccults: &GOccults, pos: Pos)
-> Option<PieceId> {
goccults.occults.iter().find_map(|(_occid, occ)| {
if occ.in_region(pos) {
}
pub fn is_empty(&self) -> bool {
- let GameOccults { occults } = self;
+ let GOccults { occults } = self;
occults.is_empty()
}
}
/// None => do not render at all
pub fn piece_pri(
_ioccults: &IOccults,
- occults: &GameOccults,
+ occults: &GOccults,
player: PlayerId, gpl: &mut GPlayer,
piece: PieceId, gpc: &GPiece, _ipc: &IPiece,
) -> Option<PieceRenderInstructions>
}
- pub fn fully_visible_to(&self, goccults: &GameOccults, player: PlayerId)
+ pub fn fully_visible_to(&self, goccults: &GOccults, player: PlayerId)
-> Option<ShowUnocculted>
{
const HIDE: Option<ShowUnocculted> = None;
gen: &mut UniqueGenGen,
//
gplayers: &GPlayers, gpieces: &mut GPieces,
- goccults: &mut GameOccults, ipieces: &IPieces, ioccults: &IOccults,
+ goccults: &mut GOccults, ipieces: &IPieces, ioccults: &IOccults,
//
to_recalculate: &mut ToRecalculate, piece: PieceId,
// if no change, we return ret_vanilla()
(||{
let occultation:
- &mut dyn for<'g> FnMut(&'g mut GameOccults, OccId) -> &mut Occultation
+ &mut dyn for<'g> FnMut(&'g mut GOccults, OccId) -> &mut Occultation
= &mut |goccults, occid|
// rust-lang/rust/issues/58525
{
gen: &mut UniqueGenGen,
gplayers: &GPlayers,
gpieces: &mut GPieces,
- goccults: &mut GameOccults,
+ goccults: &mut GOccults,
ipieces: &IPieces,
ioccults: &IOccults,
to_recalculate: &mut ToRecalculate,
pub fn implement(self,
gplayers: &mut GPlayers,
gpieces: &mut GPieces,
- goccults: &mut GameOccults,
+ goccults: &mut GOccults,
ipieces: &IPieces) -> Implemented {
let mut unprepared = vec![];
max_z: &mut ZLevel,
gplayers: &mut GPlayers,
gpieces: &mut GPieces,
- goccults: &mut GameOccults,
+ goccults: &mut GOccults,
ipieces: &IPieces,
ioccults: &IOccults,
to_recalculate: &mut ToRecalculate,
gen: &mut UniqueGenGen,
gplayers: &mut GPlayers,
gpieces: &mut GPieces,
- goccults: &mut GameOccults,
+ goccults: &mut GOccults,
ipieces: &IPieces,
ioccults: &IOccults,
to_recalculate: &mut ToRecalculate,
}
}
- pub fn describe(&self, ioccults: &IOccults, goccults: &GameOccults,
+ pub fn describe(&self, ioccults: &IOccults, goccults: &GOccults,
gpc: &GPiece, ipc: &IPiece) -> Html
{
self.describe_fallible(ioccults, goccults, gpc, ipc)
#[throws(IE)]
pub fn describe_fallible(&self, ioccults: &IOccults,
- goccults: &GameOccults,
+ goccults: &GOccults,
gpc: &GPiece, ipc: &IPiece) -> Html {
match self.instead(ioccults, ipc)? {
Left(y) => ipc.show(y).describe_html(gpc, goccults)?,
self.svg_piece_raw(f, gpc.face, &mut |_|Ok(()))?;
}
#[throws(IE)]
- fn describe_html(&self, gpc: &GPiece, _goccults: &GameOccults) -> Html {
+ fn describe_html(&self, gpc: &GPiece, _goccults: &GOccults) -> Html {
let r = if_chain! {
if let face = gpc.face;
if let Some(colour) = self.colours.get(face);
self.svg_face(f, gpc.face, vpid, &gpc.xdata)?;
}
#[throws(IE)]
- fn describe_html(&self, gpc: &GPiece, _goccults: &GameOccults) -> Html {
+ fn describe_html(&self, gpc: &GPiece, _goccults: &GOccults) -> Html {
self.describe_face(gpc.face)?
}
// ---------- helpful utilities ----------
#[throws(Fatal)]
-pub fn log_did_to_piece_whoby(ioccults: &IOccults, goccults: &GameOccults,
+pub fn log_did_to_piece_whoby(ioccults: &IOccults, goccults: &GOccults,
by_gpl: &GPlayer,
gpc: &GPiece, ipc: &IPiece, did: &str)
-> (Vec<LogEntry>, Option<Html>)
}
#[throws(Fatal)]
-pub fn log_did_to_piece(ioccults: &IOccults, goccults: &GameOccults,
+pub fn log_did_to_piece(ioccults: &IOccults, goccults: &GOccults,
by_gpl: &GPlayer,
gpc: &GPiece, ipc: &IPiece, did: &str)
-> Vec<LogEntry> {
pub fn consistency_check(
_gplayers: &GPlayers,
_gpieces: &GPieces,
- _goccults: &GameOccults,
+ _goccults: &GOccults,
) { }
#[cfg(debug_assertions)]
pub fn consistency_check(
gplayers: &GPlayers,
gpieces: &GPieces,
- goccults: &GameOccults,
+ goccults: &GOccults,
) {
for (_player, gpl) in gplayers.iter() {
for (piece, &vpid) in gpl.idmap.f.iter() {