public virtual void Read(hsStream s)
{
if (s.ReadByte() != kIoVersion)
throw new NotSupportedException("Bad VarDescriptor IO Version");
fName = s.ReadSafeString();
string displayOptions = s.ReadStdString(); // TODO
fCount = s.ReadInt();
fType = (plAtomicType)s.ReadByte();
Default = s.ReadSafeString();
fFlags = (Flags)s.ReadInt();
// Derived class in Cyan's code, but this is cleaner
if (IsStateDesc) {
fDescName = s.ReadSafeString();
fVersion = (int)s.ReadShort();
} else {
fAtomicCount = (int)s.ReadShort();
fAtomicType = (plAtomicType)s.ReadByte();
}
}