Example #1
0
        private void duplicateSelectedToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (SelectedItem == string.Empty)
            {
                MessageBox.Show("Nothing to duplicate!");
                return;
            }

            DPOW.Reader.Animation obj = dpow.getAnimation(treObjects.SelectedNode.Text);
            if (SelectedItem.Contains("flag"))
            {
                int k = int.Parse(SelectedItem.Split('_')[0].Replace("Element", ""));
                int l = int.Parse(SelectedItem.Split('_')[1].Replace("flag", ""));
                obj.getFrameOnTime(trcFrameBar.Value).Element.addIcon(DPOW.Reader.Animation.DeepClone <DPOW.Reader.Icon>(dpow.Elements[k].Icons[l]));
            }
            else if (SelectedItem.Contains("str"))
            {
                int k = int.Parse(SelectedItem.Split('_')[0].Replace("Element", ""));
                int l = int.Parse(SelectedItem.Split('_')[1].Replace("str", ""));
                obj.getFrameOnTime(trcFrameBar.Value).Element.addText(DPOW.Reader.Animation.DeepClone <DPOW.Reader.Text>(dpow.Elements[k].Texts[l]));
            }
            else if (SelectedItem.Contains("text"))
            {
                int k = int.Parse(SelectedItem.Split('_')[0].Replace("Element", ""));
                int l = int.Parse(SelectedItem.Split('_')[1].Replace("text", ""));
                obj.getFrameOnTime(trcFrameBar.Value).Element.addImage(DPOW.Reader.Animation.DeepClone <DPOW.Reader.Image>(dpow.Elements[k].Images[l]));
            }
        }
Example #2
0
        private void timeLine1_KeyFrameRemoved(DPOW.Reader.Animation animation, int Time)
        {
            DPOW.Reader.Element elem = animation.getFrameOnTime(Time, false).Element;
            animation.RemoveKeyFrame((short)Time);
            if (!animation.HasElement(elem))
            {
                dpow.RemoveElement(elem);
            }

            trcFrameBar.Maximum = dpow.getAnimation(treObjects.SelectedNode.Text).MaxTime;
        }
Example #3
0
        private void pastToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DPOW.Reader.Animation obj = dpow.getAnimation(treObjects.SelectedNode.Text);
            if (Clipboard.ContainsData("DPOWImage"))
            {
                DPOW.Reader.Image temp = (DPOW.Reader.Image)DeSerialize(Clipboard.GetData("DPOWImage").ToString());
                if (temp.TextureId >= dpow.Textures.Length)
                {
                    temp.TextureId = 0;
                }
                obj.getFrameOnTime(trcFrameBar.Value).Element.addImage(temp);
            }
            else if (Clipboard.ContainsData("DPOWText"))
            {
                obj.getFrameOnTime(trcFrameBar.Value).Element.addText((DPOW.Reader.Text)DeSerialize(Clipboard.GetData("DPOWText").ToString()));
            }
            else if (Clipboard.ContainsData("DPOWIcon"))
            {
                obj.getFrameOnTime(trcFrameBar.Value).Element.addIcon((DPOW.Reader.Icon)DeSerialize(Clipboard.GetData("DPOWIcon").ToString()));
            }

            drawFrame();
        }
Example #4
0
        private void loadFrame(DPOW.Reader.Animation obj, int time, SceneNode parent)
        {
            SceneNode node;

            if (obj.getFrameOnTime(time) == null)
            {
                return;
            }
            int objid = obj.getFrameOnTime(time).ElementId;

            if (mgr.HasSceneNode("Element" + objid.ToString() + "_node"))
            {
                node = mgr.GetSceneNode("Element" + objid.ToString() + "_node");
                if (node.Parent != null)
                {
                    node.Parent.RemoveChild(node);
                }
                parent.AddChild(node);
            }
            else
            {
                node = buildElement(dpow.Elements[objid], "Element" + objid.ToString());
                parent.AddChild(node);
            }

            for (int i = 0; i < obj.Childs.Length; i++)
            {
                if (obj.Childs[i].ChildIcon < 0)
                {
                    loadFrame(dpow.Animations[obj.Childs[i].ChildId], time, node);
                }
                else
                {
                    loadFrame(dpow.Animations[obj.Childs[i].ChildId], time, mgr.GetSceneNode("Element" + objid.ToString() + "_flag" + obj.Childs[i].ChildIcon.ToString() + "_node"));
                }
            }
        }
        private void refreshControls()
        {
            tmlTimeLine.SelectedAnimation = activeAnimation;

            cmbImage.Items.Clear();
            for (int i = 0; i < activeAnimation.getFrameOnTime((int)numStartFrame.Value).Element.Images.Length; i++)
            {
                cmbImage.Items.Add("Image " + i.ToString());
            }
            for (int i = 0; i < activeAnimation.getFrameOnTime((int)numStartFrame.Value).Element.Icons.Length; i++)
            {
                cmbImage.Items.Add("Icon " + i.ToString());
            }
        }
Example #6
0
        private void DrawLine(DPOW.Reader.Animation anim, int y, Graphics g)
        {
            List <int> starts = new List <int>();

            if (anim.getFrameOnTime(scrHorizontalBar.Value, handleEvents) != null)
            {
                if (scrHorizontalBar.Value != anim.getFrameOnTime(scrHorizontalBar.Value, handleEvents).Time)
                {
                    starts.Add(anim.getFrameOnTime(scrHorizontalBar.Value).Time);
                }
            }
            for (int i = scrHorizontalBar.Value; i <= Math.Min(anim.MaxTime, scrHorizontalBar.Value + Width / mColumnWidth + 1); i++)
            {
                if (anim.getFrameOnTime(i) == null)
                {
                    g.DrawRectangle(Pens.LightGray, (i - scrHorizontalBar.Value) * mColumnWidth, y, mColumnWidth, 20);
                }
                else
                {
                    if (anim.getFrameOnTime(i, handleEvents).Time == i)
                    {
                        starts.Add(i);
                    }
                }
            }
            starts.Add(Math.Min(anim.MaxTime + 1, scrHorizontalBar.Value + Width / mColumnWidth + 1));

            // Draw timeline
            for (int i = 0; i < starts.Count - 1; i++)
            {
                g.FillRectangle(Brushes.DarkSeaGreen, (starts[i] - scrHorizontalBar.Value) * mColumnWidth, y, (starts[i + 1] - starts[i]) * mColumnWidth, 20);
                g.DrawRectangle(Pens.Black, (starts[i] - scrHorizontalBar.Value) * mColumnWidth, y, (starts[i + 1] - starts[i]) * mColumnWidth, 20);
                g.DrawString(anim.getFrameOnTime(starts[i], handleEvents).ElementId.ToString(), Font, Brushes.Black, (starts[i] - scrHorizontalBar.Value) * mColumnWidth, y + 4);
            }

            Pen boldpen = new Pen(Color.DarkRed, 2);

            boldpen.Alignment = System.Drawing.Drawing2D.PenAlignment.Center;

            // Draw events
            for (int i = 0; i < anim.Events.Length; i++)
            {
                g.DrawRectangle(boldpen, (anim.Events[i].Start - scrHorizontalBar.Value) * mColumnWidth, y, (anim.Events[i].End - anim.Events[i].Start + 1) * mColumnWidth, 20);
            }
        }