Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
            }
        }