Skip to content

Commit

Permalink
Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
morgana-x authored Feb 11, 2025
1 parent 94b0a86 commit b4ba450
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 12 deletions.
26 changes: 14 additions & 12 deletions IDXLib/IDX.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,32 @@ public IDX(Stream stream)
this.stream = stream;
ReadHeader();
}
public void ExtractFile(IDXFile file, string outFolder)
public byte[] GetFileData(IDXFile file)
{
string outPath = Path.Combine(outFolder, file.Name);
Console.WriteLine(outPath);
byte[] buffer = new byte[file.Size];
stream.Position = file.Location;
stream.Read(buffer);
File.WriteAllBytes(outPath, buffer);
return buffer;
}
public void ExtractFile(IDXFile file, string outFolder)
{
File.WriteAllBytes(Path.Combine(outFolder, file.Name), GetFileData(file));
}
public void ExtractAll(string outFolder)
{
foreach (IDXFile file in files)
{
ExtractFile(file, outFolder);
}
}
private IDXFile ReadFile(BinaryReader br)
{
int dataLocation = br.ReadInt32();
ulong dataSize = br.ReadUInt32();

br.BaseStream.Position += 8;
byte[] textBuffer = new byte[32];
br.Read(textBuffer);
string fileName = Encoding.UTF8.GetString(textBuffer).TrimEnd().Replace("\0", "");

var fileEnt = new IDXFile(fileName, dataLocation, dataSize);
files.Add(fileEnt);
return fileEnt;
Expand All @@ -44,17 +46,17 @@ private IDXFile ReadFile(BinaryReader br)
private void ReadHeader()
{
stream.Seek(0, SeekOrigin.Begin);

BinaryReader br = new BinaryReader(stream);
stream.Position += header.Length;
stream.Position += 392;

stream.Position += header.Length + 392; // Some unknown data here

br.BaseStream.Position = 1056;

var firstFile = ReadFile(br);
while (br.BaseStream.Position < firstFile.Location)//for (ushort i = 0; i < 100; i++)
{
ReadFile(br);
}

while (br.BaseStream.Position < firstFile.Location)
ReadFile(br);
}
}
}
2 changes: 2 additions & 0 deletions IDXLib/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ public static void Main (string[] args)
string folder = filePath.Replace(".idx", "");
if (!Directory.Exists(folder))
Directory.CreateDirectory(folder);
Console.WriteLine($"Extracting to {folder}...");
idx.ExtractAll(folder);
Console.WriteLine($"Finished extracting {idx.files.Count} files!");
}
}

0 comments on commit b4ba450

Please sign in to comment.