Changeset - 19b1680b1a64
[Not reviewed]
default
0 1 0
Jason Maltzen - 5 years ago 2019-11-02 11:33:19
jason@hiddenachievement.com
Handle a few profile load errors better.
1 file changed with 25 insertions and 15 deletions:
0 comments (0 inline, 0 general)
ReagentManager.cs
Show inline comments
...
 
@@ -106,46 +106,58 @@ namespace DesertPaintLab
 
		{	
 
			Match match;
 
			string line;
 
			using (StreamReader reader = new StreamReader(file))
 
			{
 
				while ((line = reader.ReadLine()) != null) 
 
                {
 
					match = reagentRegex.Match(line); 
 
					if (match.Success)
 
					{
 
						string ppname = match.Groups["name"].Value;
 
                        string name = null;
 
                        nameLookup.TryGetValue(ppname, out name);
 
                        Reagent reagent = GetReagent(name);
 
                        if (reagent != null && !reagent.IsCatalyst)
 
                        if (nameLookup.TryGetValue(ppname, out name))
 
                        {
 
                            reagent.Enabled = match.Groups["enabled"].Value.Equals("Y");
 
                            reagent.Cost = uint.Parse(match.Groups["cost"].Value);
 
                            reagent.RecipeMax = uint.Parse(match.Groups["max"].Value);
 
                            Reagent reagent = GetReagent(name);
 
                            if (reagent != null && !reagent.IsCatalyst)
 
                            {
 
                                reagent.Enabled = match.Groups["enabled"].Value.Equals("Y");
 
                                reagent.Cost = uint.Parse(match.Groups["cost"].Value);
 
                                reagent.RecipeMax = uint.Parse(match.Groups["max"].Value);
 
                            }
 
                        }
 
                        else
 
                        {
 
                            // bad name?
 
                        }
 
					}
 
					else
 
					{
 
						match = catalystRegex.Match(line);
 
						if (match.Success)
 
						{
 
							string ppname = match.Groups["name"].Value;
 
                            string name = null;
 
                            nameLookup.TryGetValue(ppname, out name);
 
                            Reagent reagent = GetReagent(name);
 
                            if (reagent != null && reagent.IsCatalyst)
 
                            if (nameLookup.TryGetValue(ppname, out name))
 
                            {
 
                                reagent.Enabled = match.Groups["enabled"].Value.Equals("Y");
 
                                reagent.Cost = uint.Parse(match.Groups["cost"].Value);
 
                                Reagent reagent = GetReagent(name);
 
                                if (reagent != null && reagent.IsCatalyst)
 
                                {
 
                                    reagent.Enabled = match.Groups["enabled"].Value.Equals("Y");
 
                                    reagent.Cost = uint.Parse(match.Groups["cost"].Value);
 
                                }
 
                            }
 
                            else
 
                            {
 
                                // bad name?
 
                            }
 
						}
 
					}
 
                }
 
			}
 
		}
 

	
 
        public static void SaveProfileReagents(string file)
 
        {
 
            using (StreamWriter writer = new StreamWriter(file))
 
            {
 
                writer.WriteLine("// Ingredients are in the form:");
...
 
@@ -231,29 +243,27 @@ namespace DesertPaintLab
 
			{
 
				if (!pair.Value.IsCatalyst)
 
				{
 
					store.AppendValues(pair.Key);
 
				}
 
			}			
 
		}
 
		*/
 
		
 
		public static Reagent GetReagent(string reagentName)
 
		{
 
			Reagent returnVal;
 
			reagents.TryGetValue(reagentName, out returnVal);
 
            if (returnVal == null)
 
			if (!reagents.TryGetValue(reagentName, out returnVal))
 
            {
 
                // convert pp name to our internal name
 
                string otherName = null;
 
                nameLookup.TryGetValue(reagentName, out otherName);
 
                if (otherName != null)
 
                if (nameLookup.TryGetValue(reagentName, out otherName))
 
                {
 
                    reagents.TryGetValue(otherName, out returnVal);
 
                }
 
            }
 
			return returnVal;
 
		}
 
	}
 
	
 
}
 

	
0 comments (0 inline, 0 general)