예제 #1
0
        public static void BuildOpcodesDictionary()
        {
            if (opcodeTemplates.Count > 0)
            {
                return;
            }
            // загружаем шаблоны из файла
            if (File.Exists(RulesFile))
            {
                string[] fileBuf = File.ReadAllLines(RulesFile);
                foreach (string item in fileBuf)
                {
                    string line = item.TrimStart();
                    if (line.Length == 0 || line[0] == ';')
                    {
                        continue;
                    }
                    string[] args = line.Split(',');

                    OpcodeType type = DialogueParser.GetOpcodeType(args[0]);
                    if (type == OpcodeType.None)
                    {
                        continue;
                    }

                    var template = new OpcodeTemplate(type, args[1].Trim(),
                                                      int.Parse(args[3]), // message
                                                      int.Parse(args[4]), // file
                                                      int.Parse(args[5]), // node
                                                      int.Parse(args[6]), // iq
                                                      int.Parse(args[2])  // total func args
                                                      );
                    template.isDefault = false;
                    opcodeTemplates.Add(template.opcodeName, template);
                }
            }
            foreach (var item in templates)
            {
                opcodeTemplates.Add(item.opcodeName, item);
            }
        }
예제 #2
0
        private void AddToTemplate(DataGridViewRow row, string key)
        {
            OpcodeTemplate template = new OpcodeTemplate(
                DialogueParser.GetOpcodeType(row.Cells[0].Value.ToString()),
                row.Cells[1].Value.ToString(),
                int.Parse(row.Cells[3].Value.ToString()),
                int.Parse(row.Cells[6].Value.ToString()),
                int.Parse(row.Cells[4].Value.ToString()),
                int.Parse(row.Cells[5].Value.ToString()),
                int.Parse(row.Cells[2].Value.ToString())
                );

            template.isDefault = false;

            if (DialogFunctionsRules.opcodeTemplates.ContainsKey(key))
            {
                DialogFunctionsRules.opcodeTemplates[key] = template;
            }
            else
            {
                DialogFunctionsRules.opcodeTemplates.Add(key, template);
            }
        }