/// <summary> /// Writes <see cref="Entry"/> object as file with an optional header. /// </summary> /// <param name="entry">The <see cref="Entry"/> object to write as file.</param> /// <param name="path">Save path for file.</param> /// <param name="isHeaderCreated">Whether to create header in file or not.</param> /// <param name="keys">The <see cref="byte"/>[] data to write as keys in the header.<para>If set to null keys are null bytes.</para></param> /// <remarks> /// Uses <see cref="WriteHeader(BinaryWriter, byte[])"/> to write header for file if indicated to. /// </remarks> public static void Write(this Entry entry, string path, bool isHeaderCreated, byte[] keys = null) { using var writer = new BinaryWriter(File.Open(path, FileMode.Create, FileAccess.Write)); if (isHeaderCreated) { SurfaceFile.WriteHeader(writer, keys); } entry.Write(writer); }
/// <summary> /// Creates <see cref="Entry"/> from surface-level Frostbite 3 file with option to skip header. /// </summary> /// <param name="path">The file to open for creating <see cref="Entry"/>.</param> /// <param name="isHeaderSkipped">Indicates whether to attempt to skip DICE's 556-<see cref="byte"/> header or not.</param> /// <returns>The <see cref="Entry"/> object created from a file.</returns> public static Entry CreateEntry(string path, bool isHeaderSkipped) { uint offset = isHeaderSkipped ? SurfaceConstants.HeaderSize : 0; return(SurfaceFile.CreateEntry(path, offset)); }