void ReadFrom(BinaryReader reader) { long tableStartAt = reader.BaseStream.Position; ushort posRuleCount = reader.ReadUInt16(); short[] posRuleTableOffsets = Utils.ReadInt16Array(reader, posRuleCount); int j = posRuleTableOffsets.Length; posRuleTables = new PosRuleTable[posRuleCount]; for (int i = 0; i < j; ++i) { //move to and read reader.BaseStream.Seek(tableStartAt + posRuleTableOffsets[i], SeekOrigin.Begin); var posRuleTable = new PosRuleTable(); posRuleTable.ReadFrom(reader); posRuleTables[i] = posRuleTable; } }