From 77e4b066cb8d506b4bc944ab4eb2d6e4679e2202 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Sat, 15 Jun 2024 13:58:30 +0300 Subject: enable multithreading with goroutines (#20) --- pkg/messages/types/svcGameEvent.go | 40 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'pkg/messages/types/svcGameEvent.go') diff --git a/pkg/messages/types/svcGameEvent.go b/pkg/messages/types/svcGameEvent.go index b325472..cb1e91d 100644 --- a/pkg/messages/types/svcGameEvent.go +++ b/pkg/messages/types/svcGameEvent.go @@ -2,56 +2,56 @@ package messages import ( "github.com/pektezol/bitreader" - "github.com/pektezol/sdp.go/pkg/writer" + "github.com/pektezol/sdp.go/pkg/types" ) type SvcGameEvent struct { - Length uint16 - EventID uint32 - EventDescription GameEventDescriptor - EventDescriptors []EventDescriptorKey + Length uint16 `json:"length"` + EventID uint32 `json:"event_id"` + EventDescription types.GameEventDescriptor `json:"event_description"` + EventDescriptors []EventDescriptorKey `json:"event_descriptors"` } type EventDescriptorKey struct { - Name string - Descriptor any + Name string `json:"name"` + Descriptor any `json:"descriptor"` } -func ParseSvcGameEvent(reader *bitreader.Reader) SvcGameEvent { +func ParseSvcGameEvent(reader *bitreader.Reader, demo *types.Demo) SvcGameEvent { svcGameEvent := SvcGameEvent{ Length: uint16(reader.TryReadBits(11)), } gameEventReader := bitreader.NewReaderFromBytes(reader.TryReadBitsToSlice(uint64(svcGameEvent.Length)), true) - svcGameEvent.parseGameEvent(gameEventReader) + svcGameEvent.parseGameEvent(gameEventReader, demo) return svcGameEvent } -func (svcGameEvent *SvcGameEvent) parseGameEvent(reader *bitreader.Reader) { +func (svcGameEvent *SvcGameEvent) parseGameEvent(reader *bitreader.Reader, demo *types.Demo) { svcGameEvent.EventID = uint32(reader.TryReadBits(9)) - svcGameEvent.EventDescription = GameEventList.GameEventDescriptor[svcGameEvent.EventID] - writer.TempAppendLine("\t\t%s (%d):", svcGameEvent.EventDescription.Name, svcGameEvent.EventID) + svcGameEvent.EventDescription = demo.GameEventList.GameEventDescriptor[svcGameEvent.EventID] + demo.Writer.TempAppendLine("\t\t%s (%d):", svcGameEvent.EventDescription.Name, svcGameEvent.EventID) for _, descriptor := range svcGameEvent.EventDescription.Keys { var value any switch descriptor.Type { - case EventDescriptorString: + case types.EventDescriptorString: value = reader.TryReadString() - case EventDescriptorFloat: + case types.EventDescriptorFloat: value = reader.TryReadFloat32() - case EventDescriptorInt32: + case types.EventDescriptorInt32: value = reader.TryReadSInt32() - case EventDescriptorInt16: + case types.EventDescriptorInt16: value = reader.TryReadSInt16() - case EventDescriptorInt8: + case types.EventDescriptorInt8: value = reader.TryReadUInt8() - case EventDescriptorBool: + case types.EventDescriptorBool: value = reader.TryReadBool() - case EventDescriptorUInt64: + case types.EventDescriptorUInt64: value = reader.TryReadUInt64() } svcGameEvent.EventDescriptors = append(svcGameEvent.EventDescriptors, EventDescriptorKey{ Name: descriptor.Name, Descriptor: value, }) - writer.TempAppendLine("\t\t\t%s: %v", descriptor.Name, value) + demo.Writer.TempAppendLine("\t\t\t%s: %v", descriptor.Name, value) } } -- cgit v1.2.3