Esempio n. 1
0
        public static void GetCommandInfo(string path)
        {
            using (StreamReader stream = new StreamReader(path))
            {
                List<string> raw = stream.ReadToEnd().Split('\n').Select(x => x.Trim('\r')).ToList();
                raw.RemoveAll(x => String.IsNullOrEmpty(x) || String.IsNullOrWhiteSpace(x) || x.Contains("//"));

                for (int i = 0; i < raw.Count; i += 6)
                {

                    CommandInfo h = new CommandInfo
                    {
                        Identifier = uint.Parse(raw[i], System.Globalization.NumberStyles.HexNumber),
                        Name = raw[i + 1]
                    };
                    string[] paramList = raw[i + 2].Split(',').Where(x => x != "NONE").ToArray();
                    string[] paramSyntax = raw[i + 3].Split(',').Where(x => x != "NONE").ToArray();
                    foreach (string kw in paramSyntax)
                        h.ParamSyntax.Add(kw);
                    foreach (string s in paramList)
                        h.ParamSpecifiers.Add(int.Parse(s));
                    if (raw[i + 4] != "NONE")
                        h.EventDescription = raw[i + 4];
                    if (h.Identifier == 0x5766F889 || h.Identifier == 0x89F86657)
                        _endingCommand = h;

                    if (h.ParamSyntax.Count == 0 && h.ParamSpecifiers.Count != 0)
                        while (h.ParamSyntax.Count < h.ParamSpecifiers.Count)
                            h.ParamSyntax.Add("unknown");
                    h.IndentLevel = int.Parse(raw[i + 5]);
                    commandDictionary.Add(h);
                }
            }
        }
Esempio n. 2
0
 public Command(CommandInfo info)
 {
     _commandInfo = info;
 }