diff --git a/CTFAK/MMFParser/EXE/Loaders/Events/Expressions/Expression.cs b/CTFAK/MMFParser/EXE/Loaders/Events/Expressions/Expression.cs index 5ccd2c0..75c532c 100644 --- a/CTFAK/MMFParser/EXE/Loaders/Events/Expressions/Expression.cs +++ b/CTFAK/MMFParser/EXE/Loaders/Events/Expressions/Expression.cs @@ -39,8 +39,8 @@ namespace CTFAK.MMFParser.EXE.Loaders.Events.Expressions if(Num==16||Num==19)Loader.Write(newWriter); else { - temp = true; - newWriter.WriteInt32(_unk); + // temp = true; + // newWriter.WriteInt32(_unk); } } else diff --git a/CTFAK/MMFParser/EXE/Loaders/Objects/Movements.cs b/CTFAK/MMFParser/EXE/Loaders/Objects/Movements.cs index 5aa7cdd..6498beb 100644 --- a/CTFAK/MMFParser/EXE/Loaders/Objects/Movements.cs +++ b/CTFAK/MMFParser/EXE/Loaders/Objects/Movements.cs @@ -52,6 +52,7 @@ namespace CTFAK.MMFParser.EXE.Loaders.Objects public short Type; public byte MovingAtStart; public int DirectionAtStart; + public MovementLoader Loader; public Movement(ByteReader reader) : base(reader) { @@ -73,7 +74,14 @@ namespace CTFAK.MMFParser.EXE.Loaders.Objects MovingAtStart = Reader.ReadByte(); Reader.Skip(3); DirectionAtStart = Reader.ReadInt32(); - //TODO: Extension Stuff + switch (Type) + { + case 1: + Loader = new Mouse(Reader); + break; + + } + Loader?.Read(); } public override void Print(bool ext) @@ -86,4 +94,63 @@ namespace CTFAK.MMFParser.EXE.Loaders.Objects throw new System.NotImplementedException(); } } + public class MovementLoader:DataLoader + { + public MovementLoader(ByteReader reader) : base(reader) + { + } + + public MovementLoader(ChunkList.Chunk chunk) : base(chunk) + { + } + + public override void Read() + { + throw new System.NotImplementedException(); + } + + public override void Write(ByteWriter Writer) + { + throw new System.NotImplementedException(); + } + + public override void Print() + { + throw new System.NotImplementedException(); + } + } + public class Mouse:MovementLoader + { + public short X1; + public short X2; + public short Y1; + public short Y2; + + public Mouse(ByteReader reader) : base(reader) + { + } + + public Mouse(ChunkList.Chunk chunk) : base(chunk) + { + } + + public override void Read() + { + X1 = Reader.ReadInt16(); + X2 = Reader.ReadInt16(); + Y1 = Reader.ReadInt16(); + Y2 = Reader.ReadInt16(); + var unusedFlags = Reader.ReadInt16(); + } + + public override void Write(ByteWriter Writer) + { + Writer.WriteInt16(X1); + Writer.WriteInt16(X2); + Writer.WriteInt16(Y1); + Writer.WriteInt16(Y2); + Writer.WriteInt16(0); + + } + } } \ No newline at end of file diff --git a/CTFAK/MMFParser/MFA/Loaders/Frame.cs b/CTFAK/MMFParser/MFA/Loaders/Frame.cs index be60fa2..149e19f 100644 --- a/CTFAK/MMFParser/MFA/Loaders/Frame.cs +++ b/CTFAK/MMFParser/MFA/Loaders/Frame.cs @@ -117,9 +117,12 @@ namespace CTFAK.MMFParser.MFA.Loaders for (int i = 0; i < Layers.Count-1; i++) { - Writer.WriteColor(Layers[i].RGBCoeff); + var rgb = Layers[i].RGBCoeff; Writer.WriteInt32(Layers[i].Unk1); + Writer.WriteColor(rgb); Writer.WriteInt32(Layers[i].Unk2); + Logger.Log($"{rgb.R},{rgb.G},{rgb.B},{rgb.A} - {Layers[i].Unk1} - {Layers[i].Unk2} "); + } Chunks.Write(Writer); @@ -208,9 +211,10 @@ namespace CTFAK.MMFParser.MFA.Loaders Events.Read(); for (int i=0;i {