public GUI() { Application.EnableVisualStyles(); InitializeComponent(); conversation = new Conversation("NoName"); this.Text = "Dialog Manager - " + conversation.npcName; setupMenuItems(); setupTreeListView(); }
public DialogProperties(ref Conversation conversation) { this.conversation = conversation; InitializeComponent(); nameTextBox.Text = conversation.npcName; resetCheckBox.Checked = conversation.resetConversationOnEnd; this.CancelButton = cancelButton; cancelButton.DialogResult = DialogResult.Cancel; this.AcceptButton = OkButton; OkButton.DialogResult = DialogResult.OK; }
public GUI(String file): this() { fileName = file; if (!file.Equals("")) { conversation = MyXml.load(fileName); this.Text = "Dialog Manager - " + conversation.npcName; treeListView.Roots = new ArrayList(conversation. getRootNodes()); treeListView.ExpandAll(); changesMade = false; } }
public static void save(Conversation conversation, String fileName) { XmlDocument xmlDoc = new XmlDocument(); XmlElement conversationXE = xmlDoc.CreateElement("conversation"); XmlElement dialogXE = xmlDoc.CreateElement("dialog"); XmlElement npcNameXE = xmlDoc.CreateElement("npcName"); XmlElement resetConvXE = xmlDoc.CreateElement("resetConversation"); xmlDoc.AppendChild(conversationXE); conversationXE.AppendChild(npcNameXE); npcNameXE.SetAttribute("npcName", conversation.npcName); conversationXE.AppendChild(resetConvXE); resetConvXE.SetAttribute("resetConversation", conversation.resetConversationOnEnd.ToString()); conversationXE.AppendChild(dialogXE); DialogNode[] dialog = conversation.getRootNodes(); for (int i = 0; i < dialog.Length; i++) { saveNode(dialog[i], ref dialogXE, ref xmlDoc); } xmlDoc.Save(fileName); }
public static Conversation load(String fileName) { Conversation conv = new Conversation(""); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); XmlNodeList xmlNL = xmlDoc.GetElementsByTagName("npcName"); XmlElement xmlEl; xmlEl = (XmlElement)xmlNL[0]; conv.npcName = xmlEl.GetAttribute("npcName"); xmlNL = xmlDoc.GetElementsByTagName("resetConversation"); xmlEl = (XmlElement)xmlNL[0]; bool resetConv=bool.Parse(xmlEl.GetAttribute("resetConversation")); conv.resetConversationOnEnd = resetConv; xmlNL = xmlDoc.SelectNodes("/conversation/dialog/dialogNode"); for (int i = 0; i < xmlNL.Count; i++) { xmlEl = (XmlElement)xmlNL[i]; DialogNode node = loadNode(xmlEl, ref conv); conv.addRootNode(node); } return conv; }
private static DialogNode loadNode(XmlElement xmlEl, ref Conversation conversation) { string id = xmlEl.GetAttribute("id"); string npcPhrase = xmlEl.GetAttribute("npcPhrase"); string voiceFile = xmlEl.GetAttribute("voiceFile"); DialogNode node = new DialogNode(id, npcPhrase, voiceFile); XmlNodeList responsesXNL = xmlEl.ChildNodes; for (int j = 0; j < responsesXNL.Count; j++) { XmlElement responseXE = (XmlElement)responsesXNL[j]; string pcPhrase = responseXE.GetAttribute("pcPhrase"); string link = responseXE.GetAttribute("link"); ResponseLinkType linkType = ResponseLinkType.dialogNode; if (responseXE.GetAttribute("linkType"). Equals("dialogNode")) linkType = ResponseLinkType.dialogNode; else if (responseXE.GetAttribute("linkType"). Equals("endConversation")) linkType = ResponseLinkType.endConversation; else linkType = ResponseLinkType.endAndChangeConversation; string switchConv = responseXE. GetAttribute("switchConversation"); bool onlyAllowOnce = bool.Parse(responseXE. GetAttribute("onlyAllowOnce")); DialogResponse response = new DialogResponse(pcPhrase, link, onlyAllowOnce, linkType, switchConv); node.addResponse(response); if (responseXE.HasChildNodes) { XmlElement childNode = (XmlElement)responseXE.FirstChild; DialogNode dn = loadNode(childNode, ref conversation); response.childNode = dn; conversation.addDialogNode(dn); } } return node; }
private void openMiClicked(Object sender, EventArgs e) { if (changesMade) { DialogResult result = discardChangesDialog(); if (result == DialogResult.No) { saveMiClicked(new object(), new EventArgs()); } else if (result == DialogResult.Cancel) return; } OpenFileDialog openFD = new OpenFileDialog(); openFD.Filter = "Dialog (*.xml)|*.xml"; openFD.RestoreDirectory = true; DialogResult dialogResult = openFD.ShowDialog(); if (dialogResult == DialogResult.OK) { fileName = openFD.FileName.ToString(); conversation = MyXml.load(fileName); NpcIdGenerator = new IdGenerator(); DialogNode[] nodes = conversation.getDialog(); for (int i = 0; i < nodes.Length; i++) NpcIdGenerator.addId(nodes[i].id); this.Text = "Dialog Manager - " + conversation.npcName; treeListView.Roots = new ArrayList(conversation. getRootNodes()); treeListView.ExpandAll(); changesMade = false; } }
private void newMiClicked(Object sender, EventArgs e) { DialogResult result; if (changesMade) { result = discardChangesDialog(); if (result == DialogResult.No) { saveMiClicked(new object(), new EventArgs()); } else if (result == DialogResult.Cancel) return; } Conversation newCon = new Conversation(""); DialogProperties dp = new DialogProperties(ref newCon); dp.Text = "New Dialog"; result = dp.ShowDialog(this); if (result == DialogResult.Cancel) return; conversation = newCon; treeListView.ClearObjects(); NpcIdGenerator = new IdGenerator(); fileName = ""; this.Text = "Dialog Manager - " + conversation.npcName; changesMade = false; }