Esempio n. 1
0
File: GUI.cs Progetto: VicBoss/KR
        public GUI()
        {
            Application.EnableVisualStyles();
            InitializeComponent();

            conversation = new Conversation("NoName");
            this.Text = "Dialog Manager - " + conversation.npcName;   

            setupMenuItems();
            setupTreeListView();
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
File: GUI.cs Progetto: VicBoss/KR
 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;
     }
 }
Esempio n. 4
0
File: MyXml.cs Progetto: VicBoss/KR
        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);
        }
Esempio n. 5
0
File: MyXml.cs Progetto: VicBoss/KR
        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;
        }
Esempio n. 6
0
File: MyXml.cs Progetto: VicBoss/KR
        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;
        }
Esempio n. 7
0
File: GUI.cs Progetto: VicBoss/KR
        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;
            }
        }
Esempio n. 8
0
File: GUI.cs Progetto: VicBoss/KR
        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;
        }