public Entry(EndianBinaryReader er) { this.GroupOffset = er.ReadUInt32(); this.SubRecordsOffset = er.ReadUInt32(); long position = er.BaseStream.Position; er.BaseStream.Position = (long)this.GroupOffset + er.GetMarker("Symbol"); this.GroupName = er.ReadStringNT(Encoding.ASCII); er.BaseStream.Position = (long)this.SubRecordsOffset + er.GetMarker("Symbol"); this.SubRecords = new SDAT.SymbolBlock.SymbolRecord(er); er.BaseStream.Position = position; }
public SymbolBlock(EndianBinaryReader er, out bool OK) { er.SetMarkerOnCurrentOffset("Symbol"); bool OK1; this.Header = new DataBlockHeader(er, "SYMB", out OK1); if (!OK1) { OK = false; } else { this.nRecOffset = er.ReadUInt32s(8); er.ReadBytes(24); long position = er.BaseStream.Position; er.BaseStream.Position = (long)this.nRecOffset[0] + er.GetMarker("Symbol"); this.SEQRecord = new SDAT.SymbolBlock.SymbolRecord(er); er.BaseStream.Position = (long)this.nRecOffset[1] + er.GetMarker("Symbol"); this.SEQARCRecord = new SDAT.SymbolBlock.SymbolRecord2(er); er.BaseStream.Position = (long)this.nRecOffset[2] + er.GetMarker("Symbol"); this.BANKRecord = new SDAT.SymbolBlock.SymbolRecord(er); er.BaseStream.Position = (long)this.nRecOffset[3] + er.GetMarker("Symbol"); this.WAVEARCRecord = new SDAT.SymbolBlock.SymbolRecord(er); er.BaseStream.Position = (long)this.nRecOffset[4] + er.GetMarker("Symbol"); this.PLAYERRecord = new SDAT.SymbolBlock.SymbolRecord(er); er.BaseStream.Position = (long)this.nRecOffset[5] + er.GetMarker("Symbol"); this.GROUPRecord = new SDAT.SymbolBlock.SymbolRecord(er); er.BaseStream.Position = (long)this.nRecOffset[6] + er.GetMarker("Symbol"); this.PLAYER2Record = new SDAT.SymbolBlock.SymbolRecord(er); er.BaseStream.Position = (long)this.nRecOffset[7] + er.GetMarker("Symbol"); this.STRMRecord = new SDAT.SymbolBlock.SymbolRecord(er); er.BaseStream.Position = position; er.RemoveMarker("Symbol"); OK = true; } }