private void SaveObjectList(string archive, string path) { string[] content = path.Split('/'); string dir = content[0]; string layer = content[1]; string file = content[2]; BCSV bcsv = new BCSV(mMapFiles[archive].OpenFile($"/stage/jmp/{path}")); bcsv.mEntries.Clear(); List <AbstractObj> objs = mObjects[archive][layer]; foreach (AbstractObj o in objs) { if (o.mFile == file) { o.Save(); bcsv.mEntries.Add(o.mEntry); } } bcsv.Save(); bcsv.Close(); }
private void saveAll_Btn_Click(object sender, EventArgs e) { TabPageCollection tabs = bcsvEditorsTabControl.TabPages; foreach (TabPage tabPage in tabs) { // since we're saving, we can strip that * from tab pages tabPage.Text = tabPage.Text.Replace("*", ""); DataGridView dataGrid = mEditors[tabPage.Text]; BCSV file = mFiles[tabPage.Text]; file.mEntries.Clear(); foreach (DataGridViewRow r in dataGrid.Rows) { if (r.IsNewRow) { continue; } BCSV.Entry entry = new BCSV.Entry(); file.mEntries.Add(entry); foreach (BCSV.Field f in file.mFields.Values) { uint hash = f.mHash; string valStr = r.Cells[hash.ToString("X8")].FormattedValue.ToString(); try { switch (f.mType) { case 0: case 3: entry.Add(hash, uint.Parse(valStr)); break; case 4: entry.Add(hash, ushort.Parse(valStr)); break; case 5: entry.Add(hash, byte.Parse(valStr)); break; case 2: entry.Add(hash, float.Parse(valStr)); break; case 6: entry.Add(hash, valStr); break; } } catch { switch (f.mType) { case 0: case 3: entry.Add(hash, (uint)0); break; case 4: entry.Add(hash, (ushort)0); break; case 5: entry.Add(hash, (byte)0); break; case 2: entry.Add(hash, 0f); break; case 6: entry.Add(hash, ""); break; } } } } file.Save(); mFilesystem.Save(); } }