private Prl[] ExpandPrm(Prm prm, Clx clx) { if (prm.fComplex) { int index = prm.igrpprl; return clx.RgPrc[index].GrpPrl; } else if (prm.prm != 0x0000) { ushort sprm; if (!SinglePropertyModifiers.prm0Map.TryGetValue(prm.isprm, out sprm)) throw new WordFileReaderException("Invalid Prm: isprm"); byte value = prm.val; Prl prl = new Prl(); prl.sprm = new Sprm(sprm); prl.operand = new byte[] { value }; return new Prl[] { prl }; } else return new Prl[0]; }
private static Pcd ReadPcd(Stream s) { byte[] data = ReadUtils.ReadExact(s, Pcd.Size); Pcd pcd = new Pcd(); pcd.fNoParaLast = (data[0] & 0x01) != 0; pcd.fR1 = (data[0] & 0x02) != 0; pcd.fDirty = (data[0] & 0x04) != 0; uint uCompressed = BitConverter.ToUInt32(data, 2); FcCompressed comressed = new FcCompressed(); comressed.fc = (int)(uCompressed & 0x3FFFFFFF); comressed.fCompressed = (uCompressed & 0x40000000) != 0; pcd.fc = comressed; ushort uPrm = BitConverter.ToUInt16(data, 6); Prm prm = new Prm(); prm.prm = uPrm; pcd.prm = prm; return pcd; }