aboutsummaryrefslogtreecommitdiff
path: root/pkg/messages
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-16 20:39:02 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-16 21:39:43 +0300
commit81f365e99636104ff81151370048a51e8ae8027a (patch)
tree0bd2781ad73fdc982abdcb70f9f44c551ac76bcf /pkg/messages
parentupdate CI workflow for go 1.21.0 (diff)
downloadsdp.go-81f365e99636104ff81151370048a51e8ae8027a.tar.gz
sdp.go-81f365e99636104ff81151370048a51e8ae8027a.tar.bz2
sdp.go-81f365e99636104ff81151370048a51e8ae8027a.zip
feat: parsing sar custom data (#4)
Diffstat (limited to 'pkg/messages')
-rw-r--r--pkg/messages/messages.go2
-rw-r--r--pkg/messages/types/netDisconnect.go2
-rw-r--r--pkg/messages/types/netFile.go2
-rw-r--r--pkg/messages/types/netNop.go2
-rw-r--r--pkg/messages/types/netSetConVar.go2
-rw-r--r--pkg/messages/types/netSignOnState.go6
-rw-r--r--pkg/messages/types/netSplitScreenUser.go2
-rw-r--r--pkg/messages/types/netStringCmd.go2
-rw-r--r--pkg/messages/types/netTick.go2
-rw-r--r--pkg/messages/types/svcBspDecal.go8
-rw-r--r--pkg/messages/types/svcClassInfo.go4
-rw-r--r--pkg/messages/types/svcCmdKeyValues.go4
-rw-r--r--pkg/messages/types/svcCreateStringTable.go6
-rw-r--r--pkg/messages/types/svcCrosshairAngle.go2
-rw-r--r--pkg/messages/types/svcEntityMessage.go4
-rw-r--r--pkg/messages/types/svcFixAngle.go2
-rw-r--r--pkg/messages/types/svcGameEvent.go4
-rw-r--r--pkg/messages/types/svcGameEventList.go4
-rw-r--r--pkg/messages/types/svcGetCvarValue.go4
-rw-r--r--pkg/messages/types/svcMenu.go4
-rw-r--r--pkg/messages/types/svcPacketEntities.go13
-rw-r--r--pkg/messages/types/svcPaintmapData.go4
-rw-r--r--pkg/messages/types/svcPrefetch.go2
-rw-r--r--pkg/messages/types/svcPrint.go2
-rw-r--r--pkg/messages/types/svcSendTable.go2
-rw-r--r--pkg/messages/types/svcServerInfo.go2
-rw-r--r--pkg/messages/types/svcSetPause.go2
-rw-r--r--pkg/messages/types/svcSetView.go2
-rw-r--r--pkg/messages/types/svcSounds.go4
-rw-r--r--pkg/messages/types/svcSplitScreen.go4
-rw-r--r--pkg/messages/types/svcTempEntities.go4
-rw-r--r--pkg/messages/types/svcUpdateStringTable.go4
-rw-r--r--pkg/messages/types/svcUserMessage.go4
-rw-r--r--pkg/messages/types/svcVoiceData.go4
-rw-r--r--pkg/messages/types/svcVoiceInit.go2
35 files changed, 65 insertions, 58 deletions
diff --git a/pkg/messages/messages.go b/pkg/messages/messages.go
index 39f89e9..6fa58fc 100644
--- a/pkg/messages/messages.go
+++ b/pkg/messages/messages.go
@@ -8,7 +8,7 @@ import (
8 messages "github.com/pektezol/demoparser/pkg/messages/types" 8 messages "github.com/pektezol/demoparser/pkg/messages/types"
9) 9)
10 10
11func ParseMessages(messageType int, reader *bitreader.ReaderType) any { 11func ParseMessages(messageType int, reader *bitreader.Reader) any {
12 var messageData any 12 var messageData any
13 switch messageType { 13 switch messageType {
14 case 0: 14 case 0:
diff --git a/pkg/messages/types/netDisconnect.go b/pkg/messages/types/netDisconnect.go
index 69d4a67..3ecf8e1 100644
--- a/pkg/messages/types/netDisconnect.go
+++ b/pkg/messages/types/netDisconnect.go
@@ -6,7 +6,7 @@ type NetDisconnect struct {
6 Text string 6 Text string
7} 7}
8 8
9func ParseNetDisconnect(reader *bitreader.ReaderType) NetDisconnect { 9func ParseNetDisconnect(reader *bitreader.Reader) NetDisconnect {
10 return NetDisconnect{ 10 return NetDisconnect{
11 Text: reader.TryReadString(), 11 Text: reader.TryReadString(),
12 } 12 }
diff --git a/pkg/messages/types/netFile.go b/pkg/messages/types/netFile.go
index a41a0cf..328900c 100644
--- a/pkg/messages/types/netFile.go
+++ b/pkg/messages/types/netFile.go
@@ -8,7 +8,7 @@ type NetFile struct {
8 FileRequested bool 8 FileRequested bool
9} 9}
10 10
11func ParseNetFile(reader *bitreader.ReaderType) NetFile { 11func ParseNetFile(reader *bitreader.Reader) NetFile {
12 return NetFile{ 12 return NetFile{
13 TransferId: int32(reader.TryReadBits(32)), 13 TransferId: int32(reader.TryReadBits(32)),
14 FileName: reader.TryReadString(), 14 FileName: reader.TryReadString(),
diff --git a/pkg/messages/types/netNop.go b/pkg/messages/types/netNop.go
index 33f8e25..f942786 100644
--- a/pkg/messages/types/netNop.go
+++ b/pkg/messages/types/netNop.go
@@ -4,6 +4,6 @@ import "github.com/pektezol/bitreader"
4 4
5type NetNop struct{} 5type NetNop struct{}
6 6
7func ParseNetNop(reader *bitreader.ReaderType) NetNop { 7func ParseNetNop(reader *bitreader.Reader) NetNop {
8 return NetNop{} 8 return NetNop{}
9} 9}
diff --git a/pkg/messages/types/netSetConVar.go b/pkg/messages/types/netSetConVar.go
index 08042ae..f04f564 100644
--- a/pkg/messages/types/netSetConVar.go
+++ b/pkg/messages/types/netSetConVar.go
@@ -12,7 +12,7 @@ type conVar struct {
12 Value string 12 Value string
13} 13}
14 14
15func ParseNetSetConVar(reader *bitreader.ReaderType) NetSetConVar { 15func ParseNetSetConVar(reader *bitreader.Reader) NetSetConVar {
16 length := reader.TryReadBits(8) 16 length := reader.TryReadBits(8)
17 convars := []conVar{} 17 convars := []conVar{}
18 for count := 0; count < int(length); count++ { 18 for count := 0; count < int(length); count++ {
diff --git a/pkg/messages/types/netSignOnState.go b/pkg/messages/types/netSignOnState.go
index 4609ff2..277a6ee 100644
--- a/pkg/messages/types/netSignOnState.go
+++ b/pkg/messages/types/netSignOnState.go
@@ -12,15 +12,15 @@ type NetSignOnState struct {
12 MapName string 12 MapName string
13} 13}
14 14
15func ParseNetSignOnState(reader *bitreader.ReaderType) NetSignOnState { 15func ParseNetSignOnState(reader *bitreader.Reader) NetSignOnState {
16 netSignOnState := NetSignOnState{ 16 netSignOnState := NetSignOnState{
17 SignOnState: int8(reader.TryReadBits(8)), 17 SignOnState: int8(reader.TryReadBits(8)),
18 SpawnCount: int32(reader.TryReadBits(32)), 18 SpawnCount: int32(reader.TryReadBits(32)),
19 NumServerPlayers: int32(reader.TryReadBits(32)), 19 NumServerPlayers: int32(reader.TryReadBits(32)),
20 IdsLength: int32(reader.TryReadBits(32)), 20 IdsLength: int32(reader.TryReadBits(32)),
21 } 21 }
22 netSignOnState.PlayersNetworksIds = reader.TryReadBytesToSlice(int(netSignOnState.IdsLength)) 22 netSignOnState.PlayersNetworksIds = reader.TryReadBytesToSlice(uint64(netSignOnState.IdsLength))
23 netSignOnState.MapNameLength = int32(reader.TryReadBits(32)) 23 netSignOnState.MapNameLength = int32(reader.TryReadBits(32))
24 netSignOnState.MapName = reader.TryReadStringLen(int(netSignOnState.MapNameLength)) 24 netSignOnState.MapName = reader.TryReadStringLength(uint64(netSignOnState.MapNameLength))
25 return netSignOnState 25 return netSignOnState
26} 26}
diff --git a/pkg/messages/types/netSplitScreenUser.go b/pkg/messages/types/netSplitScreenUser.go
index 65e85f3..9e4caa8 100644
--- a/pkg/messages/types/netSplitScreenUser.go
+++ b/pkg/messages/types/netSplitScreenUser.go
@@ -6,7 +6,7 @@ type NetSplitScreenUser struct {
6 Unknown bool 6 Unknown bool
7} 7}
8 8
9func ParseNetSplitScreenUser(reader *bitreader.ReaderType) NetSplitScreenUser { 9func ParseNetSplitScreenUser(reader *bitreader.Reader) NetSplitScreenUser {
10 return NetSplitScreenUser{ 10 return NetSplitScreenUser{
11 Unknown: reader.TryReadBool(), 11 Unknown: reader.TryReadBool(),
12 } 12 }
diff --git a/pkg/messages/types/netStringCmd.go b/pkg/messages/types/netStringCmd.go
index 158658e..da5a75b 100644
--- a/pkg/messages/types/netStringCmd.go
+++ b/pkg/messages/types/netStringCmd.go
@@ -6,7 +6,7 @@ type NetStringCmd struct {
6 Command string 6 Command string
7} 7}
8 8
9func ParseNetStringCmd(reader *bitreader.ReaderType) NetStringCmd { 9func ParseNetStringCmd(reader *bitreader.Reader) NetStringCmd {
10 return NetStringCmd{ 10 return NetStringCmd{
11 Command: reader.TryReadString(), 11 Command: reader.TryReadString(),
12 } 12 }
diff --git a/pkg/messages/types/netTick.go b/pkg/messages/types/netTick.go
index e14f259..bd3464a 100644
--- a/pkg/messages/types/netTick.go
+++ b/pkg/messages/types/netTick.go
@@ -8,7 +8,7 @@ type NetTick struct {
8 HostFrameTimeStdDeviation int16 8 HostFrameTimeStdDeviation int16
9} 9}
10 10
11func ParseNetTick(reader *bitreader.ReaderType) NetTick { 11func ParseNetTick(reader *bitreader.Reader) NetTick {
12 return NetTick{ 12 return NetTick{
13 Tick: int32(reader.TryReadBits(32)), 13 Tick: int32(reader.TryReadBits(32)),
14 HostFrameTime: int16(reader.TryReadBits(16) / 10e5), 14 HostFrameTime: int16(reader.TryReadBits(16) / 10e5),
diff --git a/pkg/messages/types/svcBspDecal.go b/pkg/messages/types/svcBspDecal.go
index 484497f..dda81dd 100644
--- a/pkg/messages/types/svcBspDecal.go
+++ b/pkg/messages/types/svcBspDecal.go
@@ -17,7 +17,7 @@ type vectorCoord struct {
17 Valid bool 17 Valid bool
18} 18}
19 19
20func ParseSvcBspDecal(reader *bitreader.ReaderType) SvcBspDecal { 20func ParseSvcBspDecal(reader *bitreader.Reader) SvcBspDecal {
21 svcBspDecal := SvcBspDecal{ 21 svcBspDecal := SvcBspDecal{
22 Pos: readVectorCoords(reader), 22 Pos: readVectorCoords(reader),
23 DecalTextureIndex: int16(reader.TryReadBits(9)), 23 DecalTextureIndex: int16(reader.TryReadBits(9)),
@@ -30,7 +30,7 @@ func ParseSvcBspDecal(reader *bitreader.ReaderType) SvcBspDecal {
30 return svcBspDecal 30 return svcBspDecal
31} 31}
32 32
33func readVectorCoords(reader *bitreader.ReaderType) []vectorCoord { 33func readVectorCoords(reader *bitreader.Reader) []vectorCoord {
34 const COORD_INTEGER_BITS uint8 = 14 34 const COORD_INTEGER_BITS uint8 = 14
35 const COORD_FRACTIONAL_BITS uint8 = 5 35 const COORD_FRACTIONAL_BITS uint8 = 5
36 const COORD_DENOMINATOR uint8 = 1 << COORD_FRACTIONAL_BITS 36 const COORD_DENOMINATOR uint8 = 1 << COORD_FRACTIONAL_BITS
@@ -42,10 +42,10 @@ func readVectorCoords(reader *bitreader.ReaderType) []vectorCoord {
42 if integer != 0 || fraction != 0 { 42 if integer != 0 || fraction != 0 {
43 sign := reader.TryReadBits(1) 43 sign := reader.TryReadBits(1)
44 if integer != 0 { 44 if integer != 0 {
45 integer = reader.TryReadBits(int(COORD_INTEGER_BITS)) + 1 45 integer = reader.TryReadBits(uint64(COORD_INTEGER_BITS)) + 1
46 } 46 }
47 if fraction != 0 { 47 if fraction != 0 {
48 fraction = reader.TryReadBits(int(COORD_FRACTIONAL_BITS)) 48 fraction = reader.TryReadBits(uint64(COORD_FRACTIONAL_BITS))
49 } 49 }
50 value = float32(integer) + float32(fraction)*COORD_RESOLUTION 50 value = float32(integer) + float32(fraction)*COORD_RESOLUTION
51 if sign != 0 { 51 if sign != 0 {
diff --git a/pkg/messages/types/svcClassInfo.go b/pkg/messages/types/svcClassInfo.go
index 9f367d3..27862bf 100644
--- a/pkg/messages/types/svcClassInfo.go
+++ b/pkg/messages/types/svcClassInfo.go
@@ -19,7 +19,7 @@ type serverClass struct {
19 DataTableName string 19 DataTableName string
20} 20}
21 21
22func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { 22func ParseSvcClassInfo(reader *bitreader.Reader) SvcClassInfo {
23 svcClassInfo := SvcClassInfo{ 23 svcClassInfo := SvcClassInfo{
24 Length: int16(reader.TryReadBits(16)), 24 Length: int16(reader.TryReadBits(16)),
25 CreateOnClient: reader.TryReadBool(), 25 CreateOnClient: reader.TryReadBool(),
@@ -29,7 +29,7 @@ func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo {
29 for count := 0; count < int(svcClassInfo.Length); count++ { 29 for count := 0; count < int(svcClassInfo.Length); count++ {
30 fmt.Println(classes) 30 fmt.Println(classes)
31 classes = append(classes, serverClass{ 31 classes = append(classes, serverClass{
32 ClassId: int16(reader.TryReadBits(int(math.Log2(float64(svcClassInfo.Length)) + 1))), 32 ClassId: int16(reader.TryReadBits(uint64(math.Log2(float64(svcClassInfo.Length)) + 1))),
33 ClassName: reader.TryReadString(), 33 ClassName: reader.TryReadString(),
34 DataTableName: reader.TryReadString(), 34 DataTableName: reader.TryReadString(),
35 }) 35 })
diff --git a/pkg/messages/types/svcCmdKeyValues.go b/pkg/messages/types/svcCmdKeyValues.go
index 1c4d819..35a8a8d 100644
--- a/pkg/messages/types/svcCmdKeyValues.go
+++ b/pkg/messages/types/svcCmdKeyValues.go
@@ -7,10 +7,10 @@ type SvcCmdKeyValues struct {
7 Data []byte 7 Data []byte
8} 8}
9 9
10func ParseSvcCmdKeyValues(reader *bitreader.ReaderType) SvcCmdKeyValues { 10func ParseSvcCmdKeyValues(reader *bitreader.Reader) SvcCmdKeyValues {
11 svcCmdKeyValues := SvcCmdKeyValues{ 11 svcCmdKeyValues := SvcCmdKeyValues{
12 Length: int32(reader.TryReadBits(32)), 12 Length: int32(reader.TryReadBits(32)),
13 } 13 }
14 svcCmdKeyValues.Data = reader.TryReadBytesToSlice(int(svcCmdKeyValues.Length)) 14 svcCmdKeyValues.Data = reader.TryReadBytesToSlice(uint64(svcCmdKeyValues.Length))
15 return svcCmdKeyValues 15 return svcCmdKeyValues
16} 16}
diff --git a/pkg/messages/types/svcCreateStringTable.go b/pkg/messages/types/svcCreateStringTable.go
index ed9e477..3c15e5c 100644
--- a/pkg/messages/types/svcCreateStringTable.go
+++ b/pkg/messages/types/svcCreateStringTable.go
@@ -18,12 +18,12 @@ type SvcCreateStringTable struct {
18 StringData int 18 StringData int
19} 19}
20 20
21func ParseSvcCreateStringTable(reader *bitreader.ReaderType) SvcCreateStringTable { 21func ParseSvcCreateStringTable(reader *bitreader.Reader) SvcCreateStringTable {
22 svcCreateStringTable := SvcCreateStringTable{ 22 svcCreateStringTable := SvcCreateStringTable{
23 Name: reader.TryReadString(), 23 Name: reader.TryReadString(),
24 MaxEntries: int16(reader.TryReadBits(16)), 24 MaxEntries: int16(reader.TryReadBits(16)),
25 } 25 }
26 svcCreateStringTable.NumEntries = int8(reader.TryReadBits(int(math.Log2(float64(svcCreateStringTable.MaxEntries))) + 1)) 26 svcCreateStringTable.NumEntries = int8(reader.TryReadBits(uint64(math.Log2(float64(svcCreateStringTable.MaxEntries))) + 1))
27 svcCreateStringTable.Length = int32(reader.TryReadBits(20)) 27 svcCreateStringTable.Length = int32(reader.TryReadBits(20))
28 svcCreateStringTable.UserDataFixedSize = reader.TryReadBool() 28 svcCreateStringTable.UserDataFixedSize = reader.TryReadBool()
29 if svcCreateStringTable.UserDataFixedSize { 29 if svcCreateStringTable.UserDataFixedSize {
@@ -31,6 +31,6 @@ func ParseSvcCreateStringTable(reader *bitreader.ReaderType) SvcCreateStringTabl
31 svcCreateStringTable.UserDataSizeBits = int8(reader.TryReadBits(4)) 31 svcCreateStringTable.UserDataSizeBits = int8(reader.TryReadBits(4))
32 } 32 }
33 svcCreateStringTable.Flags = int8(reader.TryReadBits(2)) 33 svcCreateStringTable.Flags = int8(reader.TryReadBits(2))
34 reader.SkipBits(int(svcCreateStringTable.Length)) // TODO: StringTable parsing 34 reader.SkipBits(uint64(svcCreateStringTable.Length)) // TODO: StringTable parsing
35 return svcCreateStringTable 35 return svcCreateStringTable
36} 36}
diff --git a/pkg/messages/types/svcCrosshairAngle.go b/pkg/messages/types/svcCrosshairAngle.go
index cf18212..e8424e1 100644
--- a/pkg/messages/types/svcCrosshairAngle.go
+++ b/pkg/messages/types/svcCrosshairAngle.go
@@ -6,7 +6,7 @@ type SvcCrosshairAngle struct {
6 Angle []int16 6 Angle []int16
7} 7}
8 8
9func ParseSvcCrosshairAngle(reader *bitreader.ReaderType) SvcCrosshairAngle { 9func ParseSvcCrosshairAngle(reader *bitreader.Reader) SvcCrosshairAngle {
10 return SvcCrosshairAngle{ 10 return SvcCrosshairAngle{
11 Angle: []int16{int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16))}, 11 Angle: []int16{int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16))},
12 } 12 }
diff --git a/pkg/messages/types/svcEntityMessage.go b/pkg/messages/types/svcEntityMessage.go
index 9726ced..8d5c4aa 100644
--- a/pkg/messages/types/svcEntityMessage.go
+++ b/pkg/messages/types/svcEntityMessage.go
@@ -9,12 +9,12 @@ type SvcEntityMessage struct {
9 Data []byte 9 Data []byte
10} 10}
11 11
12func ParseSvcEntityMessage(reader *bitreader.ReaderType) SvcEntityMessage { 12func ParseSvcEntityMessage(reader *bitreader.Reader) SvcEntityMessage {
13 svcEntityMessage := SvcEntityMessage{ 13 svcEntityMessage := SvcEntityMessage{
14 EntityIndex: int16(reader.TryReadBits(11)), 14 EntityIndex: int16(reader.TryReadBits(11)),
15 ClassId: int16(reader.TryReadBits(9)), 15 ClassId: int16(reader.TryReadBits(9)),
16 Length: int16(reader.TryReadBits(11)), 16 Length: int16(reader.TryReadBits(11)),
17 } 17 }
18 svcEntityMessage.Data = reader.TryReadBitsToSlice(int(svcEntityMessage.Length)) 18 svcEntityMessage.Data = reader.TryReadBitsToSlice(uint64(svcEntityMessage.Length))
19 return svcEntityMessage 19 return svcEntityMessage
20} 20}
diff --git a/pkg/messages/types/svcFixAngle.go b/pkg/messages/types/svcFixAngle.go
index 56acf04..675c50e 100644
--- a/pkg/messages/types/svcFixAngle.go
+++ b/pkg/messages/types/svcFixAngle.go
@@ -7,7 +7,7 @@ type SvcFixAngle struct {
7 Angle []int16 7 Angle []int16
8} 8}
9 9
10func ParseSvcFixAngle(reader *bitreader.ReaderType) SvcFixAngle { 10func ParseSvcFixAngle(reader *bitreader.Reader) SvcFixAngle {
11 return SvcFixAngle{ 11 return SvcFixAngle{
12 Relative: reader.TryReadBool(), 12 Relative: reader.TryReadBool(),
13 Angle: []int16{int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16))}, 13 Angle: []int16{int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16))},
diff --git a/pkg/messages/types/svcGameEvent.go b/pkg/messages/types/svcGameEvent.go
index 6ee4d01..44d6dd5 100644
--- a/pkg/messages/types/svcGameEvent.go
+++ b/pkg/messages/types/svcGameEvent.go
@@ -7,10 +7,10 @@ type SvcGameEvent struct {
7 Data []byte // TODO: GameEvent[] 7 Data []byte // TODO: GameEvent[]
8} 8}
9 9
10func ParseSvcGameEvent(reader *bitreader.ReaderType) SvcGameEvent { 10func ParseSvcGameEvent(reader *bitreader.Reader) SvcGameEvent {
11 svcGameEvent := SvcGameEvent{ 11 svcGameEvent := SvcGameEvent{
12 Length: int16(reader.TryReadBits(11)), 12 Length: int16(reader.TryReadBits(11)),
13 } 13 }
14 svcGameEvent.Data = reader.TryReadBitsToSlice(int(svcGameEvent.Length)) 14 svcGameEvent.Data = reader.TryReadBitsToSlice(uint64(svcGameEvent.Length))
15 return svcGameEvent 15 return svcGameEvent
16} 16}
diff --git a/pkg/messages/types/svcGameEventList.go b/pkg/messages/types/svcGameEventList.go
index b99ce28..c6eb896 100644
--- a/pkg/messages/types/svcGameEventList.go
+++ b/pkg/messages/types/svcGameEventList.go
@@ -11,11 +11,11 @@ type SvcGameEventList struct {
11type gameEventDescriptor struct { 11type gameEventDescriptor struct {
12} 12}
13 13
14func ParseSvcGameEventList(reader *bitreader.ReaderType) SvcGameEventList { 14func ParseSvcGameEventList(reader *bitreader.Reader) SvcGameEventList {
15 svcGameEventList := SvcGameEventList{ 15 svcGameEventList := SvcGameEventList{
16 Events: int16(reader.TryReadBits(9)), 16 Events: int16(reader.TryReadBits(9)),
17 Length: int32(reader.TryReadBits(20)), 17 Length: int32(reader.TryReadBits(20)),
18 } 18 }
19 reader.TryReadBitsToSlice(int(svcGameEventList.Length)) 19 reader.TryReadBitsToSlice(uint64(svcGameEventList.Length))
20 return svcGameEventList 20 return svcGameEventList
21} 21}
diff --git a/pkg/messages/types/svcGetCvarValue.go b/pkg/messages/types/svcGetCvarValue.go
index aef5c8e..0598722 100644
--- a/pkg/messages/types/svcGetCvarValue.go
+++ b/pkg/messages/types/svcGetCvarValue.go
@@ -7,9 +7,9 @@ type SvcGetCvarValue struct {
7 CvarName string 7 CvarName string
8} 8}
9 9
10func ParseSvcGetCvarValue(reader *bitreader.ReaderType) SvcGetCvarValue { 10func ParseSvcGetCvarValue(reader *bitreader.Reader) SvcGetCvarValue {
11 svcGetCvarValue := SvcGetCvarValue{ 11 svcGetCvarValue := SvcGetCvarValue{
12 Cookie: reader.TryReadStringLen(4), 12 Cookie: reader.TryReadStringLength(4),
13 CvarName: reader.TryReadString(), 13 CvarName: reader.TryReadString(),
14 } 14 }
15 return svcGetCvarValue 15 return svcGetCvarValue
diff --git a/pkg/messages/types/svcMenu.go b/pkg/messages/types/svcMenu.go
index d89f52c..9958e99 100644
--- a/pkg/messages/types/svcMenu.go
+++ b/pkg/messages/types/svcMenu.go
@@ -8,11 +8,11 @@ type SvcMenu struct {
8 Data []byte 8 Data []byte
9} 9}
10 10
11func ParseSvcMenu(reader *bitreader.ReaderType) SvcMenu { 11func ParseSvcMenu(reader *bitreader.Reader) SvcMenu {
12 svcMenu := SvcMenu{ 12 svcMenu := SvcMenu{
13 MenuType: int16(reader.TryReadBits(16)), 13 MenuType: int16(reader.TryReadBits(16)),
14 Length: int32(reader.TryReadBits(32)), 14 Length: int32(reader.TryReadBits(32)),
15 } 15 }
16 svcMenu.Data = reader.TryReadBitsToSlice(int(svcMenu.Length)) 16 svcMenu.Data = reader.TryReadBitsToSlice(uint64(svcMenu.Length))
17 return svcMenu 17 return svcMenu
18} 18}
diff --git a/pkg/messages/types/svcPacketEntities.go b/pkg/messages/types/svcPacketEntities.go
index b1c23e5..54e4a2a 100644
--- a/pkg/messages/types/svcPacketEntities.go
+++ b/pkg/messages/types/svcPacketEntities.go
@@ -1,6 +1,8 @@
1package messages 1package messages
2 2
3import "github.com/pektezol/bitreader" 3import (
4 "github.com/pektezol/bitreader"
5)
4 6
5type SvcPacketEntities struct { 7type SvcPacketEntities struct {
6 MaxEntries int16 8 MaxEntries int16
@@ -13,18 +15,23 @@ type SvcPacketEntities struct {
13 Data []byte 15 Data []byte
14} 16}
15 17
16func ParseSvcPacketEntities(reader *bitreader.ReaderType) SvcPacketEntities { 18func ParseSvcPacketEntities(reader *bitreader.Reader) SvcPacketEntities {
17 svcPacketEntities := SvcPacketEntities{ 19 svcPacketEntities := SvcPacketEntities{
18 MaxEntries: int16(reader.TryReadBits(11)), 20 MaxEntries: int16(reader.TryReadBits(11)),
19 IsDelta: reader.TryReadBool(), 21 IsDelta: reader.TryReadBool(),
20 } 22 }
21 if svcPacketEntities.IsDelta { 23 if svcPacketEntities.IsDelta {
22 svcPacketEntities.DeltaFrom = int32(reader.TryReadBits(32)) 24 svcPacketEntities.DeltaFrom = int32(reader.TryReadBits(32))
25 } else {
26 svcPacketEntities.DeltaFrom = -1
23 } 27 }
24 svcPacketEntities.BaseLine = reader.TryReadBool() 28 svcPacketEntities.BaseLine = reader.TryReadBool()
25 svcPacketEntities.UpdatedEntries = int16(reader.TryReadBits(11)) 29 svcPacketEntities.UpdatedEntries = int16(reader.TryReadBits(11))
26 svcPacketEntities.Length = int32(reader.TryReadBits(20)) 30 svcPacketEntities.Length = int32(reader.TryReadBits(20))
27 svcPacketEntities.UpdatedBaseline = reader.TryReadBool() 31 svcPacketEntities.UpdatedBaseline = reader.TryReadBool()
28 svcPacketEntities.Data = reader.TryReadBitsToSlice(int(svcPacketEntities.Length)) 32 svcPacketEntities.Data = reader.TryReadBitsToSlice(uint64(svcPacketEntities.Length)) //, dataReader = reader.ForkAndSkip(int(svcPacketEntities.Length))
33 // for count := 0; count < int(svcPacketEntities.UpdatedEntries); count++ {
34 // dataReader.TryReadBool()
35 // }
29 return svcPacketEntities 36 return svcPacketEntities
30} 37}
diff --git a/pkg/messages/types/svcPaintmapData.go b/pkg/messages/types/svcPaintmapData.go
index 6b041da..41ef515 100644
--- a/pkg/messages/types/svcPaintmapData.go
+++ b/pkg/messages/types/svcPaintmapData.go
@@ -7,10 +7,10 @@ type SvcPaintmapData struct {
7 Data []byte 7 Data []byte
8} 8}
9 9
10func ParseSvcPaintmapData(reader *bitreader.ReaderType) SvcPaintmapData { 10func ParseSvcPaintmapData(reader *bitreader.Reader) SvcPaintmapData {
11 svcPaintmapData := SvcPaintmapData{ 11 svcPaintmapData := SvcPaintmapData{
12 Length: int32(reader.TryReadBits(32)), 12 Length: int32(reader.TryReadBits(32)),
13 } 13 }
14 svcPaintmapData.Data = reader.TryReadBitsToSlice(int(svcPaintmapData.Length)) 14 svcPaintmapData.Data = reader.TryReadBitsToSlice(uint64(svcPaintmapData.Length))
15 return svcPaintmapData 15 return svcPaintmapData
16} 16}
diff --git a/pkg/messages/types/svcPrefetch.go b/pkg/messages/types/svcPrefetch.go
index 549f926..50d01e9 100644
--- a/pkg/messages/types/svcPrefetch.go
+++ b/pkg/messages/types/svcPrefetch.go
@@ -6,7 +6,7 @@ type SvcPrefetch struct {
6 SoundIndex int16 6 SoundIndex int16
7} 7}
8 8
9func ParseSvcPrefetch(reader *bitreader.ReaderType) SvcPrefetch { 9func ParseSvcPrefetch(reader *bitreader.Reader) SvcPrefetch {
10 return SvcPrefetch{ 10 return SvcPrefetch{
11 SoundIndex: int16(reader.TryReadBits(13)), 11 SoundIndex: int16(reader.TryReadBits(13)),
12 } 12 }
diff --git a/pkg/messages/types/svcPrint.go b/pkg/messages/types/svcPrint.go
index 8aff927..f31d046 100644
--- a/pkg/messages/types/svcPrint.go
+++ b/pkg/messages/types/svcPrint.go
@@ -6,7 +6,7 @@ type SvcPrint struct {
6 Message string 6 Message string
7} 7}
8 8
9func ParseSvcPrint(reader *bitreader.ReaderType) SvcPrint { 9func ParseSvcPrint(reader *bitreader.Reader) SvcPrint {
10 return SvcPrint{ 10 return SvcPrint{
11 Message: reader.TryReadString(), 11 Message: reader.TryReadString(),
12 } 12 }
diff --git a/pkg/messages/types/svcSendTable.go b/pkg/messages/types/svcSendTable.go
index ae8960b..9eb47fc 100644
--- a/pkg/messages/types/svcSendTable.go
+++ b/pkg/messages/types/svcSendTable.go
@@ -8,7 +8,7 @@ type SvcSendTable struct {
8 Props int32 8 Props int32
9} 9}
10 10
11func ParseSvcSendTable(reader *bitreader.ReaderType) SvcSendTable { 11func ParseSvcSendTable(reader *bitreader.Reader) SvcSendTable {
12 return SvcSendTable{ 12 return SvcSendTable{
13 NeedsDecoder: int8(reader.TryReadBits(8)), 13 NeedsDecoder: int8(reader.TryReadBits(8)),
14 Length: int8(reader.TryReadBits(8)), 14 Length: int8(reader.TryReadBits(8)),
diff --git a/pkg/messages/types/svcServerInfo.go b/pkg/messages/types/svcServerInfo.go
index b8bb308..c699eca 100644
--- a/pkg/messages/types/svcServerInfo.go
+++ b/pkg/messages/types/svcServerInfo.go
@@ -21,7 +21,7 @@ type SvcServerInfo struct {
21 HostName string 21 HostName string
22} 22}
23 23
24func ParseSvcServerInfo(reader *bitreader.ReaderType) SvcServerInfo { 24func ParseSvcServerInfo(reader *bitreader.Reader) SvcServerInfo {
25 return SvcServerInfo{ 25 return SvcServerInfo{
26 Protocol: int16(reader.TryReadBits(16)), 26 Protocol: int16(reader.TryReadBits(16)),
27 ServerCount: int32(reader.TryReadBits(32)), 27 ServerCount: int32(reader.TryReadBits(32)),
diff --git a/pkg/messages/types/svcSetPause.go b/pkg/messages/types/svcSetPause.go
index 94303b7..551a4d3 100644
--- a/pkg/messages/types/svcSetPause.go
+++ b/pkg/messages/types/svcSetPause.go
@@ -6,7 +6,7 @@ type SvcSetPause struct {
6 Paused bool 6 Paused bool
7} 7}
8 8
9func ParseSvcSetPause(reader *bitreader.ReaderType) SvcSetPause { 9func ParseSvcSetPause(reader *bitreader.Reader) SvcSetPause {
10 return SvcSetPause{ 10 return SvcSetPause{
11 Paused: reader.TryReadBool(), 11 Paused: reader.TryReadBool(),
12 } 12 }
diff --git a/pkg/messages/types/svcSetView.go b/pkg/messages/types/svcSetView.go
index 70d1e2b..266a539 100644
--- a/pkg/messages/types/svcSetView.go
+++ b/pkg/messages/types/svcSetView.go
@@ -6,7 +6,7 @@ type SvcSetView struct {
6 EntityIndex int16 6 EntityIndex int16
7} 7}
8 8
9func ParseSvcSetView(reader *bitreader.ReaderType) SvcSetView { 9func ParseSvcSetView(reader *bitreader.Reader) SvcSetView {
10 return SvcSetView{ 10 return SvcSetView{
11 EntityIndex: int16(reader.TryReadBits(11)), 11 EntityIndex: int16(reader.TryReadBits(11)),
12 } 12 }
diff --git a/pkg/messages/types/svcSounds.go b/pkg/messages/types/svcSounds.go
index e87d584..22d4a66 100644
--- a/pkg/messages/types/svcSounds.go
+++ b/pkg/messages/types/svcSounds.go
@@ -9,7 +9,7 @@ type SvcSounds struct {
9 Data []byte 9 Data []byte
10} 10}
11 11
12func ParseSvcSounds(reader *bitreader.ReaderType) SvcSounds { 12func ParseSvcSounds(reader *bitreader.Reader) SvcSounds {
13 svcSounds := SvcSounds{ 13 svcSounds := SvcSounds{
14 ReliableSound: reader.TryReadBool(), 14 ReliableSound: reader.TryReadBool(),
15 } 15 }
@@ -20,6 +20,6 @@ func ParseSvcSounds(reader *bitreader.ReaderType) SvcSounds {
20 svcSounds.Size = int8(reader.TryReadBits(8)) 20 svcSounds.Size = int8(reader.TryReadBits(8))
21 svcSounds.Length = int16(reader.TryReadBits(16)) 21 svcSounds.Length = int16(reader.TryReadBits(16))
22 } 22 }
23 svcSounds.Data = reader.TryReadBitsToSlice(int(svcSounds.Length)) 23 svcSounds.Data = reader.TryReadBitsToSlice(uint64(svcSounds.Length))
24 return svcSounds 24 return svcSounds
25} 25}
diff --git a/pkg/messages/types/svcSplitScreen.go b/pkg/messages/types/svcSplitScreen.go
index 9c808bc..3ba6ee8 100644
--- a/pkg/messages/types/svcSplitScreen.go
+++ b/pkg/messages/types/svcSplitScreen.go
@@ -8,11 +8,11 @@ type SvcSplitScreen struct {
8 Data []byte 8 Data []byte
9} 9}
10 10
11func ParseSvcSplitScreen(reader *bitreader.ReaderType) SvcSplitScreen { 11func ParseSvcSplitScreen(reader *bitreader.Reader) SvcSplitScreen {
12 svcSplitScreen := SvcSplitScreen{ 12 svcSplitScreen := SvcSplitScreen{
13 Unk: reader.TryReadBool(), 13 Unk: reader.TryReadBool(),
14 Length: int16(reader.TryReadBits(11)), 14 Length: int16(reader.TryReadBits(11)),
15 } 15 }
16 svcSplitScreen.Data = reader.TryReadBitsToSlice(int(svcSplitScreen.Length)) 16 svcSplitScreen.Data = reader.TryReadBitsToSlice(uint64(svcSplitScreen.Length))
17 return svcSplitScreen 17 return svcSplitScreen
18} 18}
diff --git a/pkg/messages/types/svcTempEntities.go b/pkg/messages/types/svcTempEntities.go
index d22423d..ca4b995 100644
--- a/pkg/messages/types/svcTempEntities.go
+++ b/pkg/messages/types/svcTempEntities.go
@@ -8,11 +8,11 @@ type SvcTempEntities struct {
8 Data []byte 8 Data []byte
9} 9}
10 10
11func ParseSvcTempEntities(reader *bitreader.ReaderType) SvcTempEntities { 11func ParseSvcTempEntities(reader *bitreader.Reader) SvcTempEntities {
12 svcTempEntities := SvcTempEntities{ 12 svcTempEntities := SvcTempEntities{
13 NumEntries: int8(reader.TryReadBits(8)), 13 NumEntries: int8(reader.TryReadBits(8)),
14 Length: int32(reader.TryReadBits(17)), 14 Length: int32(reader.TryReadBits(17)),
15 } 15 }
16 svcTempEntities.Data = reader.TryReadBitsToSlice(int(svcTempEntities.Length)) 16 svcTempEntities.Data = reader.TryReadBitsToSlice(uint64(svcTempEntities.Length))
17 return svcTempEntities 17 return svcTempEntities
18} 18}
diff --git a/pkg/messages/types/svcUpdateStringTable.go b/pkg/messages/types/svcUpdateStringTable.go
index 2840482..c606141 100644
--- a/pkg/messages/types/svcUpdateStringTable.go
+++ b/pkg/messages/types/svcUpdateStringTable.go
@@ -9,7 +9,7 @@ type SvcUpdateStringTable struct {
9 Data []byte 9 Data []byte
10} 10}
11 11
12func ParseSvcUpdateStringTable(reader *bitreader.ReaderType) SvcUpdateStringTable { 12func ParseSvcUpdateStringTable(reader *bitreader.Reader) SvcUpdateStringTable {
13 svcUpdateStringTable := SvcUpdateStringTable{ 13 svcUpdateStringTable := SvcUpdateStringTable{
14 TableId: int8(reader.TryReadBits(5)), 14 TableId: int8(reader.TryReadBits(5)),
15 } 15 }
@@ -17,6 +17,6 @@ func ParseSvcUpdateStringTable(reader *bitreader.ReaderType) SvcUpdateStringTabl
17 svcUpdateStringTable.NumChangedEntries = int16(reader.TryReadBits(16)) 17 svcUpdateStringTable.NumChangedEntries = int16(reader.TryReadBits(16))
18 } 18 }
19 svcUpdateStringTable.Length = int32(reader.TryReadBits(20)) 19 svcUpdateStringTable.Length = int32(reader.TryReadBits(20))
20 svcUpdateStringTable.Data = reader.TryReadBitsToSlice(int(svcUpdateStringTable.Length)) 20 svcUpdateStringTable.Data = reader.TryReadBitsToSlice(uint64(svcUpdateStringTable.Length))
21 return svcUpdateStringTable 21 return svcUpdateStringTable
22} 22}
diff --git a/pkg/messages/types/svcUserMessage.go b/pkg/messages/types/svcUserMessage.go
index b53c7c0..fb8be20 100644
--- a/pkg/messages/types/svcUserMessage.go
+++ b/pkg/messages/types/svcUserMessage.go
@@ -8,11 +8,11 @@ type SvcUserMessage struct {
8 Data []byte 8 Data []byte
9} 9}
10 10
11func ParseSvcUserMessage(reader *bitreader.ReaderType) SvcUserMessage { 11func ParseSvcUserMessage(reader *bitreader.Reader) SvcUserMessage {
12 svcUserMessage := SvcUserMessage{ 12 svcUserMessage := SvcUserMessage{
13 MsgType: int8(reader.TryReadBits(8)), 13 MsgType: int8(reader.TryReadBits(8)),
14 Length: int16(reader.TryReadBits(12)), 14 Length: int16(reader.TryReadBits(12)),
15 } 15 }
16 svcUserMessage.Data = reader.TryReadBitsToSlice(int(svcUserMessage.Length)) 16 svcUserMessage.Data = reader.TryReadBitsToSlice(uint64(svcUserMessage.Length))
17 return svcUserMessage 17 return svcUserMessage
18} 18}
diff --git a/pkg/messages/types/svcVoiceData.go b/pkg/messages/types/svcVoiceData.go
index b6c81d4..9609d80 100644
--- a/pkg/messages/types/svcVoiceData.go
+++ b/pkg/messages/types/svcVoiceData.go
@@ -9,12 +9,12 @@ type SvcVoiceData struct {
9 Data []byte 9 Data []byte
10} 10}
11 11
12func ParseSvcVoiceData(reader *bitreader.ReaderType) SvcVoiceData { 12func ParseSvcVoiceData(reader *bitreader.Reader) SvcVoiceData {
13 svcVoiceData := SvcVoiceData{ 13 svcVoiceData := SvcVoiceData{
14 Client: int8(reader.TryReadBits(8)), 14 Client: int8(reader.TryReadBits(8)),
15 Proximity: int8(reader.TryReadBits(8)), 15 Proximity: int8(reader.TryReadBits(8)),
16 Length: int16(reader.TryReadBits(16)), 16 Length: int16(reader.TryReadBits(16)),
17 } 17 }
18 svcVoiceData.Data = reader.TryReadBitsToSlice(int(svcVoiceData.Length)) 18 svcVoiceData.Data = reader.TryReadBitsToSlice(uint64(svcVoiceData.Length))
19 return svcVoiceData 19 return svcVoiceData
20} 20}
diff --git a/pkg/messages/types/svcVoiceInit.go b/pkg/messages/types/svcVoiceInit.go
index 4c95aab..afabfc9 100644
--- a/pkg/messages/types/svcVoiceInit.go
+++ b/pkg/messages/types/svcVoiceInit.go
@@ -8,7 +8,7 @@ type SvcVoiceInit struct {
8 Unk float32 8 Unk float32
9} 9}
10 10
11func ParseSvcVoiceInit(reader *bitreader.ReaderType) SvcVoiceInit { 11func ParseSvcVoiceInit(reader *bitreader.Reader) SvcVoiceInit {
12 svcVoiceInit := SvcVoiceInit{ 12 svcVoiceInit := SvcVoiceInit{
13 Codec: reader.TryReadString(), 13 Codec: reader.TryReadString(),
14 Quality: uint8(reader.TryReadBits(8)), 14 Quality: uint8(reader.TryReadBits(8)),