public static bool LoadDna(string path, Robot rob) { var hold = new StringBuilder(); rob.Dna.Clear(); if (path == "") { return(false); } var lines = File.ReadAllLines(path); foreach (var a in lines) { var processedLine = a; // eliminate comments at the end of a line // but preserves comments-only lines if (a.IndexOf('\'') > 0) { processedLine = processedLine.Split("'")[0]; } processedLine = processedLine.Replace('\t', ' ').Trim(); if (processedLine.StartsWith("'") || processedLine.StartsWith("/") || string.IsNullOrEmpty(processedLine)) { if (processedLine.StartsWith("'#") || processedLine.StartsWith("/#")) { GetVals(rob, a, hold.ToString()); } } else { if (processedLine.StartsWith("def")) { DnaManipulations.InsertVar(rob, a); } else { var parts = processedLine.Split(" ", StringSplitOptions.RemoveEmptyEntries); foreach (var b in parts) { rob.Dna.Add(Parse(b, rob)); } } } hold.AppendLine(a); } rob.Dna.Add(new DnaBlock { Type = 10, Value = 1 }); return(true); }