private string EntryToString(ALB_Entry e, int indLvl = 0) { var tag = tags[e.TagID]; var cls = (e.Value is ALB_Object obj) ? $"({classes[obj.classID]})" : ""; var ind = new string(' ', 4 * indLvl); return($"{ind}{tag}{cls}={e.Value.ToString(this, indLvl)}"); }
public ALB1(BinaryReaderEx input) { var sig = input.ReadAscii(4); if (sig != "ALB1") { throw new FormatException("ALB1 signature missing"); } //unknown data input.ReadBytes(15); var nTags = input.ReadInt32(); for (int i = 0; i < nTags; i++) { var tagID = input.ReadUInt16(); var name = input.ReadAscii(); tags[tagID] = name; } //unknown data input.ReadBytes(3); var nClasses = input.ReadInt32(); for (int i = 0; i < nClasses; i++) { var classID = input.ReadUInt16(); var name = input.ReadAscii(); classes[classID] = name; } //unknown data input.ReadBytes(6); int?layerVersion = null; while (input.Position < input.BaseStream.Length) { var e = new ALB_Entry(input, layerVersion); if (tags[e.TagID].Equals("mlayerversion", StringComparison.OrdinalIgnoreCase)) { layerVersion = (e.Value as ALB_SimpleValue <int>).Value; } entries.AddLast(e); } }
public ALB_Unknown(BinaryReaderEx input) { entry1 = new ALB_Entry(input); entry2 = new ALB_Entry(input); }