Beispiel #1
0
        /// <summary>
        /// Adds the three Structs of a tint to a specified node.
        /// </summary>
        /// <param name="node"></param>
        void AddTints(TreeNode node)
        {
            GffData.Field field;
            Sortable      part, val;

            for (int i = 1; i != 4; ++i)
            {
                field               = new GffData.Field();
                field.type          = FieldTypes.Struct;
                field.label         = i.ToString();
                field.Struct        = new Struct();
                field.Struct.typeid = 0;                 // <- that's what's in the UTCs I've looked at.

                string text = GeneralGFF.ConstructNodetext(field);
                part     = new Sortable(text, field.label);
                part.Tag = field;
                node.Nodes.Add(part);


                var colors = new List <string>()
                {
                    "a", "b", "g", "r"
                };
                foreach (var color in colors)
                {
                    field       = new GffData.Field();
                    field.type  = FieldTypes.BYTE;
                    field.BYTE  = Byte.MaxValue;
                    field.label = color;

                    text    = GeneralGFF.ConstructNodetext(field);
                    val     = new Sortable(text, field.label);
                    val.Tag = field;
                    part.Nodes.Add(val);
                }
                part.Expand();
            }
            node.Expand();
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void contextclick_AddDamageReduction(object sender, EventArgs e)
        {
            BeginUpdate();

            TreeNode top = TopNode;

            var field = new GffData.Field();

            field.type          = FieldTypes.Struct;
            field.label         = SelectedNode.Nodes.Count.ToString(); // Structs in Lists do not have a Label
            field.Struct        = new Struct();
            field.Struct.typeid = 2;                                   // <- that's what's in the UTCs I've looked at.

            string text = GeneralGFF.ConstructNodetext(field);
            var    node = new Sortable(text, field.label);

            node.Tag = field;
            int id = SelectedNode.Nodes.Add(node);


            field       = new GffData.Field();
            field.type  = FieldTypes.SHORT;
            field.label = "DmgRedctAmt";
            field.SHORT = 0;

            text     = GeneralGFF.ConstructNodetext(field);
            node     = new Sortable(text, field.label);
            node.Tag = field;
            SelectedNode.Nodes[id].Nodes.Add(node);

            field       = new GffData.Field();
            field.type  = FieldTypes.SHORT;
            field.label = "DmgRedctFlags";
            field.SHORT = 0;

            text     = GeneralGFF.ConstructNodetext(field);
            node     = new Sortable(text, field.label);
            node.Tag = field;
            SelectedNode.Nodes[id].Nodes.Add(node);


            field       = new GffData.Field();
            field.type  = FieldTypes.List;
            field.label = "DmgRedctSubList";

            text = GeneralGFF.ConstructNodetext(field);
            var list = new Sortable(text, field.label);

            list.Tag = field;
            SelectedNode.Nodes[id].Nodes.Add(list);

            field               = new GffData.Field();
            field.type          = FieldTypes.Struct;
            field.label         = "0";     // Structs in Lists do not have a Label
            field.Struct        = new Struct();
            field.Struct.typeid = 2;       // <- that's what's in the UTCs I've looked at.

            text = GeneralGFF.ConstructNodetext(field);
            var @struct = new Sortable(text, field.label);

            @struct.Tag = field;
            list.Nodes.Add(@struct);

            field       = new GffData.Field();
            field.type  = FieldTypes.SHORT;
            field.label = "DmgRedctSubType";
            field.SHORT = 0;

            text     = GeneralGFF.ConstructNodetext(field);
            node     = new Sortable(text, field.label);
            node.Tag = field;
            @struct.Nodes.Add(node);

            field       = new GffData.Field();
            field.type  = FieldTypes.SHORT;
            field.label = "DmgRedctType";
            field.SHORT = 0;

            text     = GeneralGFF.ConstructNodetext(field);
            node     = new Sortable(text, field.label);
            node.Tag = field;
            @struct.Nodes.Add(node);


            SelectedNode = SelectedNode.Nodes[id];
            SelectedNode.Expand();
            list.Expand();
            @struct.Expand();

            TopNode = top;

            _f.GffData.Changed = true;
            _f.GffData         = _f.GffData;

            EndUpdate();

            node.EnsureVisible();             // yes those calls are in a specific sequence.
        }