diff --git a/lib/common/src/gameplay_modes.rs b/lib/common/src/gameplay_modes.rs index b9bdb24c5..50cb451bf 100644 --- a/lib/common/src/gameplay_modes.rs +++ b/lib/common/src/gameplay_modes.rs @@ -199,17 +199,17 @@ impl Mode{ pub fn push_stage(&mut self,stage:Stage){ self.stages.push(stage) } - pub fn get_stage_mut(&mut self,stage:StageId)->Option<&mut Stage>{ - self.stages.get_mut(stage.0 as usize) + pub fn get_stage_mut(&mut self,StageId(stage_id):StageId)->Option<&mut Stage>{ + self.stages.get_mut(stage_id as usize) } - pub fn get_spawn_model_id(&self,stage:StageId)->Option<ModelId>{ - self.stages.get(stage.0 as usize).map(|s|s.spawn) + pub fn get_spawn_model_id(&self,StageId(stage_id):StageId)->Option<ModelId>{ + self.stages.get(stage_id as usize).map(|s|s.spawn) } pub fn get_zone(&self,model_id:ModelId)->Option<&Zone>{ self.zones.get(&model_id) } - pub fn get_stage(&self,stage_id:StageId)->Option<&Stage>{ - self.stages.get(stage_id.0 as usize) + pub fn get_stage(&self,StageId(stage_id):StageId)->Option<&Stage>{ + self.stages.get(stage_id as usize) } pub fn get_element(&self,model_id:ModelId)->Option<&StageElement>{ self.elements.get(&model_id) @@ -261,8 +261,8 @@ impl Modes{ pub fn push_mode(&mut self,mode:Mode){ self.modes.push(mode) } - pub fn get_mode(&self,mode:ModeId)->Option<&Mode>{ - self.modes.get(mode.0 as usize) + pub fn get_mode(&self,ModeId(mode_id):ModeId)->Option<&Mode>{ + self.modes.get(mode_id as usize) } } @@ -365,7 +365,7 @@ impl ModesBuilder{ final_stage_id_from_builder_stage_id:self.stages.remove(&builder_mode_id).map_or_else(||HashMap::new(),|stages|{ let mut unique_stages:Vec<(StageId,Stage)> =stages.into_iter().collect(); - unique_stages.sort_by(|a,b|a.0.cmp(&b.0)); + unique_stages.sort_by_key(|&(StageId(stage_id),_)|stage_id); unique_stages.into_iter().enumerate() .map(|(final_stage_id,(builder_stage_id,stage))|{ mode.push_stage(stage);