using System.Collections.Generic; using DotNetCTFDumper.Utils; namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Objects { public class Movements:ChunkLoader { public List Items; public Movements(ByteReader reader) : base(reader) { } public Movements(ChunkList.Chunk chunk) : base(chunk) { } public override void Read() { Items = new List(); var rootPosition = Reader.Tell(); var count = Reader.ReadUInt32(); var currentPos = Reader.Tell(); for (int i = 0; i < count; i++) { var mov = new Movement(Reader); mov.rootPos = (int) rootPosition; mov.Read(); Items.Add(mov); Reader.Seek(currentPos+16); currentPos = Reader.Tell(); } } public override void Print(bool ext) { throw new System.NotImplementedException(); } public override string[] GetReadableData() { throw new System.NotImplementedException(); } } public class Movement : ChunkLoader { public int rootPos; public short Player; public short Type; public byte MovingAtStart; public int DirectionAtStart; public Movement(ByteReader reader) : base(reader) { } public Movement(ChunkList.Chunk chunk) : base(chunk) { } public override void Read() { var nameOffset = Reader.ReadInt32(); var movementId = Reader.ReadInt32(); var newOffset = Reader.ReadInt32(); var dataSize = Reader.ReadInt32(); Reader.Seek(rootPos+newOffset); Player = Reader.ReadInt16(); Type = Reader.ReadInt16(); MovingAtStart = Reader.ReadByte(); Reader.Skip(3); DirectionAtStart = Reader.ReadInt32(); //TODO: Extension Stuff } public override void Print(bool ext) { throw new System.NotImplementedException(); } public override string[] GetReadableData() { throw new System.NotImplementedException(); } } }