aboutsummaryrefslogtreecommitdiff
path: root/packets/messages
diff options
context:
space:
mode:
Diffstat (limited to 'packets/messages')
-rw-r--r--packets/messages/message.go13
-rw-r--r--packets/messages/types/SvcClassInfo.go2
-rw-r--r--packets/messages/types/SvcCreateStringTable.go3
-rw-r--r--packets/messages/types/SvcGameEventList.go3
-rw-r--r--packets/messages/types/SvcPacketEntities.go6
-rw-r--r--packets/messages/types/SvcSounds.go5
-rw-r--r--packets/messages/types/SvcTempEntities.go3
-rw-r--r--packets/messages/types/SvcUpdateStringTable.go3
-rw-r--r--packets/messages/types/SvcUserMessage.go3
9 files changed, 28 insertions, 13 deletions
diff --git a/packets/messages/message.go b/packets/messages/message.go
index f934419..376a3d5 100644
--- a/packets/messages/message.go
+++ b/packets/messages/message.go
@@ -2,12 +2,20 @@ package messages
2 2
3import ( 3import (
4 "bytes" 4 "bytes"
5 "fmt"
6 5
7 "github.com/pektezol/bitreader" 6 "github.com/pektezol/bitreader"
8 "github.com/pektezol/demoparser/packets/messages/types" 7 "github.com/pektezol/demoparser/packets/messages/types"
9) 8)
10 9
10// TODO: Read data properly in:
11// SvcCreateStringTable
12// SvcGameEventList
13// SvcPacketEntities
14// SvcSounds
15// SvcTempEntities
16// SvcUpdateStringTable
17// SvcUserMessage
18
11func ParseMessage(data []byte) []Message { 19func ParseMessage(data []byte) []Message {
12 reader := bitreader.Reader(bytes.NewReader(data), true) 20 reader := bitreader.Reader(bytes.NewReader(data), true)
13 var messages []Message 21 var messages []Message
@@ -16,7 +24,7 @@ func ParseMessage(data []byte) []Message {
16 if err != nil { 24 if err != nil {
17 break 25 break
18 } 26 }
19 fmt.Printf("Reading message type: %d\n", messageType) 27 // fmt.Printf("Reading message type: %d\n", messageType)
20 switch messageType { 28 switch messageType {
21 case 0: 29 case 0:
22 messages = append(messages, Message{Data: types.NetNop{}}) 30 messages = append(messages, Message{Data: types.NetNop{}})
@@ -87,7 +95,6 @@ func ParseMessage(data []byte) []Message {
87 case 33: 95 case 33:
88 messages = append(messages, Message{Data: types.ParseSvcPaintmapData(reader)}) 96 messages = append(messages, Message{Data: types.ParseSvcPaintmapData(reader)})
89 } 97 }
90 //fmt.Println(messages)
91 } 98 }
92 return messages 99 return messages
93} 100}
diff --git a/packets/messages/types/SvcClassInfo.go b/packets/messages/types/SvcClassInfo.go
index d41723d..df17bfc 100644
--- a/packets/messages/types/SvcClassInfo.go
+++ b/packets/messages/types/SvcClassInfo.go
@@ -19,7 +19,7 @@ func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo {
19 length := reader.TryReadInt16() 19 length := reader.TryReadInt16()
20 createonclient := reader.TryReadBool() 20 createonclient := reader.TryReadBool()
21 var serverclasses []ServerClass 21 var serverclasses []ServerClass
22 if createonclient { 22 if !createonclient {
23 serverclasses := make([]ServerClass, length) 23 serverclasses := make([]ServerClass, length)
24 for i := 0; i < int(length); i++ { 24 for i := 0; i < int(length); i++ {
25 id, err := reader.ReadBits(HighestBitIndex(uint(length)) + 1) 25 id, err := reader.ReadBits(HighestBitIndex(uint(length)) + 1)
diff --git a/packets/messages/types/SvcCreateStringTable.go b/packets/messages/types/SvcCreateStringTable.go
index 6e97ea7..336b3e0 100644
--- a/packets/messages/types/SvcCreateStringTable.go
+++ b/packets/messages/types/SvcCreateStringTable.go
@@ -26,7 +26,8 @@ func ParseSvcCreateStringTable(reader *bitreader.ReaderType) SvcCreateStringTabl
26 svccreatestringtable.UserDataSizeBits = uint8(reader.TryReadBits(4)) 26 svccreatestringtable.UserDataSizeBits = uint8(reader.TryReadBits(4))
27 } 27 }
28 svccreatestringtable.Flags = uint8(reader.TryReadBits(2)) 28 svccreatestringtable.Flags = uint8(reader.TryReadBits(2))
29 svccreatestringtable.StringData = int(reader.TryReadBits(int(length / 8))) 29 reader.SkipBits(int(length)) // TODO: Read data properly
30 // svccreatestringtable.StringData = int(reader.TryReadBits(int(length / 8)))
30 return svccreatestringtable 31 return svccreatestringtable
31 32
32} 33}
diff --git a/packets/messages/types/SvcGameEventList.go b/packets/messages/types/SvcGameEventList.go
index bdba161..3952517 100644
--- a/packets/messages/types/SvcGameEventList.go
+++ b/packets/messages/types/SvcGameEventList.go
@@ -10,8 +10,9 @@ type SvcGameEventList struct {
10func ParseSvcGameEventList(reader *bitreader.ReaderType) SvcGameEventList { 10func ParseSvcGameEventList(reader *bitreader.ReaderType) SvcGameEventList {
11 events := reader.TryReadBits(9) 11 events := reader.TryReadBits(9)
12 length := reader.TryReadBits(20) 12 length := reader.TryReadBits(20)
13 reader.SkipBits(int(length)) // TODO: Read data properly
13 return SvcGameEventList{ 14 return SvcGameEventList{
14 Events: int16(events), 15 Events: int16(events),
15 Data: reader.TryReadBytesToSlice(int(length)), 16 //Data: reader.TryReadBytesToSlice(int(length)),
16 } 17 }
17} 18}
diff --git a/packets/messages/types/SvcPacketEntities.go b/packets/messages/types/SvcPacketEntities.go
index 5fc27db..6621c3a 100644
--- a/packets/messages/types/SvcPacketEntities.go
+++ b/packets/messages/types/SvcPacketEntities.go
@@ -24,13 +24,15 @@ func ParseSvcPacketEntities(reader *bitreader.ReaderType) SvcPacketEntities {
24 baseline := reader.TryReadBool() 24 baseline := reader.TryReadBool()
25 updatedentries := reader.TryReadBits(11) 25 updatedentries := reader.TryReadBits(11)
26 length := reader.TryReadBits(20) 26 length := reader.TryReadBits(20)
27 updatebaseline := reader.TryReadBool()
28 reader.SkipBits(int(length)) // TODO: Read data properly
27 return SvcPacketEntities{ 29 return SvcPacketEntities{
28 MaxEntries: uint16(maxentries), 30 MaxEntries: uint16(maxentries),
29 IsDelta: isdelta, 31 IsDelta: isdelta,
30 DeltaFrom: deltafrom, 32 DeltaFrom: deltafrom,
31 BaseLine: baseline, 33 BaseLine: baseline,
32 UpdatedEntries: uint16(updatedentries), 34 UpdatedEntries: uint16(updatedentries),
33 UpdateBaseline: reader.TryReadBool(), 35 UpdateBaseline: updatebaseline,
34 Data: reader.TryReadBytesToSlice(int(length / 8)), 36 // Data: reader.TryReadBytesToSlice(int(length / 8)),
35 } 37 }
36} 38}
diff --git a/packets/messages/types/SvcSounds.go b/packets/messages/types/SvcSounds.go
index 1f76a03..4d858bf 100644
--- a/packets/messages/types/SvcSounds.go
+++ b/packets/messages/types/SvcSounds.go
@@ -22,10 +22,11 @@ func ParseSvcSounds(reader *bitreader.ReaderType) SvcSounds {
22 } else { 22 } else {
23 length = int16(reader.TryReadInt16()) 23 length = int16(reader.TryReadInt16())
24 } 24 }
25 data := reader.TryReadBytesToSlice(int(length / 8)) 25 reader.SkipBits(int(length)) // TODO: Read data properly
26 //data := reader.TryReadBytesToSlice(int(length / 8))
26 return SvcSounds{ 27 return SvcSounds{
27 ReliableSound: reliablesound, 28 ReliableSound: reliablesound,
28 Size: size, 29 Size: size,
29 Data: data, 30 //Data: data,
30 } 31 }
31} 32}
diff --git a/packets/messages/types/SvcTempEntities.go b/packets/messages/types/SvcTempEntities.go
index ce89dca..105e014 100644
--- a/packets/messages/types/SvcTempEntities.go
+++ b/packets/messages/types/SvcTempEntities.go
@@ -12,8 +12,9 @@ type SvcTempEntities struct {
12func ParseSvcTempEntities(reader *bitreader.ReaderType) SvcTempEntities { 12func ParseSvcTempEntities(reader *bitreader.ReaderType) SvcTempEntities {
13 numentries := reader.TryReadInt8() 13 numentries := reader.TryReadInt8()
14 length := reader.TryReadBits(17) 14 length := reader.TryReadBits(17)
15 reader.SkipBits(int(length)) // TODO: Read data properly
15 return SvcTempEntities{ 16 return SvcTempEntities{
16 NumEntries: numentries, 17 NumEntries: numentries,
17 Data: reader.TryReadBytesToSlice(int(length / 8)), 18 //Data: reader.TryReadBytesToSlice(int(length/8) + int(length%8)),
18 } 19 }
19} 20}
diff --git a/packets/messages/types/SvcUpdateStringTable.go b/packets/messages/types/SvcUpdateStringTable.go
index d4a0609..d1ca9bb 100644
--- a/packets/messages/types/SvcUpdateStringTable.go
+++ b/packets/messages/types/SvcUpdateStringTable.go
@@ -16,6 +16,7 @@ func ParseSvcUpdateStringTable(reader *bitreader.ReaderType) SvcUpdateStringTabl
16 svcupdatestringtable.NumChangedEntries = int16(reader.TryReadInt16()) 16 svcupdatestringtable.NumChangedEntries = int16(reader.TryReadInt16())
17 } 17 }
18 length := reader.TryReadBits(20) 18 length := reader.TryReadBits(20)
19 svcupdatestringtable.Data = reader.TryReadBytesToSlice(int(length / 8)) 19 reader.SkipBits(int(length)) // TODO: Read data properly
20 //svcupdatestringtable.Data = reader.TryReadBytesToSlice(int(length / 8))
20 return svcupdatestringtable 21 return svcupdatestringtable
21} 22}
diff --git a/packets/messages/types/SvcUserMessage.go b/packets/messages/types/SvcUserMessage.go
index d816f22..6d09fa1 100644
--- a/packets/messages/types/SvcUserMessage.go
+++ b/packets/messages/types/SvcUserMessage.go
@@ -12,8 +12,9 @@ type SvcUserMessage struct {
12func ParseSvcUserMessage(reader *bitreader.ReaderType) SvcUserMessage { 12func ParseSvcUserMessage(reader *bitreader.ReaderType) SvcUserMessage {
13 msgtype := reader.TryReadInt8() 13 msgtype := reader.TryReadInt8()
14 length := reader.TryReadBits(12) 14 length := reader.TryReadBits(12)
15 reader.SkipBits(int(length)) // TODO: Read data properly
15 return SvcUserMessage{ 16 return SvcUserMessage{
16 MsgType: msgtype, 17 MsgType: msgtype,
17 Data: reader.TryReadBytesToSlice(int(length / 8)), 18 //Data: reader.TryReadBytesToSlice(int(length / 8)),
18 } 19 }
19} 20}