Example #1
0
        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);
        }
Example #2
0
        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();
            }
        }