From 2f8c92f261586f68a976efce0cfcdd0401f402e0 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Mon, 6 Nov 2023 18:37:11 +0300 Subject: dont try to understand it, feel it --- pkg/classes/dataTables.go | 232 ---------------------------------------------- 1 file changed, 232 deletions(-) delete mode 100644 pkg/classes/dataTables.go (limited to 'pkg/classes/dataTables.go') diff --git a/pkg/classes/dataTables.go b/pkg/classes/dataTables.go deleted file mode 100644 index c17e5f6..0000000 --- a/pkg/classes/dataTables.go +++ /dev/null @@ -1,232 +0,0 @@ -package classes - -import ( - "fmt" - - "github.com/pektezol/bitreader" -) - -type DataTables struct { - Size int32 - SendTable []SendTable - ServerClassInfo []ServerClassInfo -} - -type SendTable struct { - NeedsDecoder bool - NetTableName string - NumOfProps int16 - Props []prop -} - -type ServerClassInfo struct { - ClassId uint16 - ClassName string - DataTableName string -} - -type prop struct { - SendPropType sendPropType - SendPropName string - SendPropFlags uint32 - Priority uint8 - ExcludeDtName string - LowValue float32 - HighValue float32 - NumBits int32 - NumElements int32 -} - -func (dataTables *DataTables) ParseDataTables(reader *bitreader.Reader) { - dataTables.Size = int32(reader.TryReadSInt32()) - dataTableReader := bitreader.NewReaderFromBytes(reader.TryReadBytesToSlice(uint64(dataTables.Size)), true) - count := 0 - for dataTableReader.TryReadBool() { - count++ - dataTables.SendTable = append(dataTables.SendTable, ParseSendTable(dataTableReader)) - } - numOfClasses := dataTableReader.TryReadBits(16) - for count = 0; count < int(numOfClasses); count++ { - dataTables.ServerClassInfo = append(dataTables.ServerClassInfo, ParseServerClassInfo(dataTableReader, count, int(numOfClasses))) - } -} - -func ParseSendTable(reader *bitreader.Reader) SendTable { - sendTable := SendTable{ - NeedsDecoder: reader.TryReadBool(), - NetTableName: reader.TryReadString(), - NumOfProps: int16(reader.TryReadBits(10)), - } - if sendTable.NumOfProps < 0 { - return sendTable - } - for count := 0; count < int(sendTable.NumOfProps); count++ { - propType := int8(reader.TryReadBits(5)) - if propType >= int8(7) { - return sendTable - } - prop := prop{ - SendPropType: sendPropType(propType), - SendPropName: reader.TryReadString(), - SendPropFlags: uint32(reader.TryReadBits(19)), - Priority: reader.TryReadUInt8(), - } - if propType == int8(ESendPropTypeDataTable) || checkBit(prop.SendPropFlags, 6) { - prop.ExcludeDtName = reader.TryReadString() - } else { - switch propType { - case int8(ESendPropTypeString), int8(ESendPropTypeInt), int8(ESendPropTypeFloat), int8(ESendPropTypeVector3), int8(ESendPropTypeVector2): - prop.LowValue = reader.TryReadFloat32() - prop.HighValue = reader.TryReadFloat32() - prop.NumBits = int32(reader.TryReadBits(7)) - case int8(ESendPropTypeArray): - prop.NumElements = int32(reader.TryReadBits(10)) - default: - return sendTable - } - } - sendTable.Props = append(sendTable.Props, prop) - } - return sendTable -} - -func ParseServerClassInfo(reader *bitreader.Reader, count int, numOfClasses int) ServerClassInfo { - serverClassInfo := ServerClassInfo{ - ClassId: reader.TryReadUInt16(), - ClassName: reader.TryReadString(), - DataTableName: reader.TryReadString(), - } - return serverClassInfo -} - -// func serverClassBits(numOfClasses int) int { -// return highestBitIndex(uint(numOfClasses)) + 1 -// } - -// func highestBitIndex(i uint) int { -// var j int -// for j = 31; j >= 0 && (i&(1<