示例#1
0
            private Control CreateControlFor(SpriteDataField v)
            {
//                Console.WriteLine(v.display + " " + v.name);
                if (v.display == "checkbox")
                {
                    CheckBox c = new CheckBox();
                    c.Checked         = v.getValue(s.Data) == 1;
                    c.Text            = v.name;
                    c.CheckedChanged += new EventHandler(saveData);
                    return(c);
                }
                else if (v.display == "list")
                {
                    ComboBox c = new ComboBox();
                    c.DropDownStyle = ComboBoxStyle.DropDownList;
                    c.Items.AddRange(v.strings);
                    try
                    {
                        c.SelectedIndex = Array.IndexOf(v.values, v.getValue(s.Data));
                    }
                    catch (ArgumentOutOfRangeException) { } //just in case
                    //c.SelectedIndexChanged += new EventHandler(saveData);
                    c.SelectionChangeCommitted += new EventHandler(saveData);
                    //c.DropDownClosed += new EventHandler(saveData);

                    return(c);
                }
                else if (v.display == "label")
                {
                    Label c = new Label();
                    c.Text = v.name;
                    return(c);
                }
                else if (v.display == "binary")
                {
                    BinaryEdit c = new BinaryEdit();
                    c.CheckBoxCount = v.getBitCount();
                    c.value         = v.getValue(s.Data);
                    c.ValueChanged += new EventHandler(saveData);
                    return(c);
                }
                else
                {
                    NumericUpDown c = new NumericUpDown();
                    c.Minimum       = v.getMin();
                    c.Maximum       = v.getMax();
                    c.Value         = v.getValue(s.Data);
                    c.ValueChanged += new EventHandler(saveData);
                    return(c);
                }
            }
示例#2
0
            public void updateValue(SpriteDataField v)
            {
                Control c     = controls[v];
                int     value = v.getValue(s.Data);

                if (c is CheckBox)
                {
                    (c as CheckBox).Checked = value == 1;
                }
                if (c is ComboBox)
                {
                    (c as ComboBox).SelectedIndex = Array.IndexOf(v.values, value);
                }
                if (c is BinaryEdit)
                {
                    (c as BinaryEdit).value = value;
                }
                if (c is NumericUpDown)
                {
                    (c as NumericUpDown).Value = value;
                }
            }
示例#3
0
        public static SpriteData readFromStream(XmlReader xmlr)
        {
            SpriteData sd = new SpriteData();

            sd.spriteID = int.Parse(xmlr.GetAttribute("id"));
            xmlr.ReadToFollowing("name");
            sd.name = xmlr.ReadElementContentAsString();
            spriteNames.Add(sd.name);
            xmlr.ReadToFollowing("category");
            sd.categoryID = int.Parse(xmlr.GetAttribute("id"));
            spritesInCategory[sd.categoryID].Add(sd.spriteID);
            xmlr.ReadToFollowing("notes");
            sd.notes = xmlr.ReadElementContentAsString();
            while (xmlr.ReadToNextSibling("field"))
            {
                SpriteDataField f = new SpriteDataField();
                f.display = xmlr.GetAttribute("type");
                f.name    = xmlr.GetAttribute("name");
                f.notes   = xmlr.GetAttribute("notes");
                string nybbles = xmlr.GetAttribute("id");
                if (nybbles.Contains("-"))
                {
                    string[] nybbles2 = nybbles.Split('-');
                    f.startNibble = int.Parse(nybbles2[0]);
                    f.endNibble   = int.Parse(nybbles2[1]);
                }
                else
                {
                    f.startNibble = f.endNibble = int.Parse(nybbles);
                }
                string values = xmlr.GetAttribute("values");
                switch (f.display)
                {
                case "list":
                    string[] items = values.Split(',');
                    f.values  = new int[items.Length];
                    f.strings = new string[items.Length];

                    for (int j = 0; j < items.Length; j++)
                    {
                        string[] lulz = items[j].Split(new char[] { '=' });
                        f.values[j]  = Int32.Parse(lulz[0]);
                        f.strings[j] = lulz[1];
                    }
                    break;

                case "signedvalue":
                    if (values.Trim() == "")
                    {
                        f.data = 0;
                    }
                    else
                    {
                        f.data = Int32.Parse(values);
                    }
                    break;

                case "value":
                    if (values.Trim() == "")
                    {
                        f.data = 0;
                    }
                    else
                    {
                        f.data = Int32.Parse(values);
                    }
                    break;

                case "checkbox":
                    if (values.Trim() == "")
                    {
                        f.data = 1;
                    }
                    else
                    {
                        f.data = Int32.Parse(values);
                    }
                    break;
                }
                sd.fields.Add(f);
            }

            return(sd);
        }
