aboutsummaryrefslogtreecommitdiff
path: root/packets/messages/types/SvcCreateStringTable.go
diff options
context:
space:
mode:
Diffstat (limited to 'packets/messages/types/SvcCreateStringTable.go')
-rw-r--r--packets/messages/types/SvcCreateStringTable.go32
1 files changed, 32 insertions, 0 deletions
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 @@
1package types
2
3import "github.com/pektezol/bitreader"
4
5type SvcCreateStringTable struct {
6 Name string
7 MaxEntries uint16
8 NumEntries uint8
9 UserDataFixedSize bool
10 UserDataSize uint16
11 UserDataSizeBits uint8
12 Flags uint8
13 StringData int
14}
15
16func ParseSvcCreateStringTable(reader *bitreader.ReaderType) SvcCreateStringTable {
17 svccreatestringtable := SvcCreateStringTable{
18 Name: reader.TryReadString(),
19 MaxEntries: reader.TryReadInt16(),
20 }
21 svccreatestringtable.NumEntries = uint8(reader.TryReadBits(HighestBitIndex(uint(svccreatestringtable.MaxEntries)) + 1))
22 length := reader.TryReadBits(20)
23 svccreatestringtable.UserDataFixedSize = reader.TryReadBool()
24 if svccreatestringtable.UserDataFixedSize {
25 svccreatestringtable.UserDataSize = uint16(reader.TryReadBits(12))
26 svccreatestringtable.UserDataSizeBits = uint8(reader.TryReadBits(4))
27 }
28 svccreatestringtable.Flags = uint8(reader.TryReadBits(2))
29 svccreatestringtable.StringData = int(reader.TryReadBits(int(length / 8)))
30 return svccreatestringtable
31
32}