|
|
@ -17,6 +17,7 @@ using Backdrop = CTFAK.MMFParser.MFA.Loaders.mfachunks.Backdrop;
|
|
|
|
using ChunkList = CTFAK.MMFParser.MFA.Loaders.ChunkList;
|
|
|
|
using ChunkList = CTFAK.MMFParser.MFA.Loaders.ChunkList;
|
|
|
|
using Counter = CTFAK.MMFParser.MFA.Loaders.mfachunks.Counter;
|
|
|
|
using Counter = CTFAK.MMFParser.MFA.Loaders.mfachunks.Counter;
|
|
|
|
using Events = CTFAK.MMFParser.MFA.Loaders.Events;
|
|
|
|
using Events = CTFAK.MMFParser.MFA.Loaders.Events;
|
|
|
|
|
|
|
|
using Extension = CTFAK.MMFParser.EXE.Loaders.Extension;
|
|
|
|
using Frame = CTFAK.MMFParser.EXE.Loaders.Frame;
|
|
|
|
using Frame = CTFAK.MMFParser.EXE.Loaders.Frame;
|
|
|
|
using Layer = CTFAK.MMFParser.MFA.Loaders.Layer;
|
|
|
|
using Layer = CTFAK.MMFParser.MFA.Loaders.Layer;
|
|
|
|
using Movement = CTFAK.MMFParser.MFA.Loaders.mfachunks.Movement;
|
|
|
|
using Movement = CTFAK.MMFParser.MFA.Loaders.mfachunks.Movement;
|
|
|
@ -145,10 +146,12 @@ namespace CTFAK.MMFParser.Translation
|
|
|
|
newFrame.Password = "";
|
|
|
|
newFrame.Password = "";
|
|
|
|
newFrame.LastViewedX = 320;
|
|
|
|
newFrame.LastViewedX = 320;
|
|
|
|
newFrame.LastViewedY = 240;
|
|
|
|
newFrame.LastViewedY = 240;
|
|
|
|
|
|
|
|
if (frame.Palette == null) continue;
|
|
|
|
newFrame.Palette = frame.Palette;
|
|
|
|
newFrame.Palette = frame.Palette;
|
|
|
|
newFrame.StampHandle = 13;
|
|
|
|
newFrame.StampHandle = 13;
|
|
|
|
newFrame.ActiveLayer = 0;
|
|
|
|
newFrame.ActiveLayer = 0;
|
|
|
|
//LayerInfo
|
|
|
|
//LayerInfo
|
|
|
|
|
|
|
|
if(frame.Layers==null) continue;
|
|
|
|
var count = frame.Layers.Count;
|
|
|
|
var count = frame.Layers.Count;
|
|
|
|
Logger.Log($"{newFrame.Name} - {count}");
|
|
|
|
Logger.Log($"{newFrame.Name} - {count}");
|
|
|
|
for (int i=0;i<count;i++)
|
|
|
|
for (int i=0;i<count;i++)
|
|
|
@ -211,14 +214,13 @@ namespace CTFAK.MMFParser.Translation
|
|
|
|
newFrame.Folders.Add(newFolder);
|
|
|
|
newFrame.Folders.Add(newFolder);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (frame.Events != null)
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
newFrame.Events = new Events((ByteReader) null);
|
|
|
|
newFrame.Events = new Events((ByteReader) null);
|
|
|
|
newFrame.Events.Items = new List<EventGroup>();
|
|
|
|
newFrame.Events.Items = new List<EventGroup>();
|
|
|
|
newFrame.Events.Objects = new List<EventObject>();
|
|
|
|
newFrame.Events.Objects = new List<EventObject>();
|
|
|
|
newFrame.Events._ifMFA = true;
|
|
|
|
newFrame.Events._ifMFA = true;
|
|
|
|
newFrame.Events.Version = 1028;
|
|
|
|
newFrame.Events.Version = 1028;
|
|
|
|
|
|
|
|
if(frame.Events != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
foreach (var item in newFrame.Items)
|
|
|
|
foreach (var item in newFrame.Items)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -234,9 +236,14 @@ namespace CTFAK.MMFParser.Translation
|
|
|
|
newObject.InstanceHandle = 0xFFFFFFFF;
|
|
|
|
newObject.InstanceHandle = 0xFFFFFFFF;
|
|
|
|
newFrame.Events.Objects.Add(newObject);
|
|
|
|
newFrame.Events.Objects.Add(newObject);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
newFrame.Events.Items = frame.Events.Items;
|
|
|
|
|
|
|
|
|
|
|
|
foreach (EventGroup item in frame.Events.Items)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
newFrame.Events.Items.Add(item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
mfa.Frames.Add(newFrame);
|
|
|
|
mfa.Frames.Add(newFrame);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -403,7 +410,7 @@ namespace CTFAK.MMFParser.Translation
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (animHeader.AnimationDict.ContainsKey(origAnim.Key))
|
|
|
|
if (animHeader.AnimationDict.ContainsKey(origAnim.Key))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
animation = animHeader.AnimationDict[origAnim.Key];
|
|
|
|
animation = animHeader?.AnimationDict[origAnim.Key];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else break;
|
|
|
|
else break;
|
|
|
|
|
|
|
|
|
|
|
@ -456,7 +463,7 @@ namespace CTFAK.MMFParser.Translation
|
|
|
|
newExt.Movements = newObject.Movements;
|
|
|
|
newExt.Movements = newObject.Movements;
|
|
|
|
newExt.Behaviours = newObject.Behaviours;
|
|
|
|
newExt.Behaviours = newObject.Behaviours;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var exts = Exe.Instance.GameData.GameChunks.GetChunk<Extensions>();
|
|
|
|
var exts = Program.CleanData.GameChunks.GetChunk<Extensions>();
|
|
|
|
Extension ext = null;
|
|
|
|
Extension ext = null;
|
|
|
|
foreach (var testExt in exts.Items)
|
|
|
|
foreach (var testExt in exts.Items)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -492,6 +499,17 @@ namespace CTFAK.MMFParser.Translation
|
|
|
|
newText.Movements = newObject.Movements;
|
|
|
|
newText.Movements = newObject.Movements;
|
|
|
|
newText.Behaviours = newObject.Behaviours;
|
|
|
|
newText.Behaviours = newObject.Behaviours;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (text == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
newText.Width = 10;
|
|
|
|
|
|
|
|
newText.Height = 10;
|
|
|
|
|
|
|
|
newText.Font = 0;
|
|
|
|
|
|
|
|
newText.Color=Color.Black;
|
|
|
|
|
|
|
|
newText.Flags = 0;
|
|
|
|
|
|
|
|
newText.Items=new List<Paragraph>();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
newText.Width = (uint) text.Width;
|
|
|
|
newText.Width = (uint) text.Width;
|
|
|
|
newText.Height = (uint) text.Height;
|
|
|
|
newText.Height = (uint) text.Height;
|
|
|
|
var paragraph = text.Items[0];
|
|
|
|
var paragraph = text.Items[0];
|
|
|
@ -506,6 +524,8 @@ namespace CTFAK.MMFParser.Translation
|
|
|
|
newPar.Flags = exePar.Flags.flag;
|
|
|
|
newPar.Flags = exePar.Flags.flag;
|
|
|
|
newText.Items.Add(newPar);
|
|
|
|
newText.Items.Add(newPar);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
newItem.Loader = newText;
|
|
|
|
newItem.Loader = newText;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -545,9 +565,20 @@ namespace CTFAK.MMFParser.Translation
|
|
|
|
newCount.Movements = newObject.Movements;
|
|
|
|
newCount.Movements = newObject.Movements;
|
|
|
|
newCount.Behaviours = newObject.Behaviours;
|
|
|
|
newCount.Behaviours = newObject.Behaviours;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (itemLoader.Counter == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
newCount.Value = 0;
|
|
|
|
|
|
|
|
newCount.Minimum = 0;
|
|
|
|
|
|
|
|
newCount.Maximum = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
newCount.Value = itemLoader.Counter.Initial;
|
|
|
|
newCount.Value = itemLoader.Counter.Initial;
|
|
|
|
newCount.Maximum = itemLoader.Counter.Maximum;
|
|
|
|
newCount.Maximum = itemLoader.Counter.Maximum;
|
|
|
|
newCount.Minimum = itemLoader.Counter.Minimum;
|
|
|
|
newCount.Minimum = itemLoader.Counter.Minimum;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
newCount.Images = new List<int>() {0};
|
|
|
|
newCount.Images = new List<int>() {0};
|
|
|
|
var shape = counter?.Shape;
|
|
|
|
var shape = counter?.Shape;
|
|
|
|
|
|
|
|
|
|
|
|