public static string[] DecodePropertyList(this ObjectPropertyList list, ClilocLNG lng)
{
if (lng == ClilocLNG.NULL)
{
lng = DefaultLanguage;
}
int length;
var data = list.Compile(false, out length);
var msgs = new List<string>();
var reader = new PacketReader(data, length, false);
reader.Seek(15, SeekOrigin.Begin);
for (int i = 15; i < data.Length - 4;)
{
int index = reader.ReadInt32();
int paramLength = reader.ReadInt16() / 2;
string param = String.Empty;
if (paramLength > 0)
{
param = reader.ReadUnicodeStringLE(paramLength);
}
msgs.Add(GetString(lng, index, param));
i += (6 + paramLength);
}
return msgs.ToArray();
}