private void addScriptCommand(TreeNode parent, List <ScriptCommand> commandList) { TreeNode curParent = parent; foreach (ScriptCommand cmd in commandList) { TreeNode tnCommand = new TreeNode(CScenario.getNodeText(cmd)); tnCommand.Tag = cmd; if (((ScriptCommand)tnCommand.Tag).id == 1) { tnCommand.ForeColor = Color.Red; } curParent.Nodes.Add(tnCommand); if (cmd.isExtValueAvailable()) { curParent = tnCommand; } else if (cmd.Id == (int)CommandId.CMD_ACTION_END) { curParent = curParent.Parent; } } }
int CreateControl_Def(int ParaCode, int i, string lpStr = null) { int ControlNum = 0; switch (ParaCode) { case 4: case 0x102: CreateTextBox(m_TextBoxNum++, i, 0, 0x10000, false, lpStr); ControlNum = 1; break; case 5: m_DlgAlign.MoveToNextLine(); CreateStrBox(m_StrBoxNum++, i, lpStr); m_DlgAlign.MoveToNextLine(); break; case 0x26: if (lpStr == null) { lpStr = CScenario.GetParameterName_Int(0x26, 1, cmd.id, i); } CreateCheckBox(m_CheckBoxNum++, i, lpStr); ControlNum = 1; break; case 0x100: CreatePosBox(m_PosBoxNum++, i, lpStr); ControlNum = 2; break; case 0x101: CreateAreaBox(m_AreaBoxNum++, i, lpStr); ControlNum = 4; break; default: { ParaTypeInfo TypeInfo = CScenario.GetParaTypeInfo(ParaCode); if (TypeInfo.IsUseCombo) { CreateComboBox(m_ComboBoxNum++, i, lpStr); } else { CreateTextBox(m_TextBoxNum++, i, 0, 0xffff, true, lpStr); } ControlNum = 1; } break; } return(ControlNum); }
void CreateStatic(Label lpStatic, int ParaIndex, string lpStr) { string lpCaption; if (lpStr == null) { lpCaption = CScenario.GetParaName((int)cmd.Keys[ParaIndex], cmd.id, ParaIndex); } else { lpCaption = lpStr; } Create_Static(lpStatic, lpCaption); }
public Object newFieldValue(int fieldId) { ParaTypeInfo TypeInfo = CScenario.GetParaTypeInfo(fieldId); EexType etype = ScriptConfig.Instance.getEexType(fieldId); switch (etype) { case EexType.EexString: { string ret = ""; return(ret); } case EexType.EexBoolean: { return(false); } case EexType.EexInteger: if (!TypeInfo.isAllowNULL) { return(0); } else { return(TypeInfo.DefIndex == 0x10000 ? 0xFFFF : TypeInfo.DefIndex); } case EexType.EexUShort: if (!TypeInfo.isAllowNULL) { return((ushort)0); } else { return(TypeInfo.DefIndex == 0x10000 ? (ushort)0xFFFF : (ushort)TypeInfo.DefIndex); } case EexType.EexUShortArray: { ushort[] result = new ushort[0]; return(result); } default: throw new EexReaderException(String.Format("unknow type={0}", etype.ToString())); } }
private void 修改ToolStripMenuItem_Click(object sender, EventArgs e) { if (treeViewRoot.SelectedNode.Level > 2) { ScriptCommand cmd = (ScriptCommand)treeViewRoot.SelectedNode.Tag; if (cmd.Keys.Length > 0) { CCodeEditDlg dlg = new CCodeEditDlg(cmd); if (dlg.ShowDialog() == DialogResult.OK) { treeViewRoot.SelectedNode.Text = CScenario.getNodeText(cmd); } } } }
private void treeViewRoot_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { if (treeViewRoot.SelectedNode.Level > 2) { //treeViewRoot.l ScriptCommand cmd = (ScriptCommand)treeViewRoot.SelectedNode.Tag; if (cmd.Keys.Length > 0) { CCodeEditDlg dlg = new CCodeEditDlg(cmd); if (dlg.ShowDialog() == DialogResult.OK) { treeViewRoot.SelectedNode.Text = CScenario.getNodeText(cmd); } } } }
void CreateComboBox(int Index, int ParaIndex, string lpStr, int MaxCharNum = 0) { if (ParaIndex != (-1)) { ParaTypeInfo TypeInfo = CScenario.GetParaTypeInfo((int)cmd.Keys[ParaIndex]); //m_ComboBox[Index].SelectedIndex = (ushort)cmd.Values[ParaIndex]; //m_ComboBox[Index].SetDefValue(CScenario.GetStepPara_Int(m_StepIndex,ParaIndex)); //m_ComboBox[Index].SetDataInfo(m_Scenario,m_StepIndex,ParaIndex); m_ComboBox[Index].InitData(cmd, ParaIndex, int.Parse(cmd.Values[ParaIndex].ToString())); m_ComboBox[Index].N_paraIndex = ParaIndex; MaxCharNum = TypeInfo.MaxNameLen; } MaxCharNum = (4 > MaxCharNum?4:MaxCharNum); CreateStatic(m_Static_2[Index], ParaIndex, lpStr); int Left = m_DlgAlign.GetLastLeft(); Create_ComboBox(m_ComboBox[Index], MaxCharNum, 0); m_DlgAlign.SetLastLeft(Left); }
void CreateCheckBox(int Index, int ParaIndex, string lpStr) { //m_CheckBox[Index].SetDefValue(CScenario.GetStepPara_Int(m_StepIndex,ParaIndex)); //m_CheckBox[Index].SetDataInfo(m_Scenario,m_StepIndex,ParaIndex); bool Checked = (ushort)cmd.Values[ParaIndex] == 1 ? true : false; m_CheckBox[Index].InitData(cmd, ParaIndex, Checked); string lpCaption; if (lpStr == null) { lpCaption = CScenario.GetParaName((int)cmd.Keys[ParaIndex]); } else { lpCaption = lpStr; } Create_CheckBox(m_CheckBox[Index], lpCaption, 0); }
public void InitData(ScriptCommand cmd, int paraIndex, int DefValue) { m_cmd = cmd; m_paraIndex = paraIndex; m_DefValue = DefValue; ParaTypeInfo TypeInfo; int Code = cmd.id; int ParaCode = cmd.keys[paraIndex]; TypeInfo = CScenario.GetParaTypeInfo(ParaCode); Items.Clear(); if (TypeInfo.IsUseCombo) { int t, i, it = -1, n = TypeInfo.NameNum; if ((Code != 0x6 && Code != 0x4a && Code != 0x46 && Code != 0x47) && (ParaCode == 2 || ParaCode == 0x38 || ParaCode == 0x39)) { int k = 0; this.ResetText();//? for (i = 0; i < n; i++) { t = CScenario.GetParaTypeNameIndex(ParaCode, i); if (t < 0 || t >= 0x400 || m_DefValue == t || (t < 0x400 /*&& CScenario.gIsShowChar[t]*/)) { Items.Add(CScenario.GetParameterName_Int(ParaCode, t)); //AddString(CScenario.GetParameterName_Int(ParaCode, t)); //SetItemData(k, t); if (m_DefValue == t) { it = k; } k++; } } } else { for (i = 0; i < n; i++) { //if (!m_IsInit) { t = CScenario.GetParaTypeNameIndex(ParaCode, i); Items.Add(CScenario.GetParameterName_Int(ParaCode, t)); //AddString(m_Scenario->GetParameterName_Int(ParaCode, t)); //SetItemData(i, t); } //else //{ //t = GetItemData(i); //} if (m_DefValue == t) { it = i; } } } if (m_DefValue >= 0 && m_DefValue < Items.Count) { SelectedIndex = m_DefValue; } else if (it != -1) { this.SelectedIndex = it; } else if (TypeInfo.DefIndex != 0x10000) { this.SelectedIndex = TypeInfo.DefIndex; } else { this.SelectedIndex = -1; } } }
void OnInitDialog() { int i = 0; int t; int CharLimit = CAOCAO_CHARLIMIT; int m_Code = cmd.Id; int Num = cmd.Keys.Length; int ParaCode; switch (m_Code) { case 5: CreateCodeSelBox(m_CodeSelBoxNum++); break; case 6: case 0x4a: { if (m_Code == 6) { CreateCheckBox(m_CheckBoxNum++, i++, ("出场限制")); } CreateTextBox(m_TextBoxNum++, i++, 0, 0x10000 + 15, false, ("人数限制")); m_DlgAlign.MoveToNextLine(); t = i; CreateListBox(0, (-1), ("出场限制"), 10); m_DlgAlign.MoveToNextLine(false, false); m_DlgAlign.MoveTopBack(); m_DlgAlign.MoveToRight(); int ListBoxWidth = m_DlgAlign.GetLastWidth(); for (i = 0; i < CharLimit + CharLimit; i++) { m_ListBox[0].Items.Add((i < CharLimit) ? ("强制出场") : ("强制不出场")); //m_ListBox[0].SetItemData(i,i); } m_ListBox[0].SelectedIndex = 0; m_DlgAlign.MoveToNextLine(); m_DlgAlign.MoveTopBack(); m_DlgAlign.SetLastWidth(ListBoxWidth); m_DlgAlign.MoveToRight(); ParaCode = cmd.Keys[t]; CreateControl_Def(ParaCode, t, ("武将")); } break; case 0x32: case 0x4c: case 0x55: case 0x6d: CreateControl_Def(0x40, i++); t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex; CreateControl_Def(0x2, i++); m_DlgAlign.MoveLeftBack(); ShowComboBox(m_ComboBoxNum - 1, (t == 0)); CreateTextBox(m_TextBoxNum++, i++, 0, 0x10000 + 114, false, ("BFIndex")); m_DlgAlign.MoveLeftBack(); ShowTextBox(m_TextBoxNum - 1, (t == 1)); if (m_Code == 0x32 || m_Code == 0x55) { m_DlgAlign.MoveToNextLine(); CreateControl_Def(0x100, i++); CreateControl_Def(0x2b, i++); } if (m_Code == 0x6d) { m_DlgAlign.MoveToNextLine(); for (; i < Num; i++) { if (i == 5) { m_DlgAlign.MoveToNextLine(); } ParaCode = cmd.Keys[i]; CreateControl_Def(ParaCode, i); } } break; case 0x46: { ParaTypeInfo TypeInfo = CScenario.GetParaTypeInfo(2); CreateListBox(0, (-1), ("友军出场人物"), TypeInfo.MaxNameLen); m_DlgAlign.MoveToNextLine(false, false); m_DlgAlign.MoveTopBack(); m_DlgAlign.MoveToRight(); int ListBoxWidth = m_DlgAlign.GetLastWidth(); for (i = 0; i < 20; i++) { //t=CScenario.GetStepPara_Int(m_StepIndex,i*9); t = (int)cmd.ArrayValues[i][0]; //m_ListBox[0].AddString(CScenario.GetParameterName_Int(0x2,t)); //m_ListBox[0].SetItemData(i,i); } m_ListBox[0].SelectedIndex = 0; m_DlgAlign.MoveToNextLine(); m_DlgAlign.MoveTopBack(); t = 0; //in case "potentially uninitialized local variable 't' used" for (i = 0; i < Num / 20; i++) { m_DlgAlign.SetLastWidth(ListBoxWidth); if (i != 8) { m_DlgAlign.MoveToRight(); } ParaCode = cmd.Keys[i]; CreateControl_Def(ParaCode, i); if (i != 7) { m_DlgAlign.MoveToNextLine(); } //if (i==2 || i==5) //m_DlgAlign.MoveToNextLine(); if (i == 6) { t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex; } else if (i == 7) { m_DlgAlign.MoveLeftBack(); ShowComboBox(m_ComboBoxNum - 1, (t == 3 || t == 5)); } else if (i == 8) { //m_DlgAlign.MoveLeftBack(); ShowPosBox(m_PosBoxNum - 1, (t == 4 || t == 6)); } } } break; case 0x47: { ParaTypeInfo TypeInfo = CScenario.GetParaTypeInfo(2); CreateListBox(0, (-1), ("敌军出场人物"), TypeInfo.MaxNameLen); m_DlgAlign.MoveToNextLine(false, false); m_DlgAlign.MoveTopBack(); m_DlgAlign.MoveToRight(); int ListBoxWidth = m_DlgAlign.GetLastWidth(); for (i = 0; i < 80; i++) { //t=CScenario.GetStepPara_Int(m_StepIndex,i*10); t = (int)cmd.ArrayValues[i][0]; m_ListBox[0].Items.Add(CScenario.GetParameterName_Int(0x2, t)); //m_ListBox[0].AddString(CScenario.GetParameterName_Int(0x2,t)); //m_ListBox[0].SetItemData(i,i); } m_ListBox[0].SelectedIndex = (0); m_DlgAlign.MoveToNextLine(); m_DlgAlign.MoveTopBack(); t = 0; //in case "potentially uninitialized local variable 't' used" for (i = 0; i < Num / 80; i++) { m_DlgAlign.SetLastWidth(ListBoxWidth); if (i != 2 && i != 9) { m_DlgAlign.MoveToRight(); } ParaCode = cmd.Keys[i]; CreateControl_Def(ParaCode, i); if (i != 1 && i != 8) { m_DlgAlign.MoveToNextLine(); } if (i == 7) { t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex; } else if (i == 8) { m_DlgAlign.MoveLeftBack(); ShowComboBox(m_ComboBoxNum - 1, (t == 3 || t == 5)); } else if (i == 9) { ShowPosBox(m_PosBoxNum - 1, (t == 4 || t == 6)); } } } break; case 0x4b: CreateTextBox(m_TextBoxNum++, i++, 0, 0x10000 + 14, false, ("BFIndex")); for (; i < Num; i++) { ParaCode = cmd.Keys[i]; CreateControl_Def(ParaCode, i); } break; case 0x4d: CreateControl_Def(0x41, i++); t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex; m_DlgAlign.MoveToNextLine(); CreateControl_Def(0x2, i++); m_DlgAlign.MoveLeftBack(); ShowComboBox(m_ComboBoxNum - 1, (t == 0)); CreateTextBox(m_TextBoxNum++, i++, 0, 0x10000 + 114, false, ("BFIndex")); m_DlgAlign.MoveLeftBack(); ShowTextBox(m_TextBoxNum - 1, (t == 1)); CreateControl_Def(0x101, i++); CreateControl_Def(0x3, i++); m_DlgAlign.MoveLeftBack(); ShowAreaBox(m_AreaBoxNum - 1, (t == 2)); ShowComboBox(m_ComboBoxNum - 1, (t == 2)); m_DlgAlign.MoveToNextLine(); CreateControl_Def(0x2f, i++); CreateControl_Def(0x18, i++); CreateControl_Def(0x30, i++); m_DlgAlign.MoveToNextLine(); CreateControl_Def(0x4, i++, ("-HP")); CreateControl_Def(0x4, i++, ("-MP")); break; case 0x100: { ParaTypeInfo TypeInfo = CScenario.GetParaTypeInfo(0x100); CreateComboBox(0, (-1), ("代码"), TypeInfo.MaxNameLen); //m_ComboBox[0].SetScrollRange() for (i = 0; i < TypeInfo.NameNum; i++) { //t=CScenario.GetParaTypeNameIndex(0x100,i); //m_ComboBox[0].AddString(CScenario.GetParameterName_Int(0x100,t)); //m_ComboBox[0].SetItemData(i,t); //if (int(m_CodeSelect)==t || (m_CodeSelect==-1 && t==5)) m_ComboBox[0].SetCurSel(i); } } break; default: { int ControlNum = 0; t = 0; //in case "potentially uninitialized local variable 't' used" for (i = 0; i < Num; i++) { ParaCode = cmd.Keys[i]; ControlNum += CreateControl_Def(ParaCode, i); switch (m_Code) { case 0x27: if (i == 0) { m_DlgAlign.MoveToNextLine(); t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex; } else { m_DlgAlign.MoveLeftBack(); ShowComboBox(m_ComboBoxNum - 1, (i == t + 1)); } break; case 0x31: case 0x4e: case 0x53: //0x31 i==0 || i==1 switch (i) { case 0: m_DlgAlign.MoveToNextLine(); t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex; break; case 1: ShowComboBox(m_ComboBoxNum - 1, (t == 0)); m_DlgAlign.MoveLeftBack(); break; case 2: ShowAreaBox(m_AreaBoxNum - 1, (t == 1)); break; case 3: m_DlgAlign.MoveToNextLine(); ShowComboBox(m_ComboBoxNum - 1, (t == 1)); break; case 4: if (m_Code == 0x4e) { t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex; } break; case 5: if (m_Code == 0x4e) { m_DlgAlign.MoveLeftBack(); ShowComboBox(m_ComboBoxNum - 1, (t == 3 || t == 5)); } break; case 6: if (m_Code == 0x4e) { m_DlgAlign.MoveLeftBack(); ShowPosBox(m_PosBoxNum - 1, (t == 4 || t == 6)); } break; } break; case 0x3d: case 0x4f: if (i == 2) { m_DlgAlign.MoveToNextLine(); } break; case 0x3e: case 0x48: if (i == 0 || i == 2 || i == 4) { m_DlgAlign.MoveToNextLine(); } break; case 0x41: if (i == 2) { m_DlgAlign.MoveToNextLine(); } else if (i == 3) { t = m_ComboBox[m_ComboBoxNum - 1].SelectedIndex; } else if (i == 4) { ShowAreaBox(m_AreaBoxNum - 1, (t == 1)); } break; case 0x45: if (i == 1 || i == 3 || i == 7) { m_DlgAlign.MoveToNextLine(); } break; case 0x50: if (i == 1) { m_DlgAlign.MoveToNextLine(); } break; case 0x58: if (i == 3) { m_DlgAlign.MoveToNextLine(); } break; case 0x59: if (i == 0 || i == 2 || i == 4 || i == 6) { m_DlgAlign.MoveToNextLine(); } break; case 0x67: if (i == 0) { m_DlgAlign.MoveToNextLine(); } break; default: if (ControlNum >= 5) { m_DlgAlign.MoveToNextLine(); ControlNum = 0; } break; } } } break; } m_DlgAlign.MoveToNextLine(); if (m_DlgAlign.GetWidthMax() < 200) { this.Width = m_DlgAlign.GetWidthMax(); } else { this.Width = m_DlgAlign.GetWidthMax() + 30; } this.Height = m_DlgAlign.GetHeightMax() + 80; //PlaceOKCancelButton(); string WinCaption = CScenario.GetCodeName(m_Code); if (m_Code < 0x100) { this.Text = ("修改-") + WinCaption; } else if (m_Code >= 0x100 && m_Code <= 0x100) { this.Text = "选择代码"; } }