mirror of
https://github.com/SabreTools/BinaryObjectScanner.git
synced 2026-07-17 14:25:12 +00:00
Fix SGA builder and wrapper
This commit is contained in:
@@ -472,9 +472,9 @@ namespace BurnOutSharp.Builders
|
||||
switch (majorVersion)
|
||||
{
|
||||
case 4: (directory as Directory4).Folders[i].Name = strings[(directory as Directory4).Folders[i].NameOffset]; break;
|
||||
case 5: (directory as Directory4).Folders[i].Name = strings[(directory as Directory4).Folders[i].NameOffset]; break;
|
||||
case 6: (directory as Directory4).Folders[i].Name = strings[(directory as Directory4).Folders[i].NameOffset]; break;
|
||||
case 7: (directory as Directory4).Folders[i].Name = strings[(directory as Directory4).Folders[i].NameOffset]; break;
|
||||
case 5: (directory as Directory5).Folders[i].Name = strings[(directory as Directory5).Folders[i].NameOffset]; break;
|
||||
case 6: (directory as Directory6).Folders[i].Name = strings[(directory as Directory6).Folders[i].NameOffset]; break;
|
||||
case 7: (directory as Directory7).Folders[i].Name = strings[(directory as Directory7).Folders[i].NameOffset]; break;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
@@ -485,9 +485,9 @@ namespace BurnOutSharp.Builders
|
||||
switch (majorVersion)
|
||||
{
|
||||
case 4: (directory as Directory4).Files[i].Name = strings[(directory as Directory4).Files[i].NameOffset]; break;
|
||||
case 5: (directory as Directory4).Files[i].Name = strings[(directory as Directory4).Files[i].NameOffset]; break;
|
||||
case 6: (directory as Directory4).Files[i].Name = strings[(directory as Directory4).Files[i].NameOffset]; break;
|
||||
case 7: (directory as Directory4).Files[i].Name = strings[(directory as Directory4).Files[i].NameOffset]; break;
|
||||
case 5: (directory as Directory5).Files[i].Name = strings[(directory as Directory5).Files[i].NameOffset]; break;
|
||||
case 6: (directory as Directory6).Files[i].Name = strings[(directory as Directory6).Files[i].NameOffset]; break;
|
||||
case 7: (directory as Directory7).Files[i].Name = strings[(directory as Directory7).Files[i].NameOffset]; break;
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -693,7 +693,7 @@ namespace BurnOutSharp.Wrappers
|
||||
// Loop through and get all parent directories
|
||||
var parentNames = new List<string> { filename };
|
||||
|
||||
// Get the immediate parent directory
|
||||
// Get the parent directory
|
||||
object folder;
|
||||
switch (MajorVersion)
|
||||
{
|
||||
@@ -717,6 +717,8 @@ namespace BurnOutSharp.Wrappers
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Should the section name/alias be used in the path as well?
|
||||
|
||||
// Reverse and assemble the filename
|
||||
parentNames.Reverse();
|
||||
filename = Path.Combine(parentNames.ToArray());
|
||||
@@ -760,18 +762,27 @@ namespace BurnOutSharp.Wrappers
|
||||
if (compressedData == null)
|
||||
return false;
|
||||
|
||||
// Decompress the data
|
||||
byte[] data = new byte[outputFileSize];
|
||||
ZStream zst = new ZStream
|
||||
// If the compressed and uncompressed sizes match
|
||||
byte[] data;
|
||||
if (fileSize == outputFileSize)
|
||||
{
|
||||
next_in = compressedData,
|
||||
avail_in = compressedData.Length,
|
||||
next_out = data,
|
||||
avail_out = data.Length,
|
||||
};
|
||||
zst.inflateInit();
|
||||
zst.inflate(zlibConst.Z_FULL_FLUSH);
|
||||
zst.inflateEnd();
|
||||
data = compressedData;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Decompress the data
|
||||
data = new byte[outputFileSize];
|
||||
ZStream zst = new ZStream
|
||||
{
|
||||
next_in = compressedData,
|
||||
avail_in = compressedData.Length,
|
||||
next_out = data,
|
||||
avail_out = data.Length,
|
||||
};
|
||||
zst.inflateInit();
|
||||
zst.inflate(zlibConst.Z_FULL_FLUSH);
|
||||
zst.inflateEnd();
|
||||
}
|
||||
|
||||
// If we have an invalid output directory
|
||||
if (string.IsNullOrWhiteSpace(outputDirectory))
|
||||
|
||||
Reference in New Issue
Block a user