From 9f5e8f230d35fffb106088b72e5fdb148905f450 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Thu, 10 Nov 2022 22:59:32 +0300 Subject: added almost all net/svc messages - currently broken --- packets/messages/types/SvcClassInfo.go | 11 ++++++-- packets/messages/types/SvcCmdKeyValues.go | 14 +++++++++ packets/messages/types/SvcCreateStringTable.go | 32 +++++++++++++++++++++ packets/messages/types/SvcCrosshairAngle.go | 17 +++++++++++ packets/messages/types/SvcEntityMessage.go | 20 +++++++++++++ packets/messages/types/SvcFixAngle.go | 21 ++++++++++++++ packets/messages/types/SvcGameEventList.go | 17 +++++++++++ packets/messages/types/SvcGetCvarValue.go | 15 ++++++++++ packets/messages/types/SvcMenu.go | 17 +++++++++++ packets/messages/types/SvcPacketEntities.go | 39 ++++++++++++++++++++++++++ packets/messages/types/SvcPaintmapData.go | 14 +++++++++ packets/messages/types/SvcPrefetch.go | 13 +++++++++ packets/messages/types/SvcPrint.go | 13 +++++++++ packets/messages/types/SvcSetView.go | 13 +++++++++ packets/messages/types/SvcSounds.go | 31 ++++++++++++++++++++ packets/messages/types/SvcSplitScreen.go | 17 +++++++++++ packets/messages/types/SvcTempEntities.go | 17 +++++++++++ packets/messages/types/SvcUpdateStringTable.go | 21 ++++++++++++++ packets/messages/types/SvcUserMessage.go | 17 +++++++++++ packets/messages/types/SvcVoiceData.go | 19 +++++++++++++ packets/messages/types/SvcVoiceInit.go | 20 +++++++++++++ 21 files changed, 395 insertions(+), 3 deletions(-) create mode 100644 packets/messages/types/SvcCmdKeyValues.go create mode 100644 packets/messages/types/SvcCreateStringTable.go create mode 100644 packets/messages/types/SvcCrosshairAngle.go create mode 100644 packets/messages/types/SvcEntityMessage.go create mode 100644 packets/messages/types/SvcFixAngle.go create mode 100644 packets/messages/types/SvcGameEventList.go create mode 100644 packets/messages/types/SvcGetCvarValue.go create mode 100644 packets/messages/types/SvcMenu.go create mode 100644 packets/messages/types/SvcPacketEntities.go create mode 100644 packets/messages/types/SvcPaintmapData.go create mode 100644 packets/messages/types/SvcPrefetch.go create mode 100644 packets/messages/types/SvcPrint.go create mode 100644 packets/messages/types/SvcSetView.go create mode 100644 packets/messages/types/SvcSounds.go create mode 100644 packets/messages/types/SvcSplitScreen.go create mode 100644 packets/messages/types/SvcTempEntities.go create mode 100644 packets/messages/types/SvcUpdateStringTable.go create mode 100644 packets/messages/types/SvcUserMessage.go create mode 100644 packets/messages/types/SvcVoiceData.go create mode 100644 packets/messages/types/SvcVoiceInit.go (limited to 'packets/messages/types') diff --git a/packets/messages/types/SvcClassInfo.go b/packets/messages/types/SvcClassInfo.go index fb9dbd8..d41723d 100644 --- a/packets/messages/types/SvcClassInfo.go +++ b/packets/messages/types/SvcClassInfo.go @@ -1,8 +1,6 @@ package types import ( - "math" - "github.com/pektezol/bitreader" ) @@ -24,7 +22,7 @@ func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { if createonclient { serverclasses := make([]ServerClass, length) for i := 0; i < int(length); i++ { - id, err := reader.ReadBits(int(math.Log2(float64(length))) + 1) + id, err := reader.ReadBits(HighestBitIndex(uint(length)) + 1) if err != nil { panic(err) } @@ -40,3 +38,10 @@ func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { ServerClasses: serverclasses, } } + +func HighestBitIndex(i uint) int { + var j int + for j = 31; j >= 0 && (i&(1<