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.
131 lines
3.2 KiB
C#
131 lines
3.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using DotNetCTFDumper.MMFParser.EXE;
|
|
using DotNetCTFDumper.Utils;
|
|
|
|
namespace DotNetCTFDumper.MMFParser.MFA.Loaders
|
|
{
|
|
public class Controls : DataLoader
|
|
{
|
|
public List<PlayerControl> Items;
|
|
|
|
public Controls(ByteReader reader) : base(reader)
|
|
{
|
|
}
|
|
|
|
|
|
public override void Print()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public override void Read()
|
|
{
|
|
Items = new List<PlayerControl>();
|
|
var count = Reader.ReadInt32();
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
var item = new PlayerControl(Reader);
|
|
Items.Add(item);
|
|
item.Read();
|
|
}
|
|
}
|
|
|
|
public override void Write(ByteWriter writer)
|
|
{
|
|
writer.WriteInt32(Items.Count);
|
|
foreach (var item in Items)
|
|
{
|
|
item.Write(writer);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public class PlayerControl : DataLoader
|
|
{
|
|
public int ControlType;
|
|
public int Up;
|
|
public int Down;
|
|
public int Left;
|
|
public int Right;
|
|
public int Button1;
|
|
public int Button2;
|
|
public int Button3;
|
|
public int Button4;
|
|
public int Unk1;
|
|
public int Unk2;
|
|
public int Unk3;
|
|
public int Unk4;
|
|
public int Unk5;
|
|
public int Unk6;
|
|
public int Unk7;
|
|
public int Unk8;
|
|
|
|
|
|
public PlayerControl(ByteReader reader) : base(reader)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
public override void Print()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public override void Read()
|
|
{
|
|
ControlType = Reader.ReadInt32();
|
|
var count = Reader.ReadInt32();
|
|
Up = Reader.ReadInt32();
|
|
Down = Reader.ReadInt32();
|
|
Left = Reader.ReadInt32();
|
|
Right = Reader.ReadInt32();
|
|
Button1 = Reader.ReadInt32();
|
|
Button2 = Reader.ReadInt32();
|
|
Button3 = Reader.ReadInt32();
|
|
Button4 = Reader.ReadInt32();
|
|
Unk1 = Reader.ReadInt32();
|
|
Unk2 = Reader.ReadInt32();
|
|
Unk3 = Reader.ReadInt32();
|
|
Unk4 = Reader.ReadInt32();
|
|
Unk5 = Reader.ReadInt32();
|
|
Unk6 = Reader.ReadInt32();
|
|
Unk7 = Reader.ReadInt32();
|
|
Unk8 = Reader.ReadInt32();
|
|
|
|
}
|
|
|
|
public override void Write(ByteWriter writer)
|
|
{
|
|
writer.WriteInt32(ControlType);
|
|
writer.WriteUInt32(16);
|
|
writer.WriteInt32(Up);
|
|
writer.WriteInt32(Down);
|
|
writer.WriteInt32(Left);
|
|
writer.WriteInt32(Right);
|
|
writer.WriteInt32(Button1);
|
|
writer.WriteInt32(Button2);
|
|
writer.WriteInt32(Button3);
|
|
writer.WriteInt32(Button4);
|
|
writer.WriteInt32(Unk1);
|
|
writer.WriteInt32(Unk2);
|
|
writer.WriteInt32(Unk3);
|
|
writer.WriteInt32(Unk4);
|
|
writer.WriteInt32(Unk5);
|
|
writer.WriteInt32(Unk6);
|
|
writer.WriteInt32(Unk7);
|
|
writer.WriteInt32(Unk8);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|