static public XmlData.SoundNode GetXmlSoundNode(int id) { XmlData.SoundNode node = null; if (Program.AnimationXML.Sounds != null && Program.AnimationXML.Sounds.Sound != null) { foreach (var n in Program.AnimationXML.Sounds.Sound) { if (n.Id == id) { return(n); } } } return(node); }
static public XmlData.SoundNode GetXmlSoundNode(int index) { XmlData.SoundNode node = null; if (Program.AnimationXML.Sounds != null && Program.AnimationXML.Sounds.Sound != null) { int findIndex = 0; foreach (var n in Program.AnimationXML.Sounds.Sound) { if (findIndex++ == index) { return(n); } } } return(node); }
static public void UpdateXmlSoundNode(int soundNodeIndex, XmlData.SoundNode newNode) { if (Program.AnimationXML.Sounds == null || Program.AnimationXML.Sounds.Sound == null || soundNodeIndex < 0 || soundNodeIndex >= Program.AnimationXML.Sounds.Sound.Length) { var newNodes = new XmlData.SoundNode[1]; newNodes[0] = newNode; if (Program.AnimationXML.Sounds == null) { Program.AnimationXML.Sounds = new XmlData.SoundsNode(); } if (Program.AnimationXML.Sounds.Sound == null) { Program.AnimationXML.Sounds.Sound = new XmlData.SoundNode[0]; } Program.AnimationXML.Sounds.Sound = Program.AnimationXML.Sounds.Sound.Concat(newNodes).ToArray(); } else { int searchIndex = 0; foreach (var n in Program.AnimationXML.Sounds.Sound) { if (searchIndex++ == soundNodeIndex) { if (newNode == null) { var newSound = new List <XmlData.SoundNode>(Program.AnimationXML.Sounds.Sound); newSound.Remove(n); Program.AnimationXML.Sounds.Sound = newSound.ToArray(); } else { n.Id = newNode.Id; n.Base64 = newNode.Base64; n.Loop = newNode.Loop; n.Probability = newNode.Probability; } break; } } } }
static public void UpdateXmlSoundNode(XmlData.SoundNode oldNode, XmlData.SoundNode newNode) { if (Program.AnimationXML.Sounds == null || Program.AnimationXML.Sounds.Sound == null || oldNode == null) { var newNodes = new XmlData.SoundNode[1]; newNodes[0] = newNode; if (Program.AnimationXML.Sounds == null) { Program.AnimationXML.Sounds = new XmlData.SoundsNode(); } if (Program.AnimationXML.Sounds.Sound == null) { Program.AnimationXML.Sounds.Sound = new XmlData.SoundNode[0]; } Program.AnimationXML.Sounds.Sound = Program.AnimationXML.Sounds.Sound.Concat(newNodes).ToArray(); } else { foreach (var n in Program.AnimationXML.Sounds.Sound) { if (n.Id == oldNode.Id) { if (newNode == null) { var newSound = new List <XmlData.SoundNode>(Program.AnimationXML.Sounds.Sound); newSound.Remove(n); Program.AnimationXML.Sounds.Sound = newSound.ToArray(); } else { n.Id = newNode.Id; n.Base64 = newNode.Base64; n.Loop = newNode.Loop; n.Probability = newNode.Probability; } break; } } } }
private void insertNodeToolStripMenuItem_Click(object sender, EventArgs e) { var cms = contextMenuStrip1; var lv = cms.SourceControl as ListView; if (lv == listView1) // spawn { treeView1.SelectedNode = treeView1.Nodes[0].Nodes[2]; var node = new XmlData.SpawnNode(); for (var j = 1; j <= listView1.Items.Count + 2; j++) { if (XmlTools.GetXmlSpawnNode(j) == null) { node.Id = j; node.Next = new XmlData.NextNode(); node.Probability = 10; node.X = ""; node.Y = ""; XmlTools.UpdateXmlSpawnNode(null, node); MainWindow.MainWin.UpdateData(); break; } } } else if (lv == listView2) // animations { treeView1.SelectedNode = treeView1.Nodes[0].Nodes[3]; var node = new XmlData.AnimationNode(); for (var j = 1; j <= listView2.Items.Count + 2; j++) { if (XmlTools.GetXmlAnimationNode(j) == null) { node.Id = j; node.Name = "New"; XmlTools.UpdateXmlAnimationNode(null, node); MainWindow.MainWin.UpdateData(); break; } } } else if (lv == listView3) // childs { treeView1.SelectedNode = treeView1.Nodes[0].Nodes[4]; var node = new XmlData.ChildNode(); for (var j = 1; j <= listView3.Items.Count + 2; j++) { if (XmlTools.GetXmlChildNode(j) == null) { node.Id = j; node.Next = j; XmlTools.UpdateXmlChildNode(null, node); MainWindow.MainWin.UpdateData(); break; } } } else if (lv == listView4) // sounds { treeView1.SelectedNode = treeView1.Nodes[0].Nodes[5]; var node = new XmlData.SoundNode(); for (var j = 1; j <= listView4.Items.Count + 2; j++) { if (XmlTools.GetXmlSoundNode(j) == null) { node.Id = j; XmlTools.UpdateXmlSoundNode(null, node); MainWindow.MainWin.UpdateData(); break; } } } }