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.

74 lines
2.2 KiB
C#

using System.Collections.Generic;
using System.Drawing;
using NetMFAPatcher.MMFParser.Data;
using NetMFAPatcher.Utils;
namespace NetMFAPatcher.MMFParser.MFALoaders.mfachunks
{
class ObjectLoader : DataLoader
{
public int ObjectFlags;
public int NewObjectFlags;
public Color BackgroundColor;
List<short> _qualifiers = new List<short>();
public ValueList Values;
public ValueList Strings;
public Movements Movements;
public Behaviours Behaviours;
public override void Print()
{
Logger.Log("Object Loader: ");
Logger.Log(" Values:");
foreach (var item in Values.Items)
{
Logger.Log($" Value {item.Name} contains '{item.Value}'");
}
Logger.Log("\n Strings:");
foreach (var item in Strings.Items)
{
Logger.Log($" String {item.Name} contains '{item.Value}'");
}
Logger.Log("\n Movements:");
foreach (var item in Movements.Items)
{
Logger.Log($" Movement {item.Name}");
}
Logger.Log("\n");
}
public override void Read()
{
ObjectFlags = Reader.ReadInt32();
NewObjectFlags = Reader.ReadInt32();
BackgroundColor = Reader.ReadColor();
var end = Reader.Tell() + 2 * 9;
for (int i = 0; i < 9; i++)
{
var value = Reader.ReadInt16();
if(value==-1)
{
break;
}
_qualifiers.Add(value);
}
Reader.Seek(end);
Values = new ValueList(Reader);
Values.Read();
Strings = new ValueList(Reader);
Strings.Read();
Movements = new Movements(Reader);
Movements.Read();
Behaviours = new Behaviours(Reader);
Behaviours.Read();
Reader.Skip(56);
Print();
}
public ObjectLoader(ByteReader reader) : base(reader) { }
}
}