Example #1
0
        public override int SetResourceParams(ChitinKey ckey,
                                              ResourceClass.IResource irFile)
        {
            if ((dlgFile == null) || (!dlgFile.Equals(irFile)))
            {
                extDialogFileCache.Clear();
                dlgFile = (ResourceClass.QDLGFile)irFile;

                this.dialogTreeView.Nodes.Clear();
                InfoState   = null;
                InfoTrans   = null;
                InfoAction  = null;
                InfoJournal = null;

                if (dlgFile.stateList.Length > 0)
                {
                    QDLGTreeNode[] nodes = BuildParentDialogNodes(dlgFile);

                    if (nodes == null)
                    {
                        return(0);
                    }

                    this.dialogTreeView.Nodes.AddRange(nodes);

                    ((QDLGTreeNode)dialogTreeView.Nodes[0]).
                    DisplayNodeInformation(this);
                }
            }

            return(1);
        }
Example #2
0
        public static QDLGTreeNode BuildDialogNodes(
            ResourceClass.QDLGFile.TransStruct trans)
        {
            if ((trans.nxDLG != "") && (trans.nxStateIndex > -1))
            {
                ResourceClass.QDLGFile dfile = GetDialogFile(trans.nxDLG);
                return(new QDLGTreeNode(dfile, dfile.stateList[trans.nxStateIndex],
                                        trans.nxDLG == dlgFile.GetName()));
            }

            return(null);
        }
Example #3
0
        public QDLGTreeNode(ResourceClass.QDLGFile dlgFile,
                            ResourceClass.QDLGFile.TransStruct trans)
        {
            this.isStateNode = false;

            this.dlgFile = dlgFile;
            this.trans   = trans;

            if ((trans.nxDLG != "") && (trans.nxStateIndex > -1))
            {
                // add dummy nodes
                this.Nodes.Add(new TreeNode("..."));
            }
            else
            {
                this.hasLoaded = true;
            }

            InitTreeNode(trans.srTransIndex);
        }
Example #4
0
        public QDLGTreeNode(ResourceClass.QDLGFile dlgFile,
                            ResourceClass.QDLGFile.StateStruct state, bool isExt)
        {
            this.isStateNode = true;

            this.dlgFile = dlgFile;
            this.state   = state;

            if (state.transCount > 0)
            {
                // add dummy node
                this.Nodes.Add(new TreeNode("..."));
            }
            else
            {
                this.hasLoaded = true;
            }

            this.InitTreeNode(state.srStateIndex);
        }
Example #5
0
        protected static ResourceClass.QDLGFile GetDialogFile(string ckeyName)
        {
            if (ckeyName == dlgFile.GetName())
            {
                return(dlgFile);
            }

            foreach (ResourceClass.QDLGFile dfile in extDialogFileCache)
            {
                if (ckeyName == dfile.GetName())
                {
                    return(dfile);
                }
            }

            ResourceClass.QDLGFile ddfile = (ResourceClass.QDLGFile)
                                            ResourceHandler.LoadResourceFile(ckeyName, ResourceStruct.ResourceType.RTypeQDLG);

            extDialogFileCache.Add(ddfile);

            return(ddfile);
        }
Example #6
0
        private static QDLGTreeNode[] BuildParentDialogNodes(
            ResourceClass.QDLGFile dlgFile)
        {
            ArrayList nodes = new ArrayList();

            for (int c = 0; c < dlgFile.stateList.Length; c++)
            {
                if (dlgFile.stateList[c].sTrigIndex > -1)
                {
                    nodes.Add(new QDLGTreeNode(dlgFile, dlgFile.stateList[c], false));
                }
            }

            if (nodes.Count > 0)
            {
                return((QDLGTreeNode[])nodes.ToArray(typeof(QDLGTreeNode)));
            }
            else
            {
                return(null);
            }
        }
Example #7
0
        public static QDLGTreeNode[] BuildDialogNodes(
            ResourceClass.QDLGFile dfile,
            ResourceClass.QDLGFile.StateStruct state)
        {
            if (state.transCount > 0)
            {
                QDLGTreeNode[] nodes = new QDLGTreeNode[state.transCount];

                int ptr = state.transIndex;

                for (int c = 0; c < state.transCount; c++)
                {
                    ResourceClass.QDLGFile.TransStruct trans =
                        dfile.transList[ptr + c];

                    nodes[c] = new QDLGTreeNode(dfile, trans);
                }

                return(nodes);
            }

            return(null);
        }