示例#1
0
        /// <summary>
        /// Creates a backup....I can't find where to put this to make it actually helpful...
        /// </summary>
        /// <param name="Cameras"><see cref="CameraEditorForm.Cameras"/></param>
        public static void CreateBackup(BCAM Cameras)
        {
            LCPP Backup = new LCPP();

            for (int i = 0; i < Cameras.EntryCount; i++)
            {
                Backup.Add(Cameras[i]);
            }
            Backup.Creator = "LCP Backup Code";
            string date = DateTime.Now.ToString("MMMM dd yyyy | h:m:s tt");

            Backup.Name = "LCP Backup " + date;
            Backup.Save(Path.Combine(PresetPath, $"BACKUP-{date}.lcpp"), false);
        }
示例#2
0
        private void NewToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Program.IsUnsavedChanges && !IsDiscardChanges())
            {
                return;
            }

            Filename = null;
            MainSplitContainer.Panel2.Controls.Clear();
            Cameras = new BCAM();
            CameraListBox.Enabled                 = true;
            SaveToolStripMenuItem.Enabled         = true;
            SaveAsToolStripMenuItem.Enabled       = true;
            ExportPresetToolStripMenuItem.Enabled = true;
            CameraListBox.Items.Clear();
            Console.WriteLine("New File Started!");
            AddDefaultCameraToolStripMenuItem_Click(null, null);
            CameraListBox.SelectedIndex = 0;
            Program.IsUnsavedChanges    = false;
        }
示例#3
0
        public void Open(string file)
        {
            CameraListBox.SelectedIndex = -1;
            Filename = file;
            SoundPlayer Patience = new SoundPlayer();

            if (File.Exists(Filename) && new FileInfo(file).IsFileLocked())
            {
                Console.WriteLine("The chosen file cannot be accessed. The file has not been modified, and your changes have not been saved.");
                goto OpenFailed;
            }
            if (Program.CanPlaySfx(Program.WaitSfx))
            {
                Patience.SoundLocation = Program.WaitSfx;
                Patience.Load();
                Patience.PlayLooping();
            }
            switch (new FileInfo(file).Extension)
            {
            case ".bcam":
                Console.WriteLine("Loading as a Binary Camera file:");
                FileStream fs = new FileStream(file, FileMode.Open);
                Cameras = new BCAM(fs);
                fs.Close();
                Console.WriteLine("Load Complete!");
                break;

            case ".arc":
            case ".rarc":
                Console.WriteLine("Loading as an Archive:");
                RARC Archive = YAZ0.Check(file) ? new RARC(new MemoryStream(YAZ0.Decompress(File.ReadAllBytes(file)))) : new RARC(file);
                Console.WriteLine("Archive Loaded. Looking for the .bcam...");
                string CameraParamPath = Archive.GetItemKeyFromNoCase("Camera/CameraParam.bcam");
                if (CameraParamPath == null)
                {
                    CameraParamPath = Archive.GetItemKeyFromNoCase("ActorInfo/CameraParam.bcam");
                    if (CameraParamPath == null)
                    {
                        Console.WriteLine("Load Failed! No BCAM was found inside the archive!\n(Maybe it was in the wrong place?)");
                        goto OpenFailed;
                    }
                }
                Console.WriteLine(".bcam found.");
                Cameras = new BCAM(new MemoryStream(((RARC.File)Archive[CameraParamPath]).FileData));
                Console.WriteLine("Load Complete!");
                break;
            }

            Console.WriteLine();

            Console.WriteLine("Writing the Camera List:");

            CameraListBox.Enabled = false;
            CameraListBox.Items.Clear();
            for (int i = 0; i < Cameras.EntryCount; i++)
            {
                CameraListBox.Items.Add(Cameras[i].GetTranslatedName());
                Console.Write($"\r{Math.Min((int)(((float)(i + 1) / (float)CameraListBox.Items.Count) * 100), 100)}%          ");
            }
            Console.WriteLine("Complete");

            if (Cameras.EntryCount > 0)
            {
                CameraListBox.SelectedIndex = 0;
            }
            CameraListBox.Enabled                 = true;
            SaveToolStripMenuItem.Enabled         = true;
            SaveAsToolStripMenuItem.Enabled       = true;
            ExportPresetToolStripMenuItem.Enabled = true;
            Program.IsUnsavedChanges              = false;

            Patience.Stop();
            if (Program.CanPlaySfx(Program.SuccessSfx))
            {
                Patience.SoundLocation = Program.SuccessSfx;
                Patience.Load();
                Patience.Play();
            }
            return;

OpenFailed:
            Patience.Stop();
            if (Program.CanPlaySfx(Program.FailureSfx))
            {
                Patience.SoundLocation = Program.FailureSfx;
                Patience.Load();
                Patience.Play();
            }
        }