示例#4
0
 public void updateValue(SpriteDataField v)
 {
     Control c = controls[v];
     int value = v.getValue(s.Data);
     if (c is CheckBox)
         (c as CheckBox).Checked = value == 1;
     if (c is ComboBox)
         (c as ComboBox).SelectedIndex = Array.IndexOf(v.values, value);
     if (c is BinaryEdit)
         (c as BinaryEdit).value = value;
     if (c is NumericUpDown)
         (c as NumericUpDown).Value = value;
 }
示例#5
0
            private Control CreateControlFor(SpriteDataField v)
            {
//                Console.WriteLine(v.display + " " + v.name);
                if (v.display == "checkbox")
                {
                    CheckBox c = new CheckBox();
                    c.Checked = v.getValue(s.Data) == 1;
                    c.Text = v.name;
                    c.CheckedChanged += new EventHandler(saveData);
                    return c;
                }
                else if (v.display == "list")
                {
                    ComboBox c = new ComboBox();
                    c.DropDownStyle = ComboBoxStyle.DropDownList;
                    c.Items.AddRange(v.strings);
                    try
                    {
                        c.SelectedIndex = Array.IndexOf(v.values, v.getValue(s.Data));
                    }
                    catch (ArgumentOutOfRangeException) { } //just in case
                    //c.SelectedIndexChanged += new EventHandler(saveData);
                    c.SelectionChangeCommitted += new EventHandler(saveData);
                    //c.DropDownClosed += new EventHandler(saveData);
                    
                    return c;
                }
                else if (v.display == "label")
                {
                    Label c = new Label();
                    c.Text = v.name;
                    return c;
                }
                else if (v.display == "binary")
                {
                    BinaryEdit c = new BinaryEdit();
                    c.CheckBoxCount = v.getBitCount();
                    c.value = v.getValue(s.Data);
                    c.ValueChanged += new EventHandler(saveData);
                    return c;
                }
                else
                {
                    NumericUpDown c = new NumericUpDown();
                    c.Minimum = v.getMin();
                    c.Maximum = v.getMax();
                    c.Value = v.getValue(s.Data);
                    c.ValueChanged += new EventHandler(saveData);
                    return c;
                }
            }
