blob: 652fbb50763e3dba6d2847dd7eb44795f05c82c3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package messages
import (
"fmt"
"github.com/pektezol/bitreader"
)
type SvcUserMessage struct {
Type int8
Length int16
Data any
}
func ParseSvcUserMessage(reader *bitreader.Reader) SvcUserMessage {
svcUserMessage := SvcUserMessage{
Type: int8(reader.TryReadBits(8)),
Length: int16(reader.TryReadBits(12)),
}
svcUserMessage.Data = reader.TryReadBitsToSlice(uint64(svcUserMessage.Length))
userMessageReader := bitreader.NewReaderFromBytes(svcUserMessage.Data.([]byte), true)
switch svcUserMessage.Type {
case 60:
svcUserMessage.parseScoreboardTempUpdate(userMessageReader)
}
return svcUserMessage
}
func (svcUserMessage *SvcUserMessage) parseScoreboardTempUpdate(reader *bitreader.Reader) {
scoreboardTempUpdate := struct {
NumPortals int32
TimeTaken int32
}{
NumPortals: reader.TryReadSInt32(),
TimeTaken: reader.TryReadSInt32(),
}
svcUserMessage.Data = scoreboardTempUpdate
fmt.Printf("Portal Count: %d\n", scoreboardTempUpdate.NumPortals)
fmt.Printf("CM Ticks: %d\n", scoreboardTempUpdate.TimeTaken)
}
|