From fa3ba150b17d0e013b080cc29c92bfb68bf6264c Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Thu, 10 Nov 2022 20:16:14 +0300 Subject: deleted reduntant length fields - improved struct append --- packets/messages/types/NetSetConVar.go | 18 ++++++++---------- packets/messages/types/NetSignOnState.go | 8 ++------ packets/messages/types/NetSplitScreenUser.go | 4 ++-- packets/messages/types/SvcClassInfo.go | 24 ++++++++++++------------ 4 files changed, 24 insertions(+), 30 deletions(-) diff --git a/packets/messages/types/NetSetConVar.go b/packets/messages/types/NetSetConVar.go index b502953..eca05e0 100644 --- a/packets/messages/types/NetSetConVar.go +++ b/packets/messages/types/NetSetConVar.go @@ -3,7 +3,6 @@ package types import "github.com/pektezol/bitreader" type NetSetConVar struct { - Length uint8 ConVars []ConVar } @@ -13,16 +12,15 @@ type ConVar struct { } func ParseNetSetConVar(reader *bitreader.ReaderType) NetSetConVar { - var convars []ConVar - netsetconvar := NetSetConVar{ - Length: reader.TryReadInt8(), - } - for i := 0; i < int(netsetconvar.Length); i++ { - convars = append(convars, ConVar{ + length := reader.TryReadInt8() + convars := make([]ConVar, length) + for i := 0; i < int(length); i++ { + convars[i] = ConVar{ Name: reader.TryReadString(), Value: reader.TryReadString(), - }) + } + } + return NetSetConVar{ + ConVars: convars, } - netsetconvar.ConVars = convars - return netsetconvar } diff --git a/packets/messages/types/NetSignOnState.go b/packets/messages/types/NetSignOnState.go index 3d02e91..a8f3add 100644 --- a/packets/messages/types/NetSignOnState.go +++ b/packets/messages/types/NetSignOnState.go @@ -1,8 +1,6 @@ package types import ( - "fmt" - "github.com/pektezol/bitreader" ) @@ -10,7 +8,6 @@ type NetSignOnState struct { SignonState int8 SpawnCount uint32 NumServerPlayers uint32 - IdsLength uint32 PlayersNetworkIds []byte MapNameLength uint32 MapName string @@ -21,10 +18,9 @@ func ParseNetSignOnState(reader *bitreader.ReaderType) NetSignOnState { SignonState: int8(reader.TryReadInt8()), SpawnCount: reader.TryReadInt32(), NumServerPlayers: reader.TryReadInt32(), - IdsLength: reader.TryReadInt32(), } - fmt.Println(netsignonstate.IdsLength) - netsignonstate.PlayersNetworkIds = reader.TryReadBytesToSlice(int(netsignonstate.IdsLength)) + length := reader.TryReadInt32() + netsignonstate.PlayersNetworkIds = reader.TryReadBytesToSlice(int(length)) netsignonstate.MapNameLength = reader.TryReadInt32() netsignonstate.MapName = reader.TryReadStringLen(int(netsignonstate.MapNameLength)) return netsignonstate diff --git a/packets/messages/types/NetSplitScreenUser.go b/packets/messages/types/NetSplitScreenUser.go index 66a7c85..d4d04b5 100644 --- a/packets/messages/types/NetSplitScreenUser.go +++ b/packets/messages/types/NetSplitScreenUser.go @@ -3,11 +3,11 @@ package types import "github.com/pektezol/bitreader" type NetSplitScreenUser struct { - Unknown bool + PlayerSlot bool } func ParseNetSplitScreenUser(reader *bitreader.ReaderType) NetSplitScreenUser { return NetSplitScreenUser{ - Unknown: reader.TryReadBool(), + PlayerSlot: reader.TryReadBool(), } } diff --git a/packets/messages/types/SvcClassInfo.go b/packets/messages/types/SvcClassInfo.go index 58e43b7..fb9dbd8 100644 --- a/packets/messages/types/SvcClassInfo.go +++ b/packets/messages/types/SvcClassInfo.go @@ -7,7 +7,6 @@ import ( ) type SvcClassInfo struct { - Length uint16 CreateOnClient bool ServerClasses []ServerClass } @@ -19,24 +18,25 @@ type ServerClass struct { } func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { + length := reader.TryReadInt16() + createonclient := reader.TryReadBool() var serverclasses []ServerClass - svcclassinfo := SvcClassInfo{ - Length: reader.TryReadInt16(), - CreateOnClient: reader.TryReadBool(), - } - if svcclassinfo.CreateOnClient { - for i := 0; i < int(svcclassinfo.Length); i++ { - id, err := reader.ReadBits(int(math.Log2(float64(svcclassinfo.Length))) + 1) + if createonclient { + serverclasses := make([]ServerClass, length) + for i := 0; i < int(length); i++ { + id, err := reader.ReadBits(int(math.Log2(float64(length))) + 1) if err != nil { panic(err) } - serverclasses = append(serverclasses, ServerClass{ + serverclasses[i] = ServerClass{ ClassId: int32(id), ClassName: reader.TryReadString(), DataTableName: reader.TryReadString(), - }) + } } } - svcclassinfo.ServerClasses = serverclasses - return svcclassinfo + return SvcClassInfo{ + CreateOnClient: createonclient, + ServerClasses: serverclasses, + } } -- cgit v1.2.3