示例#6
0
        public static SpriteData readFromStream(XmlReader xmlr)
        {
            SpriteData sd = new SpriteData();

            sd.spriteID = int.Parse(xmlr.GetAttribute("id"));
            xmlr.ReadToFollowing("name");
            sd.name = xmlr.ReadElementContentAsString();
            spriteNames.Add(sd.name);
            xmlr.ReadToFollowing("category");
            sd.categoryID = int.Parse(xmlr.GetAttribute("id"));
            spritesInCategory[sd.categoryID].Add(sd.spriteID);
            xmlr.ReadToFollowing("notes");
            sd.notes = xmlr.ReadElementContentAsString();
            while (xmlr.ReadToNextSibling("field"))
            {
                SpriteDataField f = new SpriteDataField();
                f.display = xmlr.GetAttribute("type");
                f.name = xmlr.GetAttribute("name");
                f.notes = xmlr.GetAttribute("notes");
                string nybbles = xmlr.GetAttribute("id");
                if (nybbles.Contains("-"))
                {
                    string[] nybbles2 = nybbles.Split('-');
                    f.startNibble = int.Parse(nybbles2[0]);
                    f.endNibble = int.Parse(nybbles2[1]);
                }
                else
                    f.startNibble = f.endNibble = int.Parse(nybbles);
                string values = xmlr.GetAttribute("values");
                switch (f.display)
                {
                    case "list":
                        string[] items = values.Split(',');
                        f.values = new int[items.Length];
                        f.strings = new string[items.Length];

                        for (int j = 0; j < items.Length; j++)
                        {
                            string[] lulz = items[j].Split(new char[] { '=' });
                            f.values[j] = Int32.Parse(lulz[0]);
                            f.strings[j] = lulz[1];
                        }
                        break;
                    case "signedvalue":
                        if (values.Trim() == "")
                            f.data = 0;
                        else
                            f.data = Int32.Parse(values);
                        break;
                    case "value":
                        if (values.Trim() == "")
                            f.data = 0;
                        else
                            f.data = Int32.Parse(values);
                        break;
                    case "checkbox":
                        if (values.Trim() == "")
                            f.data = 1;
                        else
                            f.data = Int32.Parse(values);
                        break;
                }
                sd.fields.Add(f);
            }

            return sd;
        }
示例#7
0
        public static SpriteData readFromStream(XmlReader xmlr)
        {
            SpriteData sd = new SpriteData();

            sd.spriteID = int.Parse(xmlr.GetAttribute("id"));
            //sd.spriteID = (int)ROM.GetClassIDFromTable(sd.spriteID);
            xmlr.ReadToFollowing("name");
            sd.name = xmlr.ReadElementContentAsString();
            xmlr.ReadToFollowing("category");
            sd.categoryID = int.Parse(xmlr.GetAttribute("id"));
            xmlr.ReadToFollowing("notes");
            sd.notes = xmlr.ReadElementContentAsString();

            string field = "field";

            if (sd.spriteID == 77 && Properties.Settings.Default.using_signboard_asm)
            {
                field = "fieldASM";
            }

            while (xmlr.ReadToNextSibling(field))
            {
                SpriteDataField f = new SpriteDataField();
                f.display = xmlr.GetAttribute("type");
                f.name    = xmlr.GetAttribute("name");
                f.notes   = xmlr.GetAttribute("notes");
                string nybbles = xmlr.GetAttribute("id");
                if (nybbles.Contains("-"))
                {
                    string[] nybbles2 = nybbles.Split('-');
                    f.startNibble = int.Parse(nybbles2[0]);
                    f.endNibble   = int.Parse(nybbles2[1]);
                }
                else
                {
                    f.startNibble = f.endNibble = int.Parse(nybbles);
                }
                string values = xmlr.GetAttribute("values");
                switch (f.display)
                {
                case "list":
                    string[] items = values.Split(',');
                    f.values  = new int[items.Length];
                    f.strings = new string[items.Length];

                    for (int j = 0; j < items.Length; j++)
                    {
                        string[] lulz = items[j].Split(new char[] { '=' });
                        f.values[j]  = Int32.Parse(lulz[0]);
                        f.strings[j] = lulz[1];
                    }
                    break;

                case "signedvalue":
                    if (values.Trim() == "")
                    {
                        f.data = 0;
                    }
                    else
                    {
                        f.data = Int32.Parse(values);
                    }
                    break;

                case "value":
                    if (values.Trim() == "")
                    {
                        f.data = 0;
                    }
                    else
                    {
                        f.data = Int32.Parse(values);
                    }
                    break;

                case "checkbox":
                    if (values.Trim() == "")
                    {
                        f.data = 1;
                    }
                    else
                    {
                        f.data = Int32.Parse(values);
                    }
                    break;

                    /*case "bitcheckbox":
                     *  if (values.Trim() == "")
                     *      f.data = 0;
                     *  else
                     *      f.data = Int32.Parse(values);
                     *  break;*/
                }
                sd.fields.Add(f);
            }

            return(sd);
        }