common: gameplay_modes: rename internal field on ModeBuilder
This commit is contained in:
@ -342,7 +342,7 @@ impl Updatable<ModesUpdate> for Modes{
|
|||||||
|
|
||||||
struct ModeBuilder{
|
struct ModeBuilder{
|
||||||
mode:Mode,
|
mode:Mode,
|
||||||
final_stage_id_from_builder_stage_id:HashMap<StageId,StageId>,
|
stage_id_map:HashMap<StageId,StageId>,
|
||||||
}
|
}
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub struct ModesBuilder{
|
pub struct ModesBuilder{
|
||||||
@ -357,12 +357,12 @@ impl ModesBuilder{
|
|||||||
let mut unique_modes:Vec<(ModeId,Mode)>
|
let mut unique_modes:Vec<(ModeId,Mode)>
|
||||||
=self.modes.into_iter().collect();
|
=self.modes.into_iter().collect();
|
||||||
unique_modes.sort_by_key(|&(mode_id,_)|mode_id);
|
unique_modes.sort_by_key(|&(mode_id,_)|mode_id);
|
||||||
let (mut modes,final_mode_id_from_builder_mode_id):(Vec<ModeBuilder>,HashMap<ModeId,ModeId>)
|
let (mut modes,mode_id_map):(Vec<ModeBuilder>,HashMap<ModeId,ModeId>)
|
||||||
=unique_modes.into_iter().enumerate()
|
=unique_modes.into_iter().enumerate()
|
||||||
.map(|(final_mode_id,(builder_mode_id,mut mode))|{
|
.map(|(final_mode_id,(builder_mode_id,mut mode))|{
|
||||||
(
|
(
|
||||||
ModeBuilder{
|
ModeBuilder{
|
||||||
final_stage_id_from_builder_stage_id:self.stages.remove(&builder_mode_id).map_or_else(||HashMap::new(),|stages|{
|
stage_id_map:self.stages.remove(&builder_mode_id).map_or_else(||HashMap::new(),|stages|{
|
||||||
let mut unique_stages:Vec<(StageId,Stage)>
|
let mut unique_stages:Vec<(StageId,Stage)>
|
||||||
=stages.into_iter().collect();
|
=stages.into_iter().collect();
|
||||||
unique_stages.sort_by_key(|&(StageId(stage_id),_)|stage_id);
|
unique_stages.sort_by_key(|&(StageId(stage_id),_)|stage_id);
|
||||||
@ -383,9 +383,9 @@ impl ModesBuilder{
|
|||||||
//TODO: failure messages or errors or something
|
//TODO: failure messages or errors or something
|
||||||
//push stage updates
|
//push stage updates
|
||||||
for (builder_mode_id,builder_stage_id,stage_update) in self.stage_updates{
|
for (builder_mode_id,builder_stage_id,stage_update) in self.stage_updates{
|
||||||
if let Some(final_mode_id)=final_mode_id_from_builder_mode_id.get(&builder_mode_id){
|
if let Some(final_mode_id)=mode_id_map.get(&builder_mode_id){
|
||||||
if let Some(mode)=modes.get_mut(final_mode_id.get() as usize){
|
if let Some(mode)=modes.get_mut(final_mode_id.get() as usize){
|
||||||
if let Some(&final_stage_id)=mode.final_stage_id_from_builder_stage_id.get(&builder_stage_id){
|
if let Some(&final_stage_id)=mode.stage_id_map.get(&builder_stage_id){
|
||||||
if let Some(stage)=mode.mode.get_stage_mut(final_stage_id){
|
if let Some(stage)=mode.mode.get_stage_mut(final_stage_id){
|
||||||
stage.update(stage_update);
|
stage.update(stage_update);
|
||||||
}
|
}
|
||||||
@ -395,7 +395,7 @@ impl ModesBuilder{
|
|||||||
}
|
}
|
||||||
//push mode updates
|
//push mode updates
|
||||||
for (builder_mode_id,mut mode_update) in self.mode_updates{
|
for (builder_mode_id,mut mode_update) in self.mode_updates{
|
||||||
if let Some(final_mode_id)=final_mode_id_from_builder_mode_id.get(&builder_mode_id){
|
if let Some(final_mode_id)=mode_id_map.get(&builder_mode_id){
|
||||||
if let Some(mode)=modes.get_mut(final_mode_id.get() as usize){
|
if let Some(mode)=modes.get_mut(final_mode_id.get() as usize){
|
||||||
//map stage id on stage elements
|
//map stage id on stage elements
|
||||||
mode_update.map_stage_element_ids(|stage_id|
|
mode_update.map_stage_element_ids(|stage_id|
|
||||||
@ -405,7 +405,7 @@ impl ModesBuilder{
|
|||||||
// .value().copied().unwrap_or(StageId::FIRST)
|
// .value().copied().unwrap_or(StageId::FIRST)
|
||||||
(0..=stage_id.get()).rev().find_map(|builder_stage_id|
|
(0..=stage_id.get()).rev().find_map(|builder_stage_id|
|
||||||
//map the stage element to that stage
|
//map the stage element to that stage
|
||||||
mode.final_stage_id_from_builder_stage_id.get(&StageId::new(builder_stage_id)).copied()
|
mode.stage_id_map.get(&StageId::new(builder_stage_id)).copied()
|
||||||
).unwrap_or(StageId::FIRST)
|
).unwrap_or(StageId::FIRST)
|
||||||
);
|
);
|
||||||
mode.mode.update(mode_update);
|
mode.mode.update(mode_update);
|
||||||
|
Reference in New Issue
Block a user