From 44eefefe67a4a5f514faa4594370346fd1b54996 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Thu, 21 Sep 2023 19:26:40 +0300 Subject: organize packets and classes (#9) --- pkg/classes/customData.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 pkg/classes/customData.go (limited to 'pkg/classes/customData.go') diff --git a/pkg/classes/customData.go b/pkg/classes/customData.go new file mode 100644 index 0000000..2dadde4 --- /dev/null +++ b/pkg/classes/customData.go @@ -0,0 +1,30 @@ +package classes + +import ( + "github.com/pektezol/bitreader" + "github.com/pektezol/demoparser/pkg/writer" +) + +type CustomData struct { + Type int32 + Size int32 + Data string +} + +func (customData *CustomData) ParseCustomData(reader *bitreader.Reader, tickNumber int32, packetType uint8) { + customData.Type = reader.TryReadSInt32() + customData.Size = reader.TryReadSInt32() + if customData.Type != 0 || customData.Size == 8 { + // Not SAR data + writer.AppendLine("[%d] %s (%d):", tickNumber, "CUSTOMDATA", packetType) + customData.Data = string(reader.TryReadBytesToSlice(uint64(customData.Size))) + writer.AppendLine("\t%s", customData.Data) + return + } + // SAR data + writer.AppendLine("[%d] %s (%d):", tickNumber, "SARDATA", packetType) + sarData := SarData{} + data := reader.TryReadBytesToSlice(uint64(customData.Size)) + sarReader := bitreader.NewReaderFromBytes(data, true) + sarData.ParseSarData(sarReader) +} -- cgit v1.2.3