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); }
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); }
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); }
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); }
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); }
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); } }
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); }