diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-09-23 10:06:39 +0300 |
|---|---|---|
| committer | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-09-23 10:06:39 +0300 |
| commit | 9991801e4037d8dc530876584f21c1674c9e3bba (patch) | |
| tree | efa20cd6aa6556cfdea81f4c99251e0688847ca6 /pkg/classes/dataTables.go | |
| parent | organize packets and classes (#9) (diff) | |
| download | sdp.go-9991801e4037d8dc530876584f21c1674c9e3bba.tar.gz sdp.go-9991801e4037d8dc530876584f21c1674c9e3bba.tar.bz2 sdp.go-9991801e4037d8dc530876584f21c1674c9e3bba.zip | |
init: will look at this laterverification
Diffstat (limited to 'pkg/classes/dataTables.go')
| -rw-r--r-- | pkg/classes/dataTables.go | 23 |
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 | ||
| 10 | type DataTables struct { | 9 | type 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 | ||
| 59 | func ParseSendTable(reader *bitreader.Reader) SendTable { | 56 | func 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 | ||