pub struct Instance {
pub name: Arc<InstanceName>,
pub gs: GameState,
- pub ipieces: PiecesLoaded,
+ pub ipieces: IPieces,
pub clients: DenseSlotMap<ClientId, Client>,
pub iplayers: SecondarySlotMap<PlayerId, PlayerRecord>,
pub tokens_players: TokenRegistry<PlayerId>,
#[derive(Debug,Serialize,Deserialize)]
#[serde(transparent)]
-pub struct PiecesLoaded(ActualPiecesLoaded);
-pub type ActualPiecesLoaded = SecondarySlotMap<PieceId, Box<dyn Piece>>;
+pub struct IPieces(ActualIPieces);
+pub type ActualIPieces = SecondarySlotMap<PieceId, Box<dyn Piece>>;
#[derive(Copy,Clone,Debug)]
pub struct ModifyingPieces(());
#[derive(Debug,Serialize,Deserialize,Default)]
#[serde(transparent)]
-pub struct Pieces(pub(in crate::global) ActualPieces);
-type ActualPieces = DenseSlotMap<PieceId, PieceState>;
+pub struct GPieces(pub(in crate::global) ActualGPieces);
+type ActualGPieces = DenseSlotMap<PieceId, PieceState>;
#[derive(Debug)]
pub struct Client {
let g = Instance {
name: name.clone(),
gs, acl,
- ipieces: PiecesLoaded(default()),
+ ipieces: IPieces(default()),
clients: default(),
iplayers: default(),
tokens_players: default(),
fn load_game(accounts: &AccountsGuard,
games: &mut GamesGuard,
name: InstanceName) -> Option<InstanceRef> {
- let InstanceSaveAccesses::<String,ActualPiecesLoaded>
+ let InstanceSaveAccesses::<String,ActualIPieces>
{ tokens_players, mut ipieces, mut aplayers, acl, links }
= match Self::load_something(&name, "a-") {
Ok(data) => data,
let g = Instance {
gs, iplayers, links,
acl: acl.into(),
- ipieces: PiecesLoaded(ipieces),
+ ipieces: IPieces(ipieces),
name: name.clone(),
clients: default(),
tokens_clients: default(),
// ========== instance pieces data access ==========
-impl PiecesLoaded {
+impl IPieces {
pub fn get(&self, piece: PieceId) -> Option<&Box<dyn Piece>> {
self.0.get(piece)
}
- pub fn as_mut(&mut self, _: ModifyingPieces) -> &mut ActualPiecesLoaded {
+ pub fn as_mut(&mut self, _: ModifyingPieces) -> &mut ActualIPieces {
&mut self.0
}
}
// ---------- gamestate pieces table ----------
// No DerefMut to make sure we send updates, save, etc.
-deref_to_field!{Pieces, ActualPieces, 0}
+deref_to_field!{GPieces, ActualGPieces, 0}
-impl Pieces {
+impl GPieces {
pub fn get_mut(&mut self, piece: PieceId) -> Option<&mut PieceState> {
self.0.get_mut(piece)
}
pub fn values_mut(&mut self) -> sm::ValuesMut<PieceId, PieceState> {
self.0.values_mut()
}
- pub fn as_mut(&mut self, _: ModifyingPieces) -> &mut ActualPieces {
+ pub fn as_mut(&mut self, _: ModifyingPieces) -> &mut ActualGPieces {
&mut self.0
}
}
-impl ById for Pieces {
+impl ById for GPieces {
type Id = PieceId;
type Entry = PieceState;
type Error = OnlineError;
type IntoIter = sm::Iter<'p, PieceId, PieceState>;
fn into_iter(self) -> Self::IntoIter { (&self.0).into_iter() }
}*/
-impl<'p> IntoIterator for &'p mut Pieces {
+impl<'p> IntoIterator for &'p mut GPieces {
type Item = (PieceId, &'p mut PieceState);
type IntoIter = sm::IterMut<'p, PieceId, PieceState>;
fn into_iter(self) -> Self::IntoIter { (&mut self.0).into_iter() }
RF: FnOnce(PieceUpdateOps_PerPlayer, LD) -> RD, // ret_callback
>(
gs: &mut GameState,
- ipieces: &PiecesLoaded,
+ ipieces: &IPieces,
piece: PieceId,
// if no change, we return ret_vanilla(log_visible)
log_visible: LD,
pub fn recalculate_occultation_piece(
gs: &mut GameState,
who_by: Html,
- ipieces: &PiecesLoaded,
+ ipieces: &IPieces,
piece: PieceId,
(vanilla_wrc, vanilla_op, vanilla_log): PUFOS,
)
#[throws(IE)]
fn recalculate_occultation_ofmany(
gs: &mut GameState,
- ipieces: &PiecesLoaded,
+ ipieces: &IPieces,
ppiece: PieceId,
updates: &mut Vec<(PieceId, PieceUpdateOps)>,
){
#[throws(OnlineError)]
pub fn create_occultation(
gs: &mut GameState,
- ipieces: &PiecesLoaded,
+ ipieces: &IPieces,
region: Area,
occulter: PieceId,
views: OccultationViews,
#[throws(IE)]
pub fn remove_occultation(
gs: &mut GameState,
- ipieces: &PiecesLoaded,
+ ipieces: &IPieces,
occulter: PieceId,
) -> Vec<(PieceId, PieceUpdateOps)> {
let mut aggerr = AggregatedIE::new();