diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2022-11-08 22:48:20 +0300 |
|---|---|---|
| committer | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-09-16 21:39:39 +0300 |
| commit | 833a46544df2ed2a7afdba08ebfe02ed7741d86a (patch) | |
| tree | 2432f14b449761086d773fb8cd072797d23006f1 /packets/messages/message.go | |
| parent | put class type into individual files (diff) | |
| download | sdp.go-833a46544df2ed2a7afdba08ebfe02ed7741d86a.tar.gz sdp.go-833a46544df2ed2a7afdba08ebfe02ed7741d86a.tar.bz2 sdp.go-833a46544df2ed2a7afdba08ebfe02ed7741d86a.zip | |
net/svc messages
Diffstat (limited to 'packets/messages/message.go')
| -rw-r--r-- | packets/messages/message.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/packets/messages/message.go b/packets/messages/message.go new file mode 100644 index 0000000..c508bfa --- /dev/null +++ b/packets/messages/message.go | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | package messages | ||
| 2 | |||
| 3 | import ( | ||
| 4 | "bytes" | ||
| 5 | |||
| 6 | "github.com/pektezol/bitreader" | ||
| 7 | "github.com/pektezol/demoparser/packets/messages/types" | ||
| 8 | ) | ||
| 9 | |||
| 10 | func ParseMessage(data []byte) []Message { | ||
| 11 | reader := bitreader.Reader(bytes.NewReader(data), true) | ||
| 12 | var messages []Message | ||
| 13 | for { | ||
| 14 | messageType, err := reader.ReadBits(6) | ||
| 15 | if err != nil { | ||
| 16 | break | ||
| 17 | } | ||
| 18 | switch messageType { | ||
| 19 | case 0x00: | ||
| 20 | messages = append(messages, Message{Data: types.NetNop{}}) | ||
| 21 | case 0x01: | ||
| 22 | messages = append(messages, Message{Data: types.ParseNetDisconnect(reader)}) | ||
| 23 | case 0x02: | ||
| 24 | messages = append(messages, Message{Data: types.ParseNetFile(reader)}) | ||
| 25 | case 0x03: | ||
| 26 | messages = append(messages, Message{Data: types.ParseNetSplitScreenUser(reader)}) | ||
| 27 | case 0x04: | ||
| 28 | messages = append(messages, Message{Data: types.ParseNetTick(reader)}) | ||
| 29 | case 0x05: | ||
| 30 | messages = append(messages, Message{Data: types.ParseNetStringCmd(reader)}) | ||
| 31 | case 0x06: | ||
| 32 | messages = append(messages, Message{Data: types.ParseNetSetConVar(reader)}) | ||
| 33 | case 0x07: | ||
| 34 | messages = append(messages, Message{Data: types.ParseNetSignOnState(reader)}) | ||
| 35 | case 0x08: | ||
| 36 | messages = append(messages, Message{Data: types.ParseSvcServerInfo(reader)}) | ||
| 37 | case 0x09: | ||
| 38 | messages = append(messages, Message{Data: types.ParseSvcSendTable(reader)}) | ||
| 39 | case 0x10: | ||
| 40 | messages = append(messages, Message{Data: types.ParseSvcClassInfo(reader)}) | ||
| 41 | case 0x11: | ||
| 42 | messages = append(messages, Message{Data: types.ParseSvcSetPause(reader)}) | ||
| 43 | } | ||
| 44 | } | ||
| 45 | return messages | ||
| 46 | } | ||
| 47 | |||
| 48 | type Message struct { | ||
| 49 | Data any | ||
| 50 | } | ||