let mut uses = vec![];
let mut alldefs = vec![];
- for (gpid, pr) in &ig.gs.pieces {
+
+ let mut pieces : Vec<_> = ig.gs.pieces.iter().collect();
+
+ pieces.sort_by_key(|(_,pr)| !pr.raised.0);
+
+ for (gpid, pr) in pieces {
let pri = PieceRenderInstructions {
id : make_pieceid_visible(gpid),
face : pr.face,
pub p : Box<dyn Piece>,
pub face : FaceId,
pub held : Option<PlayerId>,
+ pub raised : Generation,
pub gen : Generation,
pub lastclient : ClientId,
pub gen_before_lastclient : Generation,
pub fn xxx_gamestate_init() -> GameState {
let mut pieces = DenseSlotMap::with_key();
+ let mut gen = Generation(0);
for (pos, p) in xxx_make_pieces() {
let pr = PieceRecord {
pos, p,
face : 0.into(),
held : None,
lastclient : Default::default(),
- gen : Generation(0),
+ raised: Generation(0),
+ gen,
gen_before_lastclient : Generation(0),
};
+ gen.increment();
pieces.insert(pr);
}
- GameState { pieces, gen : Generation(1), players : Default::default(),
+ GameState { pieces, gen, players : Default::default(),
log : Default::default(), }
}