aboutsummaryrefslogtreecommitdiff
path: root/pkg/messages/types/svcClassInfo.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/messages/types/svcClassInfo.go')
-rw-r--r--pkg/messages/types/svcClassInfo.go24
1 files changed, 12 insertions, 12 deletions
diff --git a/pkg/messages/types/svcClassInfo.go b/pkg/messages/types/svcClassInfo.go
index af382a8..995c61d 100644
--- a/pkg/messages/types/svcClassInfo.go
+++ b/pkg/messages/types/svcClassInfo.go
@@ -4,40 +4,40 @@ import (
4 "math" 4 "math"
5 5
6 "github.com/pektezol/bitreader" 6 "github.com/pektezol/bitreader"
7 "github.com/pektezol/sdp.go/pkg/writer" 7 "github.com/pektezol/sdp.go/pkg/types"
8) 8)
9 9
10type SvcClassInfo struct { 10type SvcClassInfo struct {
11 ClassCount uint16 11 ClassCount uint16 `json:"class_count"`
12 CreateOnClient bool 12 CreateOnClient bool `json:"create_on_client"`
13 ServerClasses []serverClass 13 ServerClasses []serverClass `json:"server_classes"`
14} 14}
15 15
16type serverClass struct { 16type serverClass struct {
17 ClassId int16 17 ClassId int16 `json:"class_id"`
18 ClassName string 18 ClassName string `json:"class_name"`
19 DataTableName string 19 DataTableName string `json:"data_table_name"`
20} 20}
21 21
22func ParseSvcClassInfo(reader *bitreader.Reader) SvcClassInfo { 22func ParseSvcClassInfo(reader *bitreader.Reader, demo *types.Demo) SvcClassInfo {
23 svcClassInfo := SvcClassInfo{ 23 svcClassInfo := SvcClassInfo{
24 ClassCount: reader.TryReadUInt16(), 24 ClassCount: reader.TryReadUInt16(),
25 CreateOnClient: reader.TryReadBool(), 25 CreateOnClient: reader.TryReadBool(),
26 } 26 }
27 classes := []serverClass{} 27 classes := []serverClass{}
28 writer.TempAppendLine("\t\tCreate On Client: %t", svcClassInfo.CreateOnClient) 28 demo.Writer.TempAppendLine("\t\tCreate On Client: %t", svcClassInfo.CreateOnClient)
29 if !svcClassInfo.CreateOnClient { 29 if !svcClassInfo.CreateOnClient {
30 writer.TempAppendLine("\t\t%d Server Classes:", svcClassInfo.ClassCount) 30 demo.Writer.TempAppendLine("\t\t%d Server Classes:", svcClassInfo.ClassCount)
31 for count := 0; count < int(svcClassInfo.ClassCount); count++ { 31 for count := 0; count < int(svcClassInfo.ClassCount); count++ {
32 classes = append(classes, serverClass{ 32 classes = append(classes, serverClass{
33 ClassId: int16(reader.TryReadBits(uint64(math.Log2(float64(svcClassInfo.ClassCount)) + 1))), 33 ClassId: int16(reader.TryReadBits(uint64(math.Log2(float64(svcClassInfo.ClassCount)) + 1))),
34 ClassName: reader.TryReadString(), 34 ClassName: reader.TryReadString(),
35 DataTableName: reader.TryReadString(), 35 DataTableName: reader.TryReadString(),
36 }) 36 })
37 writer.TempAppendLine("\t\t\t[%d] %s (%s)", classes[len(classes)-1].ClassId, classes[len(classes)-1].ClassName, classes[len(classes)-1].DataTableName) 37 demo.Writer.TempAppendLine("\t\t\t[%d] %s (%s)", classes[len(classes)-1].ClassId, classes[len(classes)-1].ClassName, classes[len(classes)-1].DataTableName)
38 } 38 }
39 } else { 39 } else {
40 writer.TempAppendLine("\t\t%d Server Classes", svcClassInfo.ClassCount) 40 demo.Writer.TempAppendLine("\t\t%d Server Classes", svcClassInfo.ClassCount)
41 } 41 }
42 svcClassInfo.ServerClasses = classes 42 svcClassInfo.ServerClasses = classes
43 return svcClassInfo 43 return svcClassInfo