protected virtual void Load(OldSaveableData o) { Penalties = o.Penalties ?? true; JumpStartPenalty = o.JumpStartPenalty ?? Game.JumpStartPenaltyType.None; LapsNumber = o.LapsNumber ?? 2; try { RaceGridViewModel.LoadingFromOutside = true; switch (o.GridTypeId) { case "same_car": RaceGridViewModel.Mode = BuiltInGridMode.SameCar; RaceGridViewModel.FilterValue = null; break; case "same_group": RaceGridViewModel.Mode = BuiltInGridMode.CandidatesSameGroup; RaceGridViewModel.FilterValue = null; break; case "manual": RaceGridViewModel.Mode = BuiltInGridMode.CandidatesManual; RaceGridViewModel.FilterValue = null; RaceGridViewModel.NonfilteredList.ReplaceEverythingBy( o.ManualList?.Select(x => CarsManager.Instance.GetById(x)).NonNull().Select(x => new RaceGridEntry(x)) ?? new RaceGridEntry[0]); break; case "filtered_by_": RaceGridViewModel.Mode = BuiltInGridMode.CandidatesFiltered; RaceGridViewModel.FilterValue = o.OpponentsCarsFilter; break; default: RaceGridViewModel.Mode = RaceGridViewModel.Modes.GetByIdOrDefault <IRaceGridMode>(o.GridTypeId) ?? BuiltInGridMode.SameCar; RaceGridViewModel.FilterValue = o.OpponentsCarsFilter; break; } RaceGridViewModel.ShuffleCandidates = true; RaceGridViewModel.AiLevelFixed = o.AiLevelFixed ?? true; RaceGridViewModel.AiLevelArrangeRandom = o.AiLevelArrangeRandomly.HasValue ? (o.AiLevelArrangeRandomly.Value ? 1d : 0d) : 0.2; RaceGridViewModel.AiLevelArrangeReverse = o.AiLevelArrangeReverse ?? true; RaceGridViewModel.AiLevel = o.AiLevel ?? 92; RaceGridViewModel.AiLevelMin = o.AiLevelMin ?? 92; RaceGridViewModel.OpponentsNumber = o.OpponentsNumber ?? 3; RaceGridViewModel.StartingPosition = o.StartingPosition ?? 4; RaceGridViewModel.FinishLoading(); } finally { RaceGridViewModel.LoadingFromOutside = false; } }
protected virtual void Load(OldSaveableData o) { Penalties = o.Penalties ?? true; JumpStartPenalty = o.JumpStartPenalty ?? Game.JumpStartPenaltyType.None; LapsNumber = o.LapsNumber ?? 2; try { RaceGridViewModel.ExternalIsLoading = true; switch (o.GridTypeId) { case "same_car": RaceGridViewModel.Mode = BuiltInGridMode.SameCar; RaceGridViewModel.FilterValue = null; break; case "same_group": RaceGridViewModel.Mode = BuiltInGridMode.CandidatesSameGroup; RaceGridViewModel.FilterValue = null; break; case "manual": RaceGridViewModel.Mode = BuiltInGridMode.CandidatesManual; RaceGridViewModel.FilterValue = null; RaceGridViewModel.NonfilteredList.ReplaceEverythingBy( o.ManualList?.Select(x => CarsManager.Instance.GetById(x)).NonNull().Select(x => new RaceGridEntry(x)) ?? new RaceGridEntry[0]); break; case "filtered_by_": RaceGridViewModel.Mode = BuiltInGridMode.CandidatesFiltered; RaceGridViewModel.FilterValue = o.OpponentsCarsFilter; break; default: RaceGridViewModel.Mode = RaceGridViewModel.Modes.GetByIdOrDefault<IRaceGridMode>(o.GridTypeId) ?? BuiltInGridMode.SameCar; RaceGridViewModel.FilterValue = o.OpponentsCarsFilter; break; } RaceGridViewModel.ShuffleCandidates = true; RaceGridViewModel.AiLevelFixed = o.AiLevelFixed ?? true; RaceGridViewModel.AiLevelArrangeRandom = o.AiLevelArrangeRandomly.HasValue ? (o.AiLevelArrangeRandomly.Value ? 1d : 0d) : 0.2; RaceGridViewModel.AiLevelArrangeReverse = o.AiLevelArrangeReverse ?? true; RaceGridViewModel.AiLevel = o.AiLevel ?? 92; RaceGridViewModel.AiLevelMin = o.AiLevelMin ?? 92; RaceGridViewModel.OpponentsNumber = o.OpponentsNumber ?? 3; RaceGridViewModel.StartingPosition = o.StartingPosition ?? 4; RaceGridViewModel.FinishLoading(); } finally { RaceGridViewModel.ExternalIsLoading = false; } }