gen: gs.gen,
pos, p, face,
};
+ if let (_, true) = pc.pos.clamped(gs.table_size) {
+ throw!(SpecError::PosOffTable);
+ }
let piece = gs.pieces.insert(pc);
updates.push((piece, PieceUpdateOp::Insert(())));
pos[0] += posd[0];
UnsupportedColourSpec,
FaceNotFound,
InternalError(String),
+ PosOffTable,
}
display_as_debug!{SpecError}
lens: &dyn Lens) -> PreparedUpdateEntry {
let gs = &mut self.g.gs;
- // xxx enforce pos is within range, everywhere
-
let (update, piece) = match gs.pieces.byid_mut(piece) {
Ok(pc) => {
gs.max_z.update_max(pc.zlevel.z);