private static List <RegionConnection> ParseRegionConnections(IniParser parser) { var result = new List <RegionConnection>(); if (parser.SageGame == SageGame.Bfme) { var regions = parser.ParseAssetReferenceArray(); foreach (var region in regions) { result.Add(new RegionConnection(region)); } return(result); } parser.GoToNextLine(); //skip '=' and go to next line var token = parser.PeekNextTokenOptional(); while (token.HasValue && token.Value.Text == "Connection") { result.Add(RegionConnection.Parse(parser)); parser.GoToNextLine(); token = parser.PeekNextTokenOptional(); } return(result); }
internal static ChallengeGenerals Parse(IniParser parser) { var result = new ChallengeGenerals(); while (true) { parser.GoToNextLine(); var token = parser.GetNextTokenOptional(); if (token == null) { continue; } else if (token.Value.Text.ToUpperInvariant() == IniParser.EndToken) { break; } else { var personaName = token.Value.Text; result.Personas[personaName] = GeneralPersona.Parse(parser); } } return(result); }