aboutsummaryrefslogtreecommitdiff
path: root/pkg/messages/types/svcEntityMessage.go
blob: 87d7e1b693b1970ff9300ead300c7f100e22ba4f (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
package messages

import (
	"github.com/pektezol/bitreader"
	"github.com/pektezol/sdp.go/pkg/types"
)

type SvcEntityMessage struct {
	EntityIndex uint16 `json:"entity_index"`
	ClassId     uint16 `json:"class_id"`
	Length      uint16 `json:"length"`
	Data        []byte `json:"data"`
}

func ParseSvcEntityMessage(reader *bitreader.Reader, demo *types.Demo) SvcEntityMessage {
	svcEntityMessage := SvcEntityMessage{
		EntityIndex: uint16(reader.TryReadBits(11)),
		ClassId:     uint16(reader.TryReadBits(9)),
		Length:      uint16(reader.TryReadBits(11)),
	}
	svcEntityMessage.Data = reader.TryReadBitsToSlice(uint64(svcEntityMessage.Length))
	demo.Writer.TempAppendLine("\t\tEntity Index: %d", svcEntityMessage.EntityIndex)
	demo.Writer.TempAppendLine("\t\tClass ID: %d", svcEntityMessage.ClassId)
	demo.Writer.TempAppendLine("\t\tData: %v", svcEntityMessage.Data)
	return svcEntityMessage
}