public TagDefinition(string CompiledClass, string DefaultExtension, int HeaderSize, RawDefinition RawDefinition) : base(DefaultExtension, HeaderSize, FieldType.None, EngineManager.HaloEngine.Halo2) { this.groupTag = CompiledClass; this.DefaultExtension = DefaultExtension; this.headerSize = HeaderSize; this.RawDef = RawDefinition; }
public override void Read(EndianReader br, int Magic) { // Fields for (int i = 0; i < Fields.Count; i++) { Fields[i].Read(br, Magic); } // Read Raw if (RawDef != null) { RawDef = (RawDefinition)Activator.CreateInstance(RawDef.GetType(), new object[] { this, br }); } }
public override void Read(EndianReader br) { // Header Values this.datum = new datum_index(br.ReadUInt32()); int TagCount = br.ReadInt32(); //int StringCount = br.ReadInt32(); int DataSize = br.ReadInt32(); int RawOffset = br.ReadInt32(); this.absolutePath = br.ReadString(); // Init lists EngineManager.Engines["Halo2Xbox"]["TagIds"] = new Dictionary <string, int>(TagCount); //EngineManager.Engines["Halo2Xbox"]["StringIds"] = new List<string>(StringCount); // Read Strings br.BaseStream.Position = DataSize; for (int i = 0; i < TagCount; i++) { ((Dictionary <string, int>)EngineManager.Engines["Halo2Xbox"]["TagIds"]).Add(br.ReadNullTerminatingString(), i); } // StringIds //for (int i = 0; i < StringCount; i++) // ((List<string>)EngineManager.Engines["Halo2Xbox"]["StringIds"]).Add(br.ReadNullTerminatingString()); // Fields br.BaseStream.Position = 512; for (int i = 0; i < Fields.Count; i++) { Fields[i].Read(br); } // Read Raw br.BaseStream.Position = RawOffset; if (RawDef != null) { RawDef = (RawDefinition)Activator.CreateInstance(RawDef.GetType(), new object[] { }); RawDef.Owner = this; RawDef.Read(br); } }