aboutsummaryrefslogtreecommitdiff
path: root/pkg/classes/dataTables.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/classes/dataTables.go')
-rw-r--r--pkg/classes/dataTables.go23
1 files changed, 10 insertions, 13 deletions
diff --git a/pkg/classes/dataTables.go b/pkg/classes/dataTables.go
index 27ab9e4..64b909e 100644
--- a/pkg/classes/dataTables.go
+++ b/pkg/classes/dataTables.go
@@ -4,7 +4,6 @@ import (
4 "fmt" 4 "fmt"
5 5
6 "github.com/pektezol/bitreader" 6 "github.com/pektezol/bitreader"
7 "github.com/pektezol/demoparser/pkg/writer"
8) 7)
9 8
10type DataTables struct { 9type DataTables struct {
@@ -46,14 +45,12 @@ func (dataTables *DataTables) ParseDataTables(reader *bitreader.Reader) {
46 count++ 45 count++
47 dataTables.SendTable = append(dataTables.SendTable, ParseSendTable(dataTableReader)) 46 dataTables.SendTable = append(dataTables.SendTable, ParseSendTable(dataTableReader))
48 } 47 }
49 writer.AppendLine("\t%d Send Tables:", count) 48
50 writer.AppendOutputFromTemp()
51 numOfClasses := dataTableReader.TryReadBits(16) 49 numOfClasses := dataTableReader.TryReadBits(16)
52 for count = 0; count < int(numOfClasses); count++ { 50 for count = 0; count < int(numOfClasses); count++ {
53 dataTables.ServerClassInfo = append(dataTables.ServerClassInfo, ParseServerClassInfo(dataTableReader, count, int(numOfClasses))) 51 dataTables.ServerClassInfo = append(dataTables.ServerClassInfo, ParseServerClassInfo(dataTableReader, count, int(numOfClasses)))
54 } 52 }
55 writer.AppendLine("\t%d Classes:", count) 53
56 writer.AppendOutputFromTemp()
57} 54}
58 55
59func ParseSendTable(reader *bitreader.Reader) SendTable { 56func ParseSendTable(reader *bitreader.Reader) SendTable {
@@ -65,7 +62,7 @@ func ParseSendTable(reader *bitreader.Reader) SendTable {
65 if sendTable.NumOfProps < 0 { 62 if sendTable.NumOfProps < 0 {
66 return sendTable 63 return sendTable
67 } 64 }
68 writer.TempAppendLine("\t\t%s (%d Props):", sendTable.NetTableName, sendTable.NumOfProps) 65
69 for count := 0; count < int(sendTable.NumOfProps); count++ { 66 for count := 0; count < int(sendTable.NumOfProps); count++ {
70 propType := int8(reader.TryReadBits(5)) 67 propType := int8(reader.TryReadBits(5))
71 if propType >= int8(7) { 68 if propType >= int8(7) {
@@ -77,26 +74,26 @@ func ParseSendTable(reader *bitreader.Reader) SendTable {
77 SendPropFlags: uint32(reader.TryReadBits(19)), 74 SendPropFlags: uint32(reader.TryReadBits(19)),
78 Priority: reader.TryReadUInt8(), 75 Priority: reader.TryReadUInt8(),
79 } 76 }
80 writer.TempAppend("\t\t\t%s\t", prop.SendPropType) 77
81 if propType == int8(ESendPropTypeDataTable) || checkBit(prop.SendPropFlags, 6) { 78 if propType == int8(ESendPropTypeDataTable) || checkBit(prop.SendPropFlags, 6) {
82 prop.ExcludeDtName = reader.TryReadString() 79 prop.ExcludeDtName = reader.TryReadString()
83 writer.TempAppend(":\t%s\t", prop.ExcludeDtName) 80
84 } else { 81 } else {
85 switch propType { 82 switch propType {
86 case int8(ESendPropTypeString), int8(ESendPropTypeInt), int8(ESendPropTypeFloat), int8(ESendPropTypeVector3), int8(ESendPropTypeVector2): 83 case int8(ESendPropTypeString), int8(ESendPropTypeInt), int8(ESendPropTypeFloat), int8(ESendPropTypeVector3), int8(ESendPropTypeVector2):
87 prop.LowValue = reader.TryReadFloat32() 84 prop.LowValue = reader.TryReadFloat32()
88 prop.HighValue = reader.TryReadFloat32() 85 prop.HighValue = reader.TryReadFloat32()
89 prop.NumBits = int32(reader.TryReadBits(7)) 86 prop.NumBits = int32(reader.TryReadBits(7))
90 writer.TempAppend("Low: %f\tHigh: %f\t%d bits\t", prop.LowValue, prop.HighValue, prop.NumBits) 87
91 case int8(ESendPropTypeArray): 88 case int8(ESendPropTypeArray):
92 prop.NumElements = int32(reader.TryReadBits(10)) 89 prop.NumElements = int32(reader.TryReadBits(10))
93 writer.TempAppend("Elements: %d\t", prop.NumElements) 90
94 default: 91 default:
95 writer.TempAppend("Unknown Prop Type: %v\t", propType) 92
96 return sendTable 93 return sendTable
97 } 94 }
98 } 95 }
99 writer.TempAppend("Flags: %v\tPriority: %d\n", prop.GetFlags(), prop.Priority) 96
100 sendTable.Props = append(sendTable.Props, prop) 97 sendTable.Props = append(sendTable.Props, prop)
101 } 98 }
102 return sendTable 99 return sendTable
@@ -108,7 +105,7 @@ func ParseServerClassInfo(reader *bitreader.Reader, count int, numOfClasses int)
108 ClassName: reader.TryReadString(), 105 ClassName: reader.TryReadString(),
109 DataTableName: reader.TryReadString(), 106 DataTableName: reader.TryReadString(),
110 } 107 }
111 writer.TempAppendLine("\t\t\t[%d] %s (%s)", serverClassInfo.ClassId, serverClassInfo.ClassName, serverClassInfo.DataTableName) 108
112 return serverClassInfo 109 return serverClassInfo
113} 110}
114 111