Files
SabreTools.Serialization/SabreTools.Wrappers/XboxISO.Extraction.cs
Deterous c179cf410b XboxISO separate functions for partition extraction (#89)
* XboxISO funcs for partition extraction

* Add new parameter with default
2026-04-19 23:59:39 -04:00

39 lines
1.5 KiB
C#

using SabreTools.Data.Models.XboxISO;
namespace SabreTools.Wrappers
{
public partial class XboxISO : IExtractable
{
/// <inheritdoc/>
public bool Extract(string outputDirectory, bool includeDebug)
{
long initialOffset = _dataSource.Position;
bool success = ExtractVideoPartition(outputDirectory, includeDebug, initialOffset);
success |= ExtractGamePartition(outputDirectory, includeDebug);
return success;
}
/// <summary>
/// Extract all files from the Video ISO partition only
/// </summary>
public bool ExtractVideoPartition(string outputDirectory, bool includeDebug, long initialOffset = 0)
{
// Extract all files from the video partition
var videoWrapper = new ISO9660(VideoPartition, _dataSource, initialOffset, _dataSource.Length);
return videoWrapper?.Extract(outputDirectory, includeDebug) ?? false;
}
/// <summary>
/// Extract all files from the XDVDFS (XISO) game partition only
/// </summary>
public bool ExtractGamePartition(string outputDirectory, bool includeDebug, long initialOffset = 0)
{
// Extract all files from the game partition
var gameWrapper = new XDVDFS(GamePartition, _dataSource, initialOffset + Constants.XisoOffsets[XGDType], Constants.XisoLengths[XGDType]);
return gameWrapper?.Extract(outputDirectory, includeDebug) ?? false;
}
}
}