예제 #1
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            int highest = EventList.Items.Count;

            if (EventList.SelectedIndex != -1)
            {
                highest = EventList.SelectedIndices[EventList.SelectedIndices.Count - 1];
            }

            MoveDefEventNode d = new MoveDefEventNode();

            if (highest == EventList.Items.Count)
            {
                TargetNode.AddChild(d);
            }
            else
            {
                TargetNode.InsertChild(d, true, highest + 1);
            }
            d.EventID = 0x00020000;
            MakeScript();

            if (EventList.Items.Count > highest + 1)
            {
                EventList.SelectedIndex = highest + 1;
            }
            else
            {
                EventList.SelectedIndex = EventList.Items.Count - 1;
            }
        }
예제 #2
0
        public void MakeScript()
        {
            if (TargetNode == null)
            {
                return;
            }

            string[] script = new string[TargetNode.Children.Count];
            int      tabs   = 0;

            for (int i = 0; i < TargetNode.Children.Count; i++)
            {
                MoveDefEventNode node = TargetNode.Children[i] as MoveDefEventNode;
                string           arg  = node._name;

                //Format the event and its parameters into a readable script.
                script[i] = ResolveEventSyntax(GetEventSyntax(node._event), node.EventData);
                if (script[i] == "")
                {
                    script[i] = GetDefaultSyntax(node.EventData);
                }

                //Add tabs to the script in correspondence to the code Params.
                tabs -= MParams.TabDownEvents(node._event);
                for (int i2 = 0; i2 < tabs; i2++)
                {
                    script[i] = "\t" + script[i];
                }
                tabs += MParams.TabUpEvents(node._event);
            }
            EventList.Items.Clear();
            EventList.Items.AddRange(script);
        }
예제 #3
0
        public void Setup(ModelMovesetPanel parent)
        {
            p = parent;

            //Setup requirements list.
            if (cboRequirement.Items.Count == 0)
            {
                cboRequirement.Items.AddRange(eventData.Root.iRequirements);
            }

            status = DialogResult.Cancel;
            newEv  = null;

            DisplayEvent();
        }
예제 #4
0
        private void btnPaste_Click(object sender, EventArgs e)
        {
            List <int> indices = new List <int>();

            int highest = EventList.Items.Count;

            if (EventList.SelectedIndex != -1)
            {
                highest = EventList.SelectedIndices[EventList.SelectedIndices.Count - 1];
            }

            string s = Clipboard.GetText();

            try
            {
                string[] Events = s.Split('/');
                foreach (string x in Events)
                {
                    MoveDefEventNode y = MoveDefEventNode.Deserialize(x, TargetNode.Root);
                    if (y != null)
                    {
                        if (highest == TargetNode.Children.Count)
                        {
                            TargetNode.AddChild(y);
                        }
                        else
                        {
                            TargetNode.InsertChild(y, true, highest + 1);
                        }
                        indices.Add(y.Index);
                        highest++;
                    }
                }
            }
            finally
            {
                MakeScript();
                if (TargetNode != null)
                {
                    foreach (int i in indices)
                    {
                        EventList.SetSelected(i, true);
                    }
                }
            }
        }
예제 #5
0
        private void btnChangeEvent_Click(object sender, EventArgs e)
        {
            //Pass in the event Event.
            frmEventList.eventEvent = eventData._event;
            frmEventList.p          = eventData.Root;
            frmEventList.ShowDialog();

            //Retrieve and setup the new event according to the new event Event.
            if (frmEventList.status == DialogResult.OK)
            {
                newEv = new MoveDefEventNode {
                    _parent = origEvent.Parent
                };

                newEvent.EventID = (uint)frmEventList.eventEvent;
                ActionEventInfo info = newEvent.EventInfo;

                newEvent.NewChildren();
            }

            DisplayEvent();
        }
예제 #6
0
        private void btnChangeEvent_Click(object sender, EventArgs e)
        {
            //Pass in the event Event.
            frmEventList.eventEvent = eventData._event;
            frmEventList.p          = eventData.Root;
            frmEventList.ShowDialog();

            //Retrieve and setup the new event according to the new event Event.
            if (frmEventList.status == DialogResult.OK)
            {
                newEv = new MoveDefEventNode()
                {
                    _parent = origEvent.Parent
                };

                newEvent.EventID = (int)frmEventList.eventEvent;
                ActionEventInfo info = newEvent.EventInfo;

                if (info.Params == null)
                {
                    DisplayEvent();
                    return;
                }

                for (int i = 0; i < newEvent.numArguments; i++)
                {
                    long type = info.GetDfltParameter(i);
                    if (i >= info.Params.Length)
                    {
                        continue;
                    }

                    if ((newEvent._event == 0x06000D00 || newEvent._event == 0x06150F00 || newEvent._event == 0x062B0D00) && i == 12)
                    {
                        newEvent.AddChild(new HitboxFlagsNode(info != null ? info.Params[i] : "Value"));
                    }
                    else if (((newEvent._event == 0x06000D00 || newEvent._event == 0x06150F00 || newEvent._event == 0x062B0D00) && (i == 0 || i == 3 || i == 4)) ||
                             ((newEvent._event == 0x11001000 || newEvent._event == 0x11010A00 || newEvent._event == 0x11020A00) && i == 0))
                    {
                        newEvent.AddChild(new MoveDefEventValue2HalfNode(info != null ? info.Params[i] : "Value"));
                    }
                    else if (i == 14 && newEvent._event == 0x06150F00)
                    {
                        newEvent.AddChild(new SpecialHitboxFlagsNode(info != null ? info.Params[i] : "Value"));
                    }
                    else if ((ArgVarType)(int)type == ArgVarType.Value)
                    {
                        newEvent.AddChild(new MoveDefEventValueNode(info != null ? info.Params[i] : "Value"));
                    }
                    else if ((ArgVarType)(int)type == ArgVarType.Scalar)
                    {
                        newEvent.AddChild(new MoveDefEventScalarNode(info != null ? info.Params[i] : "Scalar"));
                    }
                    else if ((ArgVarType)(int)type == ArgVarType.Boolean)
                    {
                        newEvent.AddChild(new MoveDefEventBoolNode(info != null ? info.Params[i] : "Boolean"));
                    }
                    else if ((ArgVarType)(int)type == ArgVarType.Unknown)
                    {
                        newEvent.AddChild(new MoveDefEventUnkNode(info != null ? info.Params[i] : "Unknown"));
                    }
                    else if ((ArgVarType)(int)type == ArgVarType.Requirement)
                    {
                        newEvent.AddChild(new MoveDefEventRequirementNode(info != null ? info.Params[i] : "Requirement"));
                    }
                    else if ((ArgVarType)(int)type == ArgVarType.Variable)
                    {
                        newEvent.AddChild(new MoveDefEventVariableNode(info != null ? info.Params[i] : "Variable"));
                    }
                    else if ((ArgVarType)(int)type == ArgVarType.Offset)
                    {
                        newEvent.AddChild(new MoveDefEventOffsetNode(info != null ? info.Params[i] : "Offset"));
                    }
                }
            }

            DisplayEvent();
        }