PRoConEvents.MULTIbalancer.GetSimplifiedModes C# (CSharp) Method

GetSimplifiedModes() private method

private GetSimplifiedModes ( ) : List
return List
        private List<String> GetSimplifiedModes()
        {
            List<String> r = new List<String>();

            if (fModeToSimple.Count < 1) {
            List<CMap> raw = this.GetMapDefines();
            foreach (CMap m in raw) {
            String simple = null;
            if (fGameVersion == GameVersion.BF3) {
                switch (m.GameMode) {
                    case "Conquest Large":
                    case "Assault64":
                        simple = "Conquest Large";
                        break;
                    case "Conquest Small": // Fix for Issue #34
                    case "Assault":
                    case "Assault #2":
                    case "Conquest Domination":
                    case "Scavenger":
                        simple = "Conq Small, Dom, Scav";
                        break;
                    case "TDM":
                    case "TDM Close Quarters":
                        simple = "Team Deathmatch";
                        break;
                    case "Tank Superiority":
                    case "Air Superiority":
                        simple = "Superiority";
                        break;
                    case "Rush":
                    case "CTF":
                    case "Squad Deathmatch":
                    case "Gun Master":
                    case "Squad Rush":
                        simple = m.GameMode;
                        break;
                    default:
                        simple = "Unknown or New Mode";
                        break;
                }
            } else if (fGameVersion == GameVersion.BF4) {
                switch (m.GameMode) {
                    case "Conquest Large":
                    case "Conquest Small":
                    case "Domination":
                    case "Defuse":
                    case "Obliteration":
                    case "Squad Obliteration":
                    case "Rush":
                    case "Squad Deathmatch":
                    case "Team Deathmatch":
                    case "CTF":
                    case "Gun Master":
                        simple = m.GameMode;
                        break;
                    case "Air Superiority":
                        simple = "Superiority";
                        break;
                    case "Carrier Assault Large":
                        simple = "NS Carrier Large";
                        break;
                    case "Carrier Assault Small":
                        simple = "NS Carrier Small";
                        break;
                    case "Chain Link":
                        simple = "DT Chain Link";
                        break;
                    default:
                        simple = "Unknown or New Mode";
                        break;
                }
            } else if (fGameVersion == GameVersion.BFH) {
                switch (m.GameMode) {
                    case "Blood Money":
                    case "Conquest Large":
                    case "Conquest Small":
                    case "Crosshair":
                    case "Heist":
                    case "Hotwire":
                    case "Rescue":
                    case "Team Deathmatch":
                    case "Bounty Hunter":
                        simple = m.GameMode;
                        break;
                    default:
                        simple = "Unknown or New Mode";
                        break;
                }
            } else {
                simple = "Unknown or New Mode";
            }
            if (fModeToSimple.ContainsKey(m.PlayList)) {
                if (fModeToSimple[m.PlayList] != simple) {
                    ConsoleWarn("For mode " + m.PlayList + " old value " + fModeToSimple[m.PlayList] + " != new value " + simple);
                }
            } else {
                fModeToSimple[m.PlayList] = simple;
            }
            }
            }

            bool last = false;
            foreach (KeyValuePair<String,String> p in fModeToSimple) {
            if (r.Contains(p.Value)) continue;
            if (p.Value == "Unknown or New Mode") { last = true; continue; }
            r.Add(p.Value); // collect up all the simple GameMode names
            }
            if (last) r.Add("Unknown or New Mode"); // make sure this is last

            return r;
        }
MULTIbalancer