Exemple #1
0
        public static void LoadCharList(string txtName, BiDictionaryOneToOne <byte, string> charList,
                                        Dictionary <string, uint> sizeList)
        {
            string filename = Path.Combine(Application.StartupPath, txtName);
            string text     = File.ReadAllText(filename);

            string[] lines = text.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < lines.Length; i++)
            {
                // Ignore comments
                if (lines[i].ToCharArray()[0] == '#')
                {
                    continue;
                }

                string[] pair = lines[i].Split('=');
                if (pair.Length < 3)
                {
                    continue;
                }

                try {
                    charList.Add(byte.Parse(pair[0]), pair[2]);
                    sizeList.Add(pair[2], uint.Parse(pair[1]));
                }
                catch (Exception e) { MessageBox.Show("Error in " + filename + "\n\n" + "Line " + i + "\n\n" +
                                                      pair[0] + "\t" + pair[1] + "\t" + pair[2] + "\n\n" + e.Message); }
            }
        }
Exemple #2
0
        /* Reads in the list of known Global Collision Type values
         */
        private void loadGlobalCLPSTypes()
        {
            GLOBAL_CLPS_TYPES = new BiDictionaryOneToOne <string, byte[]>(new ByteArrayComparer());
            string entryName = "";

            byte[] entryValue = new byte[8];
            int    valueCount = 0;

            // Create an XML reader for this file.
            using (XmlReader reader = XmlReader.Create(Path.Combine(Application.StartupPath, "CLPS_Types.xml")))
            {
                reader.MoveToContent();

                while (reader.Read())
                {
                    if (reader.NodeType.Equals(XmlNodeType.Element))
                    {
                        switch (reader.LocalName)
                        {
                        case "Entry":
                            entryName = reader.GetAttribute("name");
                            break;

                        case "Value":
                            entryValue = new byte[8];
                            valueCount = 0;
                            break;

                        case "Byte":
                            entryValue[valueCount] = Byte.Parse(reader.ReadElementContentAsString());
                            valueCount++;
                            break;
                        }
                    }
                    else if (reader.NodeType.Equals(XmlNodeType.EndElement))
                    {
                        switch (reader.LocalName)
                        {
                        case "Entry":
                            GLOBAL_CLPS_TYPES.Add(entryName, entryValue);
                            break;
                        }
                    }
                }
            }
        }