private void добавитьToolStripMenuItem3_Click(object sender, EventArgs e) { CTriggerDataOperation ctdo = new CTriggerDataOperation(); ctdo.iType = operationsComboBox.SelectedIndex; ctdo.pParam = Operations.GetEmptyOperation(ctdo.iType, ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].version); ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].listOperation.Add(ctdo); LoadData(2); }
public AIPolicy Read(string filepath, MainForm f) { AIPolicy ai = new AIPolicy(); BinaryReader br = new BinaryReader(new FileStream(filepath, FileMode.Open, FileAccess.Read)); ai.header = br.ReadInt32(); int count = br.ReadInt32(); f.Progress.Maximum = count; for (int i = 0; i < count; ++i) { ++f.Progress.Value; Application.DoEvents(); CPolicyData aic = new CPolicyData(); aic.version = br.ReadInt32(); aic.ID = br.ReadInt32(); int ccount = br.ReadInt32(); for (int j = 0; j < ccount; ++j) { CTriggerData ctd = new CTriggerData(); ctd.version = br.ReadInt32(); ctd.uID = br.ReadInt32(); ctd.bActive = br.ReadBoolean(); ctd.bRun = br.ReadBoolean(); ctd.bAttackValid = br.ReadBoolean(); ctd.szName = br.ReadBytes(128); ctd.rootConditon = LoadCondition(br); int pcount = br.ReadInt32(); for (int k = 0; k < pcount; ++k) { CTriggerDataOperation ctdo = new CTriggerDataOperation(); ctdo.iType = br.ReadInt32(); ctdo.pParam = Operations.Read(br, ctdo.iType, ctd.version); ctdo.iTargetType = br.ReadInt32(); if (ctdo.iTargetType == 6) { ctdo.pTargetParam = br.ReadInt32(); } else { ctdo.pTargetParam = 0; } ctd.listOperation.Add(ctdo); } aic.CTD.Add(ctd); } ai.controllers.Add(aic); } f.Progress.Value = 0; br.Close(); return(ai); }
public void LoadData(byte type) { OnLoad = true; switch (type) { case 0: int prev = triggers_list.SelectedIndex; triggers_list.BeginUpdate(); triggers_list.Items.Clear(); controllers_list.Items.Clear(); operations_list.Items.Clear(); operation_param.Rows.Clear(); disableAll(); for (int i = 0; i < ai.controllers.Count; ++i) { triggers_list.Items.Add(ai.controllers[i].ID); } triggers_list.EndUpdate(); triggers_list.SelectedIndex = triggers_list.Items.Count > prev ? prev : 0; controllers_list.ClearSelected(); break; case 1: int prevc = controllers_list.SelectedIndex; controllers_list.BeginUpdate(); controllers_list.Items.Clear(); operations_list.Items.Clear(); operation_param.Rows.Clear(); disableAll(); controller_box.Text = string.Format(Lang.Translate("controller_box_txt"), ai.controllers[triggers_list.SelectedIndex].version); for (int i = 0; i < ai.controllers[triggers_list.SelectedIndex].CTD.Count; ++i) { controllers_list.Items.Add(string.Format("[{0}] {1}", ai.controllers[triggers_list.SelectedIndex].CTD[i].uID, ai.controllers[triggers_list.SelectedIndex].CTD[i].Name)); } controllers_list.EndUpdate(); trigger_id.Text = ai.controllers[triggers_list.SelectedIndex].ID.ToString(); if (controllers_list.Items.Count > 0) { controllers_list.SelectedIndex = controllers_list.Items.Count > prevc ? prevc : 0; } string mobs = "Mobs: "; foreach (string s in CustomData.GetAi(ai.controllers[triggers_list.SelectedIndex].ID)) { mobs += string.Format("{0}, ", s); } mobs = mobs.Substring(0, mobs.Length - 2); triggers_mobs.Text = mobs; break; case 2: operations_list.BeginUpdate(); operations_list.Items.Clear(); operation_param.Rows.Clear(); operation_box.Text = string.Format(Lang.Translate("operation_box_txt"), ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].version); controller_id.Text = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].uID.ToString(); controller_name.Text = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].Name; bActive.Checked = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].bActive; bRun.Checked = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].bRun; bAttackValid.Checked = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].bAttackValid; for (int i = 0; i < ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].listOperation.Count; ++i) { string op_name = Lang.Translate(Operations.GetInfo(ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].listOperation[i].iType, ai.controllers[triggers_list.SelectedIndex].version).Name); operations_list.Items.Add(string.Format("[{0}] {1}", i, op_name)); } operations_list.EndUpdate(); LoadCondition(ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].rootConditon); break; case 3: CTriggerDataOperation ctdo = ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].listOperation[operations_list.SelectedIndex]; operation_param.Rows.Clear(); if (ctdo.iType == 2) { DataGridViewComboBoxCell combobox = new DataGridViewComboBoxCell(); foreach (string field in Operations.Channels.Values) { combobox.Items.Add(Lang.Translate(field)); } foreach (string field in Operations.GetInfo(ctdo.iType, ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].version).Fields) { operation_param.Rows.Add(Lang.Translate(field), ""); } operation_param.Rows[0].Cells[1] = combobox; operation_param.Rows[0].Cells[1].Value = Operations.Channels.Keys.Contains(ctdo.pParam[0].ToString()) ? Operations.Channels[ctdo.pParam[0].ToString()] : Operations.Channels[""]; for (int i = 1; i < ctdo.pParam.Length; ++i) { operation_param.Rows[i].Cells[1].Value = ctdo.pParam[i].ToString(); } } else { string[] fields = Operations.GetInfo(ctdo.iType, ai.controllers[triggers_list.SelectedIndex].CTD[controllers_list.SelectedIndex].version).Fields; for (int i = 0; i < ctdo.pParam.Length; ++i) { operation_param.Rows.Add(Lang.Translate(fields[i]), ctdo.pParam[i].ToString()); } } TargetType.SelectedIndex = ctdo.iTargetType; if (ctdo.iTargetType == 6) { target_param.Visible = true; target_param_txt.Visible = true; target_param.Text = ctdo.pTargetParam.ToString(); } else { target_param.Visible = false; target_param_txt.Visible = false; } break; default: break; } OnLoad = false; }