More Parameters, should now work with every game

master
1987kostya 4 years ago
parent ad3e15d29f
commit 2cd7175b6e

@ -163,8 +163,13 @@
</Compile>
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Click.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\ExpressionParameter.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Group.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\GroupPointer.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\KeyParameter.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Shoot.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\StringParam.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\TwoShorts.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Zone.cs" />
<Compile Include="MMFParser\EXE\Loaders\Extensions.cs" />
<Compile Include="MMFParser\EXE\Loaders\Objects\Movements.cs" />
<Compile Include="MMFParser\EXE\Loaders\Objects\Text.cs" />

@ -0,0 +1,41 @@
using CTFAK.Utils;
namespace CTFAK.MMFParser.EXE.Loaders.Events.Parameters
{
public class Group:ParameterCommon
{
public long Offset;
public ushort Flags;
public ushort Id;
public string Name;
public int Password;
public Group(ByteReader reader) : base(reader)
{
}
public override void Read()
{
base.Read();
Offset = Reader.Tell() - 24;
Flags = Reader.ReadUInt16();
Id = Reader.ReadUInt16();
Name = Reader.ReadWideString();
Password = Reader.ReadInt32();
}
public override void Write(ByteWriter Writer)
{
base.Write(Writer);
Writer.WriteUInt16(Flags);
Writer.WriteUInt16(Id);
Writer.WriteAscii(Name);
Writer.WriteInt32(Password);
}
public override string ToString()
{
return $"Group: {Name}";
}
}
}

@ -0,0 +1,29 @@
using CTFAK.Utils;
namespace CTFAK.MMFParser.EXE.Loaders.Events.Parameters
{
public class GroupPointer:ParameterCommon
{
public int Pointer;
public short Id;
public GroupPointer(ByteReader reader) : base(reader)
{
}
public override void Read()
{
base.Read();
Pointer = Reader.ReadInt32();
Id = Reader.ReadInt16();
}
public override void Write(ByteWriter Writer)
{
base.Write(Writer);
Writer.WriteInt32(Pointer);
Writer.WriteInt32(Id);
}
}
}

@ -0,0 +1,31 @@
using CTFAK.Utils;
namespace CTFAK.MMFParser.EXE.Loaders.Events.Parameters
{
public class StringParam:ParameterCommon
{
public string Value;
public StringParam(ByteReader reader) : base(reader)
{
}
public override void Read()
{
base.Read();
Value = Reader.ReadAscii();
}
public override void Write(ByteWriter Writer)
{
base.Write(Writer);
Writer.WriteAscii(Value);
}
public override string ToString()
{
return $"String: {Value}";
}
}
}

@ -0,0 +1,33 @@
using CTFAK.Utils;
namespace CTFAK.MMFParser.EXE.Loaders.Events.Parameters
{
public class TwoShorts:ParameterCommon
{
public short Value1;
public short Value2;
public TwoShorts(ByteReader reader) : base(reader)
{
}
public override void Read()
{
base.Read();
Value1 = Reader.ReadInt16();
Value2 = Reader.ReadInt16();
}
public override void Write(ByteWriter Writer)
{
base.Write(Writer);
Writer.WriteInt16(Value1);
Writer.WriteInt16(Value2);
}
public override string ToString()
{
return $"Shorts: {Value1} and {Value2}";
}
}
}

@ -0,0 +1,39 @@
using CTFAK.Utils;
namespace CTFAK.MMFParser.EXE.Loaders.Events.Parameters
{
public class Zone:ParameterCommon
{
public short X1;
public short Y1;
public short X2;
public short Y2;
public Zone(ByteReader reader) : base(reader)
{
}
public override void Read()
{
base.Read();
X1 = Reader.ReadInt16();
Y1 = Reader.ReadInt16();
X2 = Reader.ReadInt16();
Y2 = Reader.ReadInt16();
}
public override void Write(ByteWriter Writer)
{
base.Write(Writer);
Writer.WriteInt16(X1);
Writer.WriteInt16(Y1);
Writer.WriteInt16(X2);
Writer.WriteInt16(Y2);
}
public override string ToString()
{
return $"Zone ({X1}x{Y1})x({X2}x{Y2})";
}
}
}

@ -133,11 +133,50 @@ namespace CTFAK.Utils
item = new Create(reader);
}
if (code == 13)
{
item = new Every(reader);
}
if (code == 24)
{
item = new Colour(reader);
}
if (code == 19)
{
item = new Zone(reader);
}
if (code == 14 || code == 44)
{
item = new KeyParameter(reader);
}
if (code == 38)
{
item = new CTFAK.MMFParser.EXE.Loaders.Events.Parameters.Group(reader);
}
if (code == 39)
{
item = new GroupPointer(reader);
}
if (code == 49)
{
item = new GlobalValue(reader);
}
if (code == 41 || code == 64)
{
item = new StringParam(reader);
}
if (code == 47 || code == 51)
{
item = new TwoShorts(reader);
}
if (code == 6 || code == 7 || code == 35 || code == 36)
{

Loading…
Cancel
Save