public TableItem(BinaryReaderWriter br, int iItemlength) : this() { rawtype = br.Read2AsUShort(); switch (iItemlength) { case 3: Offset = br.ReadByte(); break; case 4: Offset = br.Read2AsUShort(); break; case 5: Offset = (int)br.Read3AsUInt(); break; } }
/// <summary> /// liest einen Tabelleneintrag ein /// </summary> /// <param name="br"></param> /// <param name="offset_len">Länge des Speicherbereichs für den Offset in Byte</param> /// <param name="baseheight_len">Länge des Speicherbereichs für die Basishöhe in Byte</param> /// <param name="diff_len">Länge des Speicherbereichs in Byte</param> /// <param name="extraBytes">wenn größer 0, dann 1 zusätzliches Byte</param> public void Read(BinaryReaderWriter br, int offset_len = 3, int baseheight_len = 2, int diff_len = 2, int type_len = 1) { switch (offset_len) { case 1: Offset = br.ReadByte(); break; case 2: Offset = br.Read2AsUShort(); break; case 3: Offset = br.Read3AsUInt(); break; case 4: Offset = br.Read4UInt(); break; } switch (baseheight_len) { case 1: Baseheight = br.ReadByte(); break; case 2: Baseheight = br.Read2AsShort(); break; } switch (diff_len) { case 1: Diff = br.ReadByte(); break; case 2: Diff = br.Read2AsUShort(); break; } if (type_len > 0) { Type = br.ReadByte(); } }