let mut ig = iad.gref.lock()?;
ig.save_game_later();
- ToPermute::with(|mut to_permute| {
+ ToRecalculate::with(|mut to_recalculate| {
let r = (||{
let g = &mut *ig;
form.op.op_complex(ApiPieceOpArgs {
ioccults, gs, player, piece, ipieces, ipc,
ig: &iad.gref,
- to_permute: &mut to_permute,
+ to_recalculate: &mut to_recalculate,
})?;
Ok::<_,ApiPieceOpError>(update)
})() {
let g = &mut *ig;
let gs = &mut g.gs;
- (r, to_permute.implement(&mut gs.players,
+ (r, to_recalculate.implement(&mut gs.players,
&mut gs.pieces,
&mut gs.occults,
&g.ipieces))
#[throws(ApiPieceOpError)]
fn op(&self, a: ApiPieceOpArgs) -> PieceUpdate {
let ApiPieceOpArgs {
- gs,ioccults,player,piece,ipc,ipieces,to_permute, ..
+ gs,ioccults,player,piece,ipc,ipieces,to_recalculate, ..
} = a;
let gpl = gs.players.byid_mut(player).unwrap();
let gpc = gs.pieces.byid_mut(piece).unwrap();
// if piece is occulted, definitely repermute its occultation
// so that we don't leak which piece is which over repeated
// adjustment clicks
- to_permute.mark_dirty(occid);
+ to_recalculate.mark_dirty(occid);
};
let update=
who_by,
ipieces,
ioccults,
- to_permute,
+ to_recalculate,
piece,
vanilla,
).map_err(|e| OnlineError::from(e))?;
ig: &'igr mut Unauthorised<InstanceGuard<'ig>, InstanceName>,
update: MgmtGameInstruction,
who: &Html,
- to_permute: &mut ToPermute,
+ to_permute: &mut ToRecalculate,
)
-> Result<ExecuteGameInsnResults<'igr, 'ig> ,ME>
{
mut insns: Vec<MgmtGameInstruction>,
how: MgmtGameUpdateMode) -> MgmtResponse
{
- ToPermute::with(|mut to_permute| {
+ ToRecalculate::with(|mut to_permute| {
let r = (||{
let mut uh = UpdateHandler::from_how(how);
fn ui_operation(&self, a: ApiPieceOpArgs<'_>,
opname: &str, wrc: WhatResponseToClientOp)
-> UpdateFromOpComplex {
- let ApiPieceOpArgs { gs,player,piece,ipieces,ioccults,to_permute,.. } = a;
+ let ApiPieceOpArgs { gs,player,piece,ipieces,ioccults,to_recalculate,.. } = a;
let gen = &mut gs.gen;
let gplayers = &mut gs.players;
let gpieces = &mut gs.pieces;
xupdates.extend(
remove_occultation(&mut gen.unique_gen(),
gplayers, gpieces, goccults, ipieces, ioccults,
- to_permute, piece)
+ to_recalculate, piece)
.map_err(|ie| ApiPieceOpError::ReportViaResponse(ie.into()))?
);
}
xupdates.extend(
create_occultation(&mut gen.unique_gen(), &mut gs.max_z,
gplayers, gpieces, goccults, ipieces, ioccults,
- to_permute,
+ to_recalculate,
region, piece, views)?
);
dbgc!("creating occ done", &xupdates);
pub gs: &'a mut GameState,
pub ipieces: &'a IPieces,
pub ioccults: &'a IOccults,
- pub to_permute: &'a mut ToPermute,
+ pub to_recalculate: &'a mut ToRecalculate,
pub player: PlayerId,
pub piece: PieceId,
pub ipc: &'a IPiece,
fn ui_operation(&self, a: ApiPieceOpArgs<'_>,
opname: &str, wrc: WhatResponseToClientOp)
-> UpdateFromOpComplex {
- let ApiPieceOpArgs { gs,player,piece,ipieces,ioccults,to_permute,.. } = a;
+ let ApiPieceOpArgs { gs,player,piece,ipieces,ioccults,to_recalculate,.. } = a;
let gen = &mut gs.gen;
let gplayers = &mut gs.players;
let gpieces = &mut gs.pieces;
let xupdates =
create_occultation(&mut gen.unique_gen(), &mut gs.max_z,
gplayers, gpieces, goccults, ipieces, ioccults,
- to_permute,
+ to_recalculate,
region, piece, views)?;
dbgc!("creating occ done", &new_owner, &xupdates);
let xupdates =
remove_occultation(&mut gen.unique_gen(),
gplayers, gpieces, goccults, ipieces, ioccults,
- to_permute, piece)
+ to_recalculate, piece)
.map_err(|ie| ApiPieceOpError::ReportViaResponse(ie.into()))?;
(None, xupdates, format!("deactivated {}", &old_desc.0))
gplayers: &GPlayers, gpieces: &mut GPieces,
goccults: &mut GameOccults, ipieces: &IPieces, ioccults: &IOccults,
//
- to_permute: &mut ToPermute, piece: PieceId,
+ to_recalculate: &mut ToRecalculate, piece: PieceId,
// if no change, we return ret_vanilla()
ret_vanilla: VF,
// otherwise we use log_invisible or log_callback(who_by,old,new,desc)
= &mut |goccults, occid|
// rust-lang/rust/issues/58525
{
- to_permute.mark_dirty(occid);
+ to_recalculate.mark_dirty(occid);
goccults.occults.get_mut(occid).unwrap()
};
if let Some((occid, old_notch)) = occulteds.old {
who_by: Html,
ipieces: &IPieces,
ioccults: &IOccults,
- to_permute: &mut ToPermute,
+ to_recalculate: &mut ToRecalculate,
piece: PieceId,
(vanilla_wrc, vanilla_op, vanilla_log): PUFOS,
)
recalculate_occultation_general(
&mut gs.gen.unique_gen(),
&gs.players, &mut gs.pieces, &mut gs.occults, ipieces, ioccults,
- to_permute, piece,
+ to_recalculate, piece,
|| (vanilla_wrc, vanilla_op, vanilla_log).into(),
vec![],
|old, new, Html(show)| vec![ LogEntry { html: Html(format!(
goccults: &mut GameOccults,
ipieces: &IPieces,
ioccults: &IOccults,
- to_permute: &mut ToPermute,
+ to_recalculate: &mut ToRecalculate,
ppiece: PieceId,
updates: &mut Vec<(PieceId, PieceUpdateOps)>,
){
recalculate_occultation_general(
gen,
gplayers, gpieces, goccults, ipieces, ioccults,
- to_permute, ppiece,
+ to_recalculate, ppiece,
||(),
(), |_,_,_|(),
|puo_pp, ()|{
use super::*;
#[derive(Debug)]
- pub struct ToPermute {
+ pub struct ToRecalculate {
outdated: HashSet<OccId>,
}
#[derive(Debug)]
pub struct Implemented(());
- impl ToPermute {
+ impl ToRecalculate {
pub fn with<R, F: FnOnce(Self) -> (R, Implemented)>(f: F) -> R {
- let to_permute = ToPermute { outdated: default() };
- let (r, Implemented(())) = f(to_permute);
+ let to_recalculate = ToRecalculate { outdated: default() };
+ let (r, Implemented(())) = f(to_recalculate);
r
}
pub fn mark_dirty(&mut self, occid: OccId) { self.outdated.insert(occid); }
}
}
-pub use recompute::ToPermute;
+pub use recompute::ToRecalculate;
#[must_use]
pub struct NascentOccultation(Occultation);
goccults: &mut GameOccults,
ipieces: &IPieces,
ioccults: &IOccults,
- to_permute: &mut ToPermute,
+ to_recalculate: &mut ToRecalculate,
region: Area,
occulter: PieceId,
views: OccultationViews,
recalculate_occultation_ofmany(gen,
gplayers, gpieces, goccults,
ipieces, ioccults,
- to_permute,
+ to_recalculate,
ppiece, &mut updates)?;
}
goccults: &mut GameOccults,
ipieces: &IPieces,
ioccults: &IOccults,
- to_permute: &mut ToPermute,
+ to_recalculate: &mut ToRecalculate,
occulter: PieceId,
) -> Vec<(PieceId, PieceUpdateOps)> {
let mut aggerr = AggregatedIE::new();
recalculate_occultation_ofmany(gen,
gplayers, gpieces, goccults,
ipieces, ioccults,
- to_permute,
+ to_recalculate,
ppiece, &mut updates)
.unwrap_or_else(|e| {
aggerr.record(e);