blob: 4c1a79e1fb1452a79c3b4514fe48aaded8515607 (
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
|
package classes
import (
"github.com/pektezol/bitreader"
"github.com/pektezol/sdp.go/pkg/types"
)
type CustomData struct {
Type int32 `json:"type"`
Size int32 `json:"size"`
Data any `json:"data"`
}
func (customData *CustomData) ParseCustomData(reader *bitreader.Reader, tickNumber int32, packetType uint8, demo *types.Demo) {
customData.Type = reader.TryReadSInt32()
customData.Size = reader.TryReadSInt32()
if customData.Type != 0 || customData.Size == 8 {
// Not SAR data
demo.Writer.AppendLine("[%d] %s (%d):", tickNumber, "CUSTOMDATA", packetType)
customData.Data = string(reader.TryReadBytesToSlice(uint64(customData.Size)))
demo.Writer.AppendLine("\t%s", customData.Data)
return
}
// SAR data
demo.Writer.AppendLine("[%d] %s (%d):", tickNumber, "SARDATA", packetType)
sarData := SarData{}
data := reader.TryReadBytesToSlice(uint64(customData.Size))
sarReader := bitreader.NewReaderFromBytes(data, true)
sarData.ParseSarData(sarReader, demo)
customData.Data = sarData
}
|