From 9f5e8f230d35fffb106088b72e5fdb148905f450 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Thu, 10 Nov 2022 22:59:32 +0300 Subject: added almost all net/svc messages - currently broken --- packets/messages/types/SvcCreateStringTable.go | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 packets/messages/types/SvcCreateStringTable.go (limited to 'packets/messages/types/SvcCreateStringTable.go') diff --git a/packets/messages/types/SvcCreateStringTable.go b/packets/messages/types/SvcCreateStringTable.go new file mode 100644 index 0000000..6e97ea7 --- /dev/null +++ b/packets/messages/types/SvcCreateStringTable.go @@ -0,0 +1,32 @@ +package types + +import "github.com/pektezol/bitreader" + +type SvcCreateStringTable struct { + Name string + MaxEntries uint16 + NumEntries uint8 + UserDataFixedSize bool + UserDataSize uint16 + UserDataSizeBits uint8 + Flags uint8 + StringData int +} + +func ParseSvcCreateStringTable(reader *bitreader.ReaderType) SvcCreateStringTable { + svccreatestringtable := SvcCreateStringTable{ + Name: reader.TryReadString(), + MaxEntries: reader.TryReadInt16(), + } + svccreatestringtable.NumEntries = uint8(reader.TryReadBits(HighestBitIndex(uint(svccreatestringtable.MaxEntries)) + 1)) + length := reader.TryReadBits(20) + svccreatestringtable.UserDataFixedSize = reader.TryReadBool() + if svccreatestringtable.UserDataFixedSize { + svccreatestringtable.UserDataSize = uint16(reader.TryReadBits(12)) + svccreatestringtable.UserDataSizeBits = uint8(reader.TryReadBits(4)) + } + svccreatestringtable.Flags = uint8(reader.TryReadBits(2)) + svccreatestringtable.StringData = int(reader.TryReadBits(int(length / 8))) + return svccreatestringtable + +} -- cgit v1.2.3