private void FixSplits() { int index = 1; bool changed = false; if (Settings.Autosplits.Count == 0) { Settings.Autosplits.Add(new Split() { Name = "Auto Start", Type = SplitType.GameStart }); changed = true; } else { Settings.Autosplits[0].Name = "Auto Start"; } foreach (ISegment segment in State.Run) { if (index < Settings.Autosplits.Count) { Split split = Settings.Autosplits[index++]; if (split.Name != segment.Name) { split.Name = segment.Name; changed = true; } } else { index++; if (State.Run.Count == 4) { Settings.Autosplits.Add(new Split() { Name = segment.Name, Type = SplitType.Album, Value = "Any" }); } else { Settings.Autosplits.Add(new Split() { Name = segment.Name, Type = SplitType.Track, Value = "Any" }); } changed = true; } } while (index < Settings.Autosplits.Count) { Settings.Autosplits.RemoveAt(Settings.Autosplits.Count - 1); changed = true; } if (changed) { flowMain.SuspendLayout(); flowMain.Controls.Clear(); foreach (Split split in Settings.Autosplits) { UserSplitSettings setting = new UserSplitSettings(); setting.UserSplit = split; setting.UpdateControls(true); flowMain.Controls.Add(setting); } flowMain.ResumeLayout(true); } }
private void CheckTrack(Split split) { SplitTrack track = Utility.GetEnumValue <SplitTrack>(split.Value); switch (track) { case SplitTrack.Any: CheckAlbumTrack(Album.Any, -1); break; case SplitTrack.Album1_1Intro: CheckAlbumTrack(Album.Subject4, 0); break; case SplitTrack.Album1_2HeatingUp: CheckAlbumTrack(Album.Subject4, 1); break; case SplitTrack.Album1_3KnockKnock: CheckAlbumTrack(Album.Subject4, 2); break; case SplitTrack.Album1_4FalseAlarm: CheckAlbumTrack(Album.Subject4, 3); break; case SplitTrack.Album1_5PowerDown: CheckAlbumTrack(Album.Subject4, 4); break; case SplitTrack.Album1_6LongShadows: CheckAlbumTrack(Album.Subject4, 5); break; case SplitTrack.Album1_7Ding: CheckAlbumTrack(Album.Subject4, 6); break; case SplitTrack.Album1_8BlownOut: CheckAlbumTrack(Album.Subject4, 7); break; case SplitTrack.Album2_1ToTheTop: CheckAlbumTrack(Album.HighRise, 0); break; case SplitTrack.Album2_2FullSwing: CheckAlbumTrack(Album.HighRise, 1); break; case SplitTrack.Album2_3AimHigh: CheckAlbumTrack(Album.HighRise, 2); break; case SplitTrack.Album2_4OverIt: CheckAlbumTrack(Album.HighRise, 3); break; case SplitTrack.Album2_5ConcreteJungle: CheckAlbumTrack(Album.HighRise, 4); break; case SplitTrack.Album2_6CircleBack: CheckAlbumTrack(Album.HighRise, 5); break; case SplitTrack.Album2_7LowPressure: CheckAlbumTrack(Album.HighRise, 6); break; case SplitTrack.Album2_8DownAndOut: CheckAlbumTrack(Album.HighRise, 7); break; case SplitTrack.Album3_1Contact: CheckAlbumTrack(Album.Fugue, 0); break; case SplitTrack.Album3_2Crossfire: CheckAlbumTrack(Album.Fugue, 1); break; case SplitTrack.Album3_3RedAlert: CheckAlbumTrack(Album.Fugue, 2); break; case SplitTrack.Album3_4Incoming: CheckAlbumTrack(Album.Fugue, 3); break; case SplitTrack.Album3_5FireInTheHole: CheckAlbumTrack(Album.Fugue, 4); break; case SplitTrack.Album3_6NoMansLand: CheckAlbumTrack(Album.Fugue, 5); break; case SplitTrack.Album3_7Fury: CheckAlbumTrack(Album.Fugue, 6); break; case SplitTrack.Album3_8BurnOut: CheckAlbumTrack(Album.Fugue, 7); break; case SplitTrack.Album4_1HoldFast: CheckAlbumTrack(Album.Adrift, 0); break; case SplitTrack.Album4_2RoughSeas: CheckAlbumTrack(Album.Adrift, 1); break; case SplitTrack.Album4_3NoQuarter: CheckAlbumTrack(Album.Adrift, 2); break; case SplitTrack.Album4_4HitTheDeck: CheckAlbumTrack(Album.Adrift, 3); break; case SplitTrack.Album4_5AbandonShip: CheckAlbumTrack(Album.Adrift, 4); break; case SplitTrack.Album4_6Wreck: CheckAlbumTrack(Album.Adrift, 5); break; case SplitTrack.Album4_7Outro: CheckAlbumTrack(Album.Adrift, 6); break; } }