private void button7_Click(object sender, EventArgs e) { PCCObject.ExportEntry entry = new PCCObject.ExportEntry(); PCCObject.ExportEntry source = pcc.Exports[ObjectIndex]; byte[] Header = new byte[source.info.Length]; //Header for (int i = 0; i < source.info.Length; i++) { Header[i] = source.info[i]; } entry.pccRef = pcc; entry.info = Header; if (radioButton2.Checked) //Name from list { if (comboBox1.SelectedIndex != -1) { entry.idxObjectName = comboBox1.SelectedIndex; } } if (radioButton3.Checked) //Custom Name { if (textBox1.Text != "") { pcc.Names.Add(textBox1.Text); entry.idxObjectName = pcc.Names.Count - 1; } } if (radioButton4.Checked) //Class { if (comboBox2.SelectedIndex != -1) { entry.idxClassName = Classes[comboBox2.SelectedIndex]; } } if (radioButton8.Checked) //Link { if (treeView1.SelectedNode != null) { string link = treeView1.SelectedNode.Name; entry.idxLink = Convert.ToInt32(link); } } byte[] Data = new byte[0]; if (radioButton6.Checked) //Load data from file... { if (File.Exists(textBox2.Text)) { FileStream fs = new FileStream(textBox2.Text, FileMode.Open, FileAccess.Read); Data = new byte[fs.Length]; for (int i = 0; i < fs.Length; i++) { Data[i] = (byte)fs.ReadByte(); } fs.Close(); } } if (radioButton7.Checked) //...or keep old data { Data = new byte[source.Data.Length]; for (int i = 0; i < source.Data.Length; i++) { Data[i] = source.Data[i]; } } entry.Data = Data; int lastoffset = 0; foreach (PCCObject.ExportEntry ent in pcc.Exports) { if (ent.DataOffset > lastoffset) { lastoffset = ent.DataOffset + ent.Data.Length; } } entry.DataOffset = lastoffset; //entry.DataSize = -1;//force update pcc.addExport(entry); foreach (PCCObject.ExportEntry ex in pcc.Exports) //silly update trick, but it works... wv { ex.Data = ex.Data; } refForm.RefreshView(); this.Close(); }