internal Group(Module module, uint contentSize, uint label, ModuleGroupType groupType)
: base(module.Manager, "")
{
BinaryReader reader = module.Reader;
ContentSize = contentSize;
LabelUInt32 = label;
GroupType = groupType;
var timeStampDay = reader.ReadByte(); // One-based day in the month.
var timeStampMonth = reader.ReadByte();
TimeStamp = new DateTime(2002, 12, 1).AddMonths(timeStampMonth);
int currentMonth = TimeStamp.Month;
if (timeStampDay == 0)
throw new InvalidDataException();
TimeStamp = TimeStamp.AddDays(timeStampDay - 1);
if (TimeStamp.Month != currentMonth)
throw new InvalidDataException();
//.AddDays(timeStampDay);
Unknowns.ReadInt16s(reader, 1);
Version = reader.ReadUInt16();
Unknowns.ReadInt16s(reader, 1);
ContentOffset = reader.BaseStream.Position;
reader.BaseStream.Seek(ContentSize, SeekOrigin.Current);
Name = GroupType + " " + LabelValue;
}