aboutsummaryrefslogtreecommitdiff
path: root/pkg/messages/messages.go
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-06-15 13:58:30 +0300
committerGitHub <noreply@github.com>2024-06-15 13:58:30 +0300
commit77e4b066cb8d506b4bc944ab4eb2d6e4679e2202 (patch)
tree1d549eca619ed36cb881e487cb054c4643ac8376 /pkg/messages/messages.go
parentchange project name to sdp.go (diff)
downloadsdp.go-77e4b066cb8d506b4bc944ab4eb2d6e4679e2202.tar.gz
sdp.go-77e4b066cb8d506b4bc944ab4eb2d6e4679e2202.tar.bz2
sdp.go-77e4b066cb8d506b4bc944ab4eb2d6e4679e2202.zip
enable multithreading with goroutines (#20)
Diffstat (limited to 'pkg/messages/messages.go')
-rw-r--r--pkg/messages/messages.go76
1 files changed, 38 insertions, 38 deletions
diff --git a/pkg/messages/messages.go b/pkg/messages/messages.go
index 0dca169..1c6cf1f 100644
--- a/pkg/messages/messages.go
+++ b/pkg/messages/messages.go
@@ -5,84 +5,84 @@ import (
5 5
6 "github.com/pektezol/bitreader" 6 "github.com/pektezol/bitreader"
7 messages "github.com/pektezol/sdp.go/pkg/messages/types" 7 messages "github.com/pektezol/sdp.go/pkg/messages/types"
8 "github.com/pektezol/sdp.go/pkg/writer" 8 types "github.com/pektezol/sdp.go/pkg/types"
9) 9)
10 10
11func ParseMessages(messageType uint64, reader *bitreader.Reader) any { 11func ParseMessages(messageType uint64, reader *bitreader.Reader, demo *types.Demo) any {
12 var messageData any 12 var messageData any
13 switch messageType { 13 switch messageType {
14 case 0: 14 case 0:
15 messageData = messages.ParseNetNop(reader) 15 messageData = messages.ParseNetNop(reader, demo)
16 case 1: 16 case 1:
17 messageData = messages.ParseNetDisconnect(reader) 17 messageData = messages.ParseNetDisconnect(reader, demo)
18 case 2: 18 case 2:
19 messageData = messages.ParseNetFile(reader) 19 messageData = messages.ParseNetFile(reader, demo)
20 case 3: 20 case 3:
21 messageData = messages.ParseNetSplitScreenUser(reader) 21 messageData = messages.ParseNetSplitScreenUser(reader, demo)
22 case 4: 22 case 4:
23 messageData = messages.ParseNetTick(reader) 23 messageData = messages.ParseNetTick(reader, demo)
24 case 5: 24 case 5:
25 messageData = messages.ParseNetStringCmd(reader) 25 messageData = messages.ParseNetStringCmd(reader, demo)
26 case 6: 26 case 6:
27 messageData = messages.ParseNetSetConVar(reader) 27 messageData = messages.ParseNetSetConVar(reader, demo)
28 case 7: 28 case 7:
29 messageData = messages.ParseNetSignOnState(reader) 29 messageData = messages.ParseNetSignOnState(reader, demo)
30 case 8: 30 case 8:
31 messageData = messages.ParseSvcServerInfo(reader) 31 messageData = messages.ParseSvcServerInfo(reader, demo)
32 case 9: 32 case 9:
33 messageData = messages.ParseSvcSendTable(reader) 33 messageData = messages.ParseSvcSendTable(reader, demo)
34 case 10: 34 case 10:
35 messageData = messages.ParseSvcClassInfo(reader) 35 messageData = messages.ParseSvcClassInfo(reader, demo)
36 case 11: 36 case 11:
37 messageData = messages.ParseSvcSetPause(reader) 37 messageData = messages.ParseSvcSetPause(reader, demo)
38 case 12: 38 case 12:
39 messageData = messages.ParseSvcCreateStringTable(reader) // TODO: 39 messageData = messages.ParseSvcCreateStringTable(reader, demo) // TODO:
40 case 13: 40 case 13:
41 messageData = messages.ParseSvcUpdateStringTable(reader) // TODO: 41 messageData = messages.ParseSvcUpdateStringTable(reader, demo) // TODO:
42 case 14: 42 case 14:
43 messageData = messages.ParseSvcVoiceInit(reader) 43 messageData = messages.ParseSvcVoiceInit(reader, demo)
44 case 15: 44 case 15:
45 messageData = messages.ParseSvcVoiceData(reader) 45 messageData = messages.ParseSvcVoiceData(reader, demo)
46 case 16: 46 case 16:
47 messageData = messages.ParseSvcPrint(reader) 47 messageData = messages.ParseSvcPrint(reader, demo)
48 case 17: 48 case 17:
49 messageData = messages.ParseSvcSounds(reader) // TODO: 49 messageData = messages.ParseSvcSounds(reader, demo) // TODO:
50 case 18: 50 case 18:
51 messageData = messages.ParseSvcSetView(reader) 51 messageData = messages.ParseSvcSetView(reader, demo)
52 case 19: 52 case 19:
53 messageData = messages.ParseSvcFixAngle(reader) 53 messageData = messages.ParseSvcFixAngle(reader, demo)
54 case 20: 54 case 20:
55 messageData = messages.ParseSvcCrosshairAngle(reader) 55 messageData = messages.ParseSvcCrosshairAngle(reader, demo)
56 case 21: 56 case 21:
57 messageData = messages.ParseSvcBspDecal(reader) // untested 57 messageData = messages.ParseSvcBspDecal(reader, demo) // untested
58 case 22: 58 case 22:
59 messageData = messages.ParseSvcSplitScreen(reader) // skipped 59 messageData = messages.ParseSvcSplitScreen(reader, demo) // skipped
60 case 23: 60 case 23:
61 messageData = messages.ParseSvcUserMessage(reader) 61 messageData = messages.ParseSvcUserMessage(reader, demo)
62 case 24: 62 case 24:
63 messageData = messages.ParseSvcEntityMessage(reader) // skipped 63 messageData = messages.ParseSvcEntityMessage(reader, demo) // skipped
64 case 25: 64 case 25:
65 messageData = messages.ParseSvcGameEvent(reader) 65 messageData = messages.ParseSvcGameEvent(reader, demo)
66 case 26: 66 case 26:
67 messageData = messages.ParseSvcPacketEntities(reader) // TODO: 67 messageData = messages.ParseSvcPacketEntities(reader, demo) // TODO:
68 case 27: 68 case 27:
69 messageData = messages.ParseSvcTempEntities(reader) // skipped 69 messageData = messages.ParseSvcTempEntities(reader, demo) // skipped
70 case 28: 70 case 28:
71 messageData = messages.ParseSvcPrefetch(reader) 71 messageData = messages.ParseSvcPrefetch(reader, demo)
72 case 29: 72 case 29:
73 messageData = messages.ParseSvcMenu(reader) // skipped 73 messageData = messages.ParseSvcMenu(reader, demo) // skipped
74 case 30: 74 case 30:
75 messageData = messages.ParseSvcGameEventList(reader) 75 messageData = messages.ParseSvcGameEventList(reader, demo)
76 case 31: 76 case 31:
77 messageData = messages.ParseSvcGetCvarValue(reader) 77 messageData = messages.ParseSvcGetCvarValue(reader, demo)
78 case 32: 78 case 32:
79 messageData = messages.ParseSvcCmdKeyValues(reader) 79 messageData = messages.ParseSvcCmdKeyValues(reader, demo)
80 case 33: 80 case 33:
81 messageData = messages.ParseSvcPaintmapData(reader) // skipped 81 messageData = messages.ParseSvcPaintmapData(reader, demo) // skipped
82 default: 82 default:
83 return nil 83 return nil
84 } 84 }
85 writer.AppendLine("\tMessage: %s (%d):", reflect.ValueOf(messageData).Type(), messageType) 85 demo.Writer.AppendLine("\tMessage: %s (%d):", reflect.ValueOf(messageData).Type(), messageType)
86 writer.AppendOutputFromTemp() 86 demo.Writer.AppendOutputFromTemp()
87 return messageData 87 return messageData
88} 88}