diff options
Diffstat (limited to 'pkg/messages/types/svcClassInfo.go')
| -rw-r--r-- | pkg/messages/types/svcClassInfo.go | 24 |
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 | ||
| 10 | type SvcClassInfo struct { | 10 | type 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 | ||
| 16 | type serverClass struct { | 16 | type 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 | ||
| 22 | func ParseSvcClassInfo(reader *bitreader.Reader) SvcClassInfo { | 22 | func 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 |