diff --git a/lib/bsp_loader/src/bsp.rs b/lib/bsp_loader/src/bsp.rs index 1871ccc..9c7b11b 100644 --- a/lib/bsp_loader/src/bsp.rs +++ b/lib/bsp_loader/src/bsp.rs @@ -576,15 +576,18 @@ impl PartialMap2<'_>{ })); //calculate teleports + let first_stage_spawn_model_id=self.first_stage.as_ref().unwrap().spawn(); let mut teleport_destinations=HashMap::new(); let stages={ let mut stages=self.teleport_destinations.iter().map(|(&target,&model_id)|(target,model_id)).collect::<Vec<_>>(); stages.sort_by_key(|&(target,_)|target); - stages.into_iter().enumerate().map(|(stage_id,(target,model_id))|{ - let stage_id=modes::StageId::new(stage_id as u32); - teleport_destinations.insert(target,stage_id); - Stage::empty(model_id) - }).collect() + self.first_stage.into_iter().chain( + stages.into_iter().enumerate().map(|(stage_id,(target,model_id))|{ + let stage_id=modes::StageId::new(1+stage_id as u32); + teleport_destinations.insert(target,stage_id); + Stage::empty(model_id) + }) + ).collect() }; let mut elements=HashMap::new(); for (teleport_model,target) in self.teleports{ @@ -605,7 +608,7 @@ impl PartialMap2<'_>{ } let main_mode=NormalizedMode::new(Mode::new( strafesnet_common::gameplay_style::StyleModifiers::default(), - self.first_stage.unwrap().spawn(), + first_stage_spawn_model_id, HashMap::new(), stages, elements,