private static DLCPackageData ConvertAlbumArt(string cdlcFilePath, DLCPackageData info) { var unpackedDirPath = Path.Combine(Path.GetDirectoryName(cdlcFilePath), String.Format("{0}_Pc", Path.GetFileNameWithoutExtension(cdlcFilePath))); //D:\Temp\Test\RS001SONG0000005_Pc\MoreThanAFeeling\GRAssets\AlbumArt // iterate through unpacked cdlc folder and find artwork var ddsFilesPath = Directory.GetFiles(unpackedDirPath, "*.dds", SearchOption.AllDirectories); if (!ddsFilesPath.Any()) { Console.WriteLine(@"Using default album artwork"); Console.ReadLine(); return(info); } try { var albumArtPath = ddsFilesPath[0]; Console.WriteLine(@"Converting album artwork using: " + Path.GetFileName(albumArtPath)); var ddsFiles = new List <DDSConvertedFile>(); ddsFiles.Add(new DDSConvertedFile() { sizeX = 64, sizeY = 64, sourceFile = albumArtPath, destinationFile = GeneralExtensions.GetTempFileName(".dds") }); ddsFiles.Add(new DDSConvertedFile() { sizeX = 128, sizeY = 128, sourceFile = albumArtPath, destinationFile = GeneralExtensions.GetTempFileName(".dds") }); ddsFiles.Add(new DDSConvertedFile() { sizeX = 256, sizeY = 256, sourceFile = albumArtPath, destinationFile = GeneralExtensions.GetTempFileName(".dds") }); // Convert to correct dds file sizes DLCPackageCreator.ToDDS(ddsFiles); var albumArtDir = Path.GetDirectoryName(albumArtPath); var albumArtName = String.Format("album_{0}", info.Name.ToLower().Replace("_", "").GetValidName()); var ddsPartialPath = Path.Combine(albumArtDir, albumArtName); foreach (var dds in ddsFiles) { var destAlbumArtPath = String.Format("{0}_{1}.dds", ddsPartialPath, dds.sizeX); if (!File.Exists(dds.destinationFile)) { Console.WriteLine(@"Could not convert: " + destAlbumArtPath); } File.Copy(dds.destinationFile, destAlbumArtPath); // delete temp artwork file File.Delete(dds.destinationFile); dds.destinationFile = destAlbumArtPath; } // update package info with album art files info.ArtFiles = ddsFiles; } catch (Exception ex) { Console.WriteLine(@"Could not convert album artwork in " + Path.GetFileName(cdlcFilePath) + @": " + ex.Message); } return(info); }
private static void CheckAlbumArt(string srcDir, string dlcName) { // iterate through unpacked cdlc src folder and find artwork var ddsFilesPath = Directory.GetFiles(srcDir, "album_*.dds", SearchOption.AllDirectories); if (!ddsFilesPath.Any()) { Console.WriteLine(@"Did not find any album artwork in:" + Environment.NewLine + srcDir); Console.WriteLine(""); Console.ReadLine(); } try { bool is64 = false, is128 = false, is256 = false; string albumArtPath = String.Empty; foreach (var ddsFile in ddsFilesPath) { if (ddsFile.Contains("_64")) { is64 = true; } if (ddsFile.Contains("_128")) { is128 = true; } if (ddsFile.Contains("_256")) { is256 = true; albumArtPath = ddsFile; } } // do not update psarc if album artwork if already valid if (is64 && is128 && is256) { Console.WriteLine(@"Artwork is valid."); Console.WriteLine(""); return; } if (String.IsNullOrEmpty(albumArtPath)) { albumArtPath = ddsFilesPath[0]; } Console.WriteLine(@"Repairing album artwork using: " + Path.GetFileName(albumArtPath)); var ddsFiles = new List <DDSConvertedFile>(); if (!albumArtPath.Contains("_64")) { ddsFiles.Add(new DDSConvertedFile() { sizeX = 64, sizeY = 64, sourceFile = albumArtPath, destinationFile = GeneralExtensions.GetTempFileName(".dds") }); } if (!albumArtPath.Contains("_128")) { ddsFiles.Add(new DDSConvertedFile() { sizeX = 128, sizeY = 128, sourceFile = albumArtPath, destinationFile = GeneralExtensions.GetTempFileName(".dds") }); } if (!albumArtPath.Contains("_256")) { ddsFiles.Add(new DDSConvertedFile() { sizeX = 256, sizeY = 256, sourceFile = albumArtPath, destinationFile = GeneralExtensions.GetTempFileName(".dds") }); } // Convert to correct dds file sizes DLCPackageCreator.ToDDS(ddsFiles); var albumArtDir = Path.GetDirectoryName(albumArtPath); var albumArtName = String.Format("album_{0}", dlcName.ToLower().Replace("_", "").GetValidFileName()); var ddsPartialPath = Path.Combine(albumArtDir, albumArtName); foreach (var dds in ddsFiles) { var destAlbumArtPath = String.Format("{0}_{1}.dds", ddsPartialPath, dds.sizeX); if (!File.Exists(dds.destinationFile)) { Console.WriteLine(@"Could not repair: " + destAlbumArtPath); } File.Copy(dds.destinationFile, destAlbumArtPath); // delete temp artwork file File.Delete(dds.destinationFile); } } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); Console.ReadLine(); } }