You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.2 KiB
C#
50 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using DotNetCTFDumper.MMFParser.EXE;
|
|
using DotNetCTFDumper.Utils;
|
|
|
|
namespace DotNetCTFDumper.MMFParser.MFA.Loaders
|
|
{
|
|
public class ChunkList : DataLoader//This is used for MFA reading/writing
|
|
{
|
|
List<DataLoader> _items = new List<DataLoader>();
|
|
public byte[] Saved;
|
|
|
|
public override void Write(ByteWriter Writer)
|
|
{
|
|
if (Saved != null)
|
|
{
|
|
Writer.WriteBytes(Saved);
|
|
}
|
|
else
|
|
{
|
|
Writer.WriteInt8(0);
|
|
}
|
|
}
|
|
|
|
public override void Print()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public override void Read()
|
|
{
|
|
var start = Reader.Tell();
|
|
while(true)
|
|
{
|
|
var id = Reader.ReadByte();
|
|
if(id==0) break;
|
|
var data = new ByteReader(Reader.ReadBytes((int) Reader.ReadUInt32()));
|
|
|
|
}
|
|
|
|
var size = Reader.Tell() - start;
|
|
Reader.Seek(start);
|
|
Saved = Reader.ReadBytes((int) size);
|
|
|
|
|
|
}
|
|
public ChunkList(ByteReader reader) : base(reader) { }
|
|
}
|
|
}
|