Exemple #1
0
        public PACInfoWindow(RepackPAC repackInstance)
        {
            InitializeComponent();

            this.repackInstance = repackInstance;

            // TODO: remove this and use ViewModel
            repackInstance.initializePACInfoFileRepack();
            repackInstance.parseInfo();

            parsedFileInfo = repackInstance.parsedFileInfo;

            refreshTree();
        }
        public void repackData(
            string reimportRepackedFiles,
            string reimportFilestoRepack,
            string unitFolderName,
            string data,
            string reimportConvertedfromMBONFolder,
            Unit_Files_List unit_Files
            )
        {
            RepackPAC repackInstance = new RepackPAC(Properties.Settings.Default.OutputRepackPAC);

            Properties.Settings.Default.OutputRepackPAC = reimportRepackedFiles;

            string data_folder_path = reimportFilestoRepack + @"\Data - " + unit_Files.data_and_script_PAC_hash.ToString("X8");

            Directory.CreateDirectory(data_folder_path);

            /// Repack Data Folder
            DirectoryCopy(repackTemplates + @"\Data", data_folder_path, true);

            string data_001FHM_path = data_folder_path + @"\001-FHM\";

            FileStream fs002     = File.Create(data_001FHM_path + @"\002.bin");
            FileStream vardataFS = File.OpenRead(reimportConvertedfromMBONFolder + @"\Unit Variables\UnitData.bin");

            vardataFS.Seek(0, SeekOrigin.Begin);
            vardataFS.CopyTo(fs002);
            fs002.Close();
            vardataFS.Close();

            FileStream fs003     = File.Create(data_001FHM_path + @"\003.bin");
            FileStream MBON003FS = File.OpenRead(data + @"\001-FHM\003.bin");

            MBON003FS.Seek(0, SeekOrigin.Begin);
            MBON003FS.CopyTo(fs003);
            fs003.Close();
            MBON003FS.Close();

            FileStream fs005     = File.Create(data_001FHM_path + @"\005.bin");
            FileStream MBON005FS = File.OpenRead(data + @"\001-FHM\005.bin");

            MBON005FS.Seek(0, SeekOrigin.Begin);
            MBON005FS.CopyTo(fs005);
            fs005.Close();
            MBON005FS.Close();

            FileStream fs006 = File.Create(data_001FHM_path + @"\006.bin");
            FileStream mscFS = File.OpenRead(XBScriptFolder + @"\Compiled Refactored Script\" + unitFolderName + ".mscsb");

            mscFS.Seek(0, SeekOrigin.Begin);
            mscFS.CopyTo(fs006);
            fs006.Close();
            mscFS.Close();

            FileStream fs008        = File.Create(data_001FHM_path + @"\008.bin");
            FileStream voicelogicFS = File.OpenRead(reimportConvertedfromMBONFolder + @"\Voice Data\006.bin");

            voicelogicFS.Seek(0, SeekOrigin.Begin);
            voicelogicFS.CopyTo(fs008);
            fs008.Close();
            voicelogicFS.Close();

            Properties.Settings.Default.OpenRepackPath = data_folder_path;

            repackInstance.initializePACInfoFileRepack();
            repackInstance.parseInfo();
            repackInstance.repackPAC();


            // Get unit's english name
            UnitIDList unit_Infos = load_UnitID();
            string     unitName   = unit_Infos.Unit_ID.FirstOrDefault(s => s.id == unit_Files.Unit_ID).name_english.Replace(" ", "_");

            unitName = unitName.Replace(".", "_");
            unitName = unitName.Replace("∀", "Turn_A");

            string basePsarcRepackFolder = XBCombinedPsarcFolder + @"\Units\FB_Units\" + unitName;

            string[] allRepackedPACs = Directory.GetFiles(reimportRepackedFiles, "*", SearchOption.TopDirectoryOnly);


            string Data_Path = basePsarcRepackFolder + @"\Data\PATCH" + unit_Files.data_and_script_PAC_hash.ToString("X8") + ".PAC";

            FileStream dataFS = File.OpenRead(allRepackedPACs.FirstOrDefault(s => s.Contains("Data")));

            dataFS.Seek(0, SeekOrigin.Begin);

            FileStream newDataFS = File.Create(Data_Path);

            dataFS.CopyTo(newDataFS);

            dataFS.Close();

            newDataFS.Close();
        }