private List <Build> GetSortedBuildsByMatchup(List <Build> builds, SortBuildsOrder sortInOrder) { List <Build> sortedBuilds = new List <Build>(); switch (sortInOrder) { case SortBuildsOrder.T_P_Z: sortedBuilds.AddRange(GetBuildsByMatchup(builds, TERRAN)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, PROTOSS)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, ZERG)); break; case SortBuildsOrder.T_Z_P: sortedBuilds.AddRange(GetBuildsByMatchup(builds, TERRAN)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, ZERG)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, PROTOSS)); break; case SortBuildsOrder.P_T_Z: sortedBuilds.AddRange(GetBuildsByMatchup(builds, PROTOSS)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, TERRAN)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, ZERG)); break; case SortBuildsOrder.P_Z_T: sortedBuilds.AddRange(GetBuildsByMatchup(builds, PROTOSS)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, ZERG)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, TERRAN)); break; case SortBuildsOrder.Z_T_P: sortedBuilds.AddRange(GetBuildsByMatchup(builds, ZERG)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, TERRAN)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, PROTOSS)); break; case SortBuildsOrder.Z_P_T: sortedBuilds.AddRange(GetBuildsByMatchup(builds, ZERG)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, PROTOSS)); sortedBuilds.AddRange(GetBuildsByMatchup(builds, TERRAN)); break; } return(sortedBuilds); }
/******************************** ********************************/ public MainWindow() { imageLookupTable = new Dictionary <string, int>(); InitImageLookupTable.Init(imageLookupTable); LoadedBuildOrders = new List <Build>(); SelectedBuild = null; bFormattingEnabled = true; bBuildListSortedByRace = false; bBuildListSortedByMatchup = false; SortByRaceIndex = (SortBuildsOrder)0; SortByMatchupIndex = (SortBuildsOrder)0; SplashWindow splashScreen = new SplashWindow(); Application.Run(splashScreen); InitializeComponent(); }
/************************************************************************************************************ * * Sort Builds * ************************************************************************************************************/ private void BuildList_ColumnClick(object sender, ColumnClickEventArgs e) { const int RACE_COL = 1, MATCH_COL = 2; List <Build> buildsSorted; switch (e.Column) { /** Sort Build List By Race **/ case RACE_COL: bBuildListSortedByRace = true; bBuildListSortedByMatchup = false; buildsSorted = GetSortedBuildsByRace(LoadedBuildOrders, SortByRaceIndex); SortByRaceIndex += 1; if (SortByRaceIndex > SortBuildsOrder.Z_T_P) { SortByRaceIndex = SortBuildsOrder.T_P_Z; } PopulateBuildList(buildsSorted); ReSelectBuildInList(); break; /** Sort Build List By Matchup **/ case MATCH_COL: bBuildListSortedByMatchup = true; bBuildListSortedByRace = false; buildsSorted = GetSortedBuildsByMatchup(LoadedBuildOrders, SortByMatchupIndex); SortByMatchupIndex += 1; if (SortByMatchupIndex > SortBuildsOrder.Z_T_P) { SortByMatchupIndex = SortBuildsOrder.T_P_Z; } PopulateBuildList(buildsSorted); ReSelectBuildInList(); break; } }