public void Read(BinaryReader br)
{
int flags = br.ReadInt32();
flag0 = ((flags & 1) != 0); // 0
flag1 = ((flags & 2) != 0); // 1
flag2 = ((flags & 4) != 0); // 2
flag3 = ((flags & 8) != 0); // 3
flag4 = ((flags & 16) != 0); // 4
flag5 = ((flags & 32) != 0); // 5
flag6 = ((flags & 64) != 0); // 6
screenID = br.ReadInt16();
buttonKeyType = br.ReadInt16();
textColor = H2Color.fromARGB(
br.ReadSingle(),
br.ReadSingle(),
br.ReadSingle(),
br.ReadSingle());
stringlistTag = br.ReadChars(4);
stringsListIdent = br.ReadInt32();
br.BaseStream.Position += 8;
shapeGroup = br.ReadInt16();
unused = br.ReadInt16();
headerStringID.Read(br);
sourceColor = H2Color.fromARGB(
br.ReadSingle(),
br.ReadSingle(),
br.ReadSingle(),
br.ReadSingle());
destColor = H2Color.fromARGB(
br.ReadSingle(),
br.ReadSingle(),
br.ReadSingle(),
br.ReadSingle());
zoomScaleX = br.ReadSingle();
zoomScaleY = br.ReadSingle();
refractionScaleX = br.ReadSingle();
refractionScaleY = br.ReadSingle();
isPopulated = true;
}