pull out named variables in checkpoint_check

This commit is contained in:
Quaternions 2025-01-07 06:00:48 -08:00
parent 47c9b77b00
commit 3797408bc8

View File

@ -1494,10 +1494,12 @@ fn checkpoint_check(
stage_element:&gameplay_modes::StageElement, stage_element:&gameplay_modes::StageElement,
mode:&gameplay_modes::Mode, mode:&gameplay_modes::Mode,
)->CheckpointCheckOutcome{ )->CheckpointCheckOutcome{
if mode_state.get_stage_id()<stage_element.stage_id(){ let current_stage_id=mode_state.get_stage_id();
let target_stage_id=stage_element.stage_id();
if current_stage_id<target_stage_id{
//checkpoint check //checkpoint check
//check if current stage is complete //check if current stage is complete
if let Some(current_stage)=mode.get_stage(mode_state.get_stage_id()){ if let Some(current_stage)=mode.get_stage(current_stage_id){
if !current_stage.is_complete(mode_state.ordered_checkpoint_count(),mode_state.unordered_checkpoint_count()){ if !current_stage.is_complete(mode_state.ordered_checkpoint_count(),mode_state.unordered_checkpoint_count()){
return CheckpointCheckOutcome{ return CheckpointCheckOutcome{
set_stage:None, set_stage:None,
@ -1506,7 +1508,7 @@ fn checkpoint_check(
} }
} }
//check if all between stages have no checkpoints required to pass them //check if all between stages have no checkpoints required to pass them
for stage_id in mode_state.get_stage_id().get()+1..stage_element.stage_id().get(){ for stage_id in current_stage_id.get()+1..target_stage_id.get(){
let stage_id=StageId::new(stage_id); let stage_id=StageId::new(stage_id);
//check if none of the between stages has checkpoints, if they do teleport back to that stage //check if none of the between stages has checkpoints, if they do teleport back to that stage
match mode.get_stage(stage_id){ match mode.get_stage(stage_id){
@ -1525,13 +1527,13 @@ fn checkpoint_check(
}; };
//notably you do not get teleported for touching ordered checkpoints in the wrong order within the same stage. //notably you do not get teleported for touching ordered checkpoints in the wrong order within the same stage.
return CheckpointCheckOutcome{ return CheckpointCheckOutcome{
set_stage:Some(stage_element.stage_id()), set_stage:Some(target_stage_id),
teleport_to_model:None, teleport_to_model:None,
}; };
}else if stage_element.force(){ }else if stage_element.force(){
//forced stage_element will set the stage_id even if the stage has already been passed //forced stage_element will set the stage_id even if the stage has already been passed
return CheckpointCheckOutcome{ return CheckpointCheckOutcome{
set_stage:Some(stage_element.stage_id()), set_stage:Some(target_stage_id),
teleport_to_model:None, teleport_to_model:None,
}; };
} }