From 81f365e99636104ff81151370048a51e8ae8027a Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Sat, 16 Sep 2023 20:39:02 +0300 Subject: feat: parsing sar custom data (#4) --- pkg/messages/types/netDisconnect.go | 2 +- pkg/messages/types/netFile.go | 2 +- pkg/messages/types/netNop.go | 2 +- pkg/messages/types/netSetConVar.go | 2 +- pkg/messages/types/netSignOnState.go | 6 +++--- pkg/messages/types/netSplitScreenUser.go | 2 +- pkg/messages/types/netStringCmd.go | 2 +- pkg/messages/types/netTick.go | 2 +- pkg/messages/types/svcBspDecal.go | 8 ++++---- pkg/messages/types/svcClassInfo.go | 4 ++-- pkg/messages/types/svcCmdKeyValues.go | 4 ++-- pkg/messages/types/svcCreateStringTable.go | 6 +++--- pkg/messages/types/svcCrosshairAngle.go | 2 +- pkg/messages/types/svcEntityMessage.go | 4 ++-- pkg/messages/types/svcFixAngle.go | 2 +- pkg/messages/types/svcGameEvent.go | 4 ++-- pkg/messages/types/svcGameEventList.go | 4 ++-- pkg/messages/types/svcGetCvarValue.go | 4 ++-- pkg/messages/types/svcMenu.go | 4 ++-- pkg/messages/types/svcPacketEntities.go | 13 ++++++++++--- pkg/messages/types/svcPaintmapData.go | 4 ++-- pkg/messages/types/svcPrefetch.go | 2 +- pkg/messages/types/svcPrint.go | 2 +- pkg/messages/types/svcSendTable.go | 2 +- pkg/messages/types/svcServerInfo.go | 2 +- pkg/messages/types/svcSetPause.go | 2 +- pkg/messages/types/svcSetView.go | 2 +- pkg/messages/types/svcSounds.go | 4 ++-- pkg/messages/types/svcSplitScreen.go | 4 ++-- pkg/messages/types/svcTempEntities.go | 4 ++-- pkg/messages/types/svcUpdateStringTable.go | 4 ++-- pkg/messages/types/svcUserMessage.go | 4 ++-- pkg/messages/types/svcVoiceData.go | 4 ++-- pkg/messages/types/svcVoiceInit.go | 2 +- 34 files changed, 64 insertions(+), 57 deletions(-) (limited to 'pkg/messages/types') diff --git a/pkg/messages/types/netDisconnect.go b/pkg/messages/types/netDisconnect.go index 69d4a67..3ecf8e1 100644 --- a/pkg/messages/types/netDisconnect.go +++ b/pkg/messages/types/netDisconnect.go @@ -6,7 +6,7 @@ type NetDisconnect struct { Text string } -func ParseNetDisconnect(reader *bitreader.ReaderType) NetDisconnect { +func ParseNetDisconnect(reader *bitreader.Reader) NetDisconnect { return NetDisconnect{ Text: reader.TryReadString(), } diff --git a/pkg/messages/types/netFile.go b/pkg/messages/types/netFile.go index a41a0cf..328900c 100644 --- a/pkg/messages/types/netFile.go +++ b/pkg/messages/types/netFile.go @@ -8,7 +8,7 @@ type NetFile struct { FileRequested bool } -func ParseNetFile(reader *bitreader.ReaderType) NetFile { +func ParseNetFile(reader *bitreader.Reader) NetFile { return NetFile{ TransferId: int32(reader.TryReadBits(32)), FileName: reader.TryReadString(), diff --git a/pkg/messages/types/netNop.go b/pkg/messages/types/netNop.go index 33f8e25..f942786 100644 --- a/pkg/messages/types/netNop.go +++ b/pkg/messages/types/netNop.go @@ -4,6 +4,6 @@ import "github.com/pektezol/bitreader" type NetNop struct{} -func ParseNetNop(reader *bitreader.ReaderType) NetNop { +func ParseNetNop(reader *bitreader.Reader) NetNop { return NetNop{} } diff --git a/pkg/messages/types/netSetConVar.go b/pkg/messages/types/netSetConVar.go index 08042ae..f04f564 100644 --- a/pkg/messages/types/netSetConVar.go +++ b/pkg/messages/types/netSetConVar.go @@ -12,7 +12,7 @@ type conVar struct { Value string } -func ParseNetSetConVar(reader *bitreader.ReaderType) NetSetConVar { +func ParseNetSetConVar(reader *bitreader.Reader) NetSetConVar { length := reader.TryReadBits(8) convars := []conVar{} for count := 0; count < int(length); count++ { diff --git a/pkg/messages/types/netSignOnState.go b/pkg/messages/types/netSignOnState.go index 4609ff2..277a6ee 100644 --- a/pkg/messages/types/netSignOnState.go +++ b/pkg/messages/types/netSignOnState.go @@ -12,15 +12,15 @@ type NetSignOnState struct { MapName string } -func ParseNetSignOnState(reader *bitreader.ReaderType) NetSignOnState { +func ParseNetSignOnState(reader *bitreader.Reader) NetSignOnState { netSignOnState := NetSignOnState{ SignOnState: int8(reader.TryReadBits(8)), SpawnCount: int32(reader.TryReadBits(32)), NumServerPlayers: int32(reader.TryReadBits(32)), IdsLength: int32(reader.TryReadBits(32)), } - netSignOnState.PlayersNetworksIds = reader.TryReadBytesToSlice(int(netSignOnState.IdsLength)) + netSignOnState.PlayersNetworksIds = reader.TryReadBytesToSlice(uint64(netSignOnState.IdsLength)) netSignOnState.MapNameLength = int32(reader.TryReadBits(32)) - netSignOnState.MapName = reader.TryReadStringLen(int(netSignOnState.MapNameLength)) + netSignOnState.MapName = reader.TryReadStringLength(uint64(netSignOnState.MapNameLength)) return netSignOnState } diff --git a/pkg/messages/types/netSplitScreenUser.go b/pkg/messages/types/netSplitScreenUser.go index 65e85f3..9e4caa8 100644 --- a/pkg/messages/types/netSplitScreenUser.go +++ b/pkg/messages/types/netSplitScreenUser.go @@ -6,7 +6,7 @@ type NetSplitScreenUser struct { Unknown bool } -func ParseNetSplitScreenUser(reader *bitreader.ReaderType) NetSplitScreenUser { +func ParseNetSplitScreenUser(reader *bitreader.Reader) NetSplitScreenUser { return NetSplitScreenUser{ Unknown: reader.TryReadBool(), } diff --git a/pkg/messages/types/netStringCmd.go b/pkg/messages/types/netStringCmd.go index 158658e..da5a75b 100644 --- a/pkg/messages/types/netStringCmd.go +++ b/pkg/messages/types/netStringCmd.go @@ -6,7 +6,7 @@ type NetStringCmd struct { Command string } -func ParseNetStringCmd(reader *bitreader.ReaderType) NetStringCmd { +func ParseNetStringCmd(reader *bitreader.Reader) NetStringCmd { return NetStringCmd{ Command: reader.TryReadString(), } diff --git a/pkg/messages/types/netTick.go b/pkg/messages/types/netTick.go index e14f259..bd3464a 100644 --- a/pkg/messages/types/netTick.go +++ b/pkg/messages/types/netTick.go @@ -8,7 +8,7 @@ type NetTick struct { HostFrameTimeStdDeviation int16 } -func ParseNetTick(reader *bitreader.ReaderType) NetTick { +func ParseNetTick(reader *bitreader.Reader) NetTick { return NetTick{ Tick: int32(reader.TryReadBits(32)), HostFrameTime: int16(reader.TryReadBits(16) / 10e5), diff --git a/pkg/messages/types/svcBspDecal.go b/pkg/messages/types/svcBspDecal.go index 484497f..dda81dd 100644 --- a/pkg/messages/types/svcBspDecal.go +++ b/pkg/messages/types/svcBspDecal.go @@ -17,7 +17,7 @@ type vectorCoord struct { Valid bool } -func ParseSvcBspDecal(reader *bitreader.ReaderType) SvcBspDecal { +func ParseSvcBspDecal(reader *bitreader.Reader) SvcBspDecal { svcBspDecal := SvcBspDecal{ Pos: readVectorCoords(reader), DecalTextureIndex: int16(reader.TryReadBits(9)), @@ -30,7 +30,7 @@ func ParseSvcBspDecal(reader *bitreader.ReaderType) SvcBspDecal { return svcBspDecal } -func readVectorCoords(reader *bitreader.ReaderType) []vectorCoord { +func readVectorCoords(reader *bitreader.Reader) []vectorCoord { const COORD_INTEGER_BITS uint8 = 14 const COORD_FRACTIONAL_BITS uint8 = 5 const COORD_DENOMINATOR uint8 = 1 << COORD_FRACTIONAL_BITS @@ -42,10 +42,10 @@ func readVectorCoords(reader *bitreader.ReaderType) []vectorCoord { if integer != 0 || fraction != 0 { sign := reader.TryReadBits(1) if integer != 0 { - integer = reader.TryReadBits(int(COORD_INTEGER_BITS)) + 1 + integer = reader.TryReadBits(uint64(COORD_INTEGER_BITS)) + 1 } if fraction != 0 { - fraction = reader.TryReadBits(int(COORD_FRACTIONAL_BITS)) + fraction = reader.TryReadBits(uint64(COORD_FRACTIONAL_BITS)) } value = float32(integer) + float32(fraction)*COORD_RESOLUTION if sign != 0 { diff --git a/pkg/messages/types/svcClassInfo.go b/pkg/messages/types/svcClassInfo.go index 9f367d3..27862bf 100644 --- a/pkg/messages/types/svcClassInfo.go +++ b/pkg/messages/types/svcClassInfo.go @@ -19,7 +19,7 @@ type serverClass struct { DataTableName string } -func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { +func ParseSvcClassInfo(reader *bitreader.Reader) SvcClassInfo { svcClassInfo := SvcClassInfo{ Length: int16(reader.TryReadBits(16)), CreateOnClient: reader.TryReadBool(), @@ -29,7 +29,7 @@ func ParseSvcClassInfo(reader *bitreader.ReaderType) SvcClassInfo { for count := 0; count < int(svcClassInfo.Length); count++ { fmt.Println(classes) classes = append(classes, serverClass{ - ClassId: int16(reader.TryReadBits(int(math.Log2(float64(svcClassInfo.Length)) + 1))), + ClassId: int16(reader.TryReadBits(uint64(math.Log2(float64(svcClassInfo.Length)) + 1))), ClassName: reader.TryReadString(), DataTableName: reader.TryReadString(), }) diff --git a/pkg/messages/types/svcCmdKeyValues.go b/pkg/messages/types/svcCmdKeyValues.go index 1c4d819..35a8a8d 100644 --- a/pkg/messages/types/svcCmdKeyValues.go +++ b/pkg/messages/types/svcCmdKeyValues.go @@ -7,10 +7,10 @@ type SvcCmdKeyValues struct { Data []byte } -func ParseSvcCmdKeyValues(reader *bitreader.ReaderType) SvcCmdKeyValues { +func ParseSvcCmdKeyValues(reader *bitreader.Reader) SvcCmdKeyValues { svcCmdKeyValues := SvcCmdKeyValues{ Length: int32(reader.TryReadBits(32)), } - svcCmdKeyValues.Data = reader.TryReadBytesToSlice(int(svcCmdKeyValues.Length)) + svcCmdKeyValues.Data = reader.TryReadBytesToSlice(uint64(svcCmdKeyValues.Length)) return svcCmdKeyValues } diff --git a/pkg/messages/types/svcCreateStringTable.go b/pkg/messages/types/svcCreateStringTable.go index ed9e477..3c15e5c 100644 --- a/pkg/messages/types/svcCreateStringTable.go +++ b/pkg/messages/types/svcCreateStringTable.go @@ -18,12 +18,12 @@ type SvcCreateStringTable struct { StringData int } -func ParseSvcCreateStringTable(reader *bitreader.ReaderType) SvcCreateStringTable { +func ParseSvcCreateStringTable(reader *bitreader.Reader) SvcCreateStringTable { svcCreateStringTable := SvcCreateStringTable{ Name: reader.TryReadString(), MaxEntries: int16(reader.TryReadBits(16)), } - svcCreateStringTable.NumEntries = int8(reader.TryReadBits(int(math.Log2(float64(svcCreateStringTable.MaxEntries))) + 1)) + svcCreateStringTable.NumEntries = int8(reader.TryReadBits(uint64(math.Log2(float64(svcCreateStringTable.MaxEntries))) + 1)) svcCreateStringTable.Length = int32(reader.TryReadBits(20)) svcCreateStringTable.UserDataFixedSize = reader.TryReadBool() if svcCreateStringTable.UserDataFixedSize { @@ -31,6 +31,6 @@ func ParseSvcCreateStringTable(reader *bitreader.ReaderType) SvcCreateStringTabl svcCreateStringTable.UserDataSizeBits = int8(reader.TryReadBits(4)) } svcCreateStringTable.Flags = int8(reader.TryReadBits(2)) - reader.SkipBits(int(svcCreateStringTable.Length)) // TODO: StringTable parsing + reader.SkipBits(uint64(svcCreateStringTable.Length)) // TODO: StringTable parsing return svcCreateStringTable } diff --git a/pkg/messages/types/svcCrosshairAngle.go b/pkg/messages/types/svcCrosshairAngle.go index cf18212..e8424e1 100644 --- a/pkg/messages/types/svcCrosshairAngle.go +++ b/pkg/messages/types/svcCrosshairAngle.go @@ -6,7 +6,7 @@ type SvcCrosshairAngle struct { Angle []int16 } -func ParseSvcCrosshairAngle(reader *bitreader.ReaderType) SvcCrosshairAngle { +func ParseSvcCrosshairAngle(reader *bitreader.Reader) SvcCrosshairAngle { return SvcCrosshairAngle{ Angle: []int16{int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16))}, } diff --git a/pkg/messages/types/svcEntityMessage.go b/pkg/messages/types/svcEntityMessage.go index 9726ced..8d5c4aa 100644 --- a/pkg/messages/types/svcEntityMessage.go +++ b/pkg/messages/types/svcEntityMessage.go @@ -9,12 +9,12 @@ type SvcEntityMessage struct { Data []byte } -func ParseSvcEntityMessage(reader *bitreader.ReaderType) SvcEntityMessage { +func ParseSvcEntityMessage(reader *bitreader.Reader) SvcEntityMessage { svcEntityMessage := SvcEntityMessage{ EntityIndex: int16(reader.TryReadBits(11)), ClassId: int16(reader.TryReadBits(9)), Length: int16(reader.TryReadBits(11)), } - svcEntityMessage.Data = reader.TryReadBitsToSlice(int(svcEntityMessage.Length)) + svcEntityMessage.Data = reader.TryReadBitsToSlice(uint64(svcEntityMessage.Length)) return svcEntityMessage } diff --git a/pkg/messages/types/svcFixAngle.go b/pkg/messages/types/svcFixAngle.go index 56acf04..675c50e 100644 --- a/pkg/messages/types/svcFixAngle.go +++ b/pkg/messages/types/svcFixAngle.go @@ -7,7 +7,7 @@ type SvcFixAngle struct { Angle []int16 } -func ParseSvcFixAngle(reader *bitreader.ReaderType) SvcFixAngle { +func ParseSvcFixAngle(reader *bitreader.Reader) SvcFixAngle { return SvcFixAngle{ Relative: reader.TryReadBool(), Angle: []int16{int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16)), int16(reader.TryReadBits(16))}, diff --git a/pkg/messages/types/svcGameEvent.go b/pkg/messages/types/svcGameEvent.go index 6ee4d01..44d6dd5 100644 --- a/pkg/messages/types/svcGameEvent.go +++ b/pkg/messages/types/svcGameEvent.go @@ -7,10 +7,10 @@ type SvcGameEvent struct { Data []byte // TODO: GameEvent[] } -func ParseSvcGameEvent(reader *bitreader.ReaderType) SvcGameEvent { +func ParseSvcGameEvent(reader *bitreader.Reader) SvcGameEvent { svcGameEvent := SvcGameEvent{ Length: int16(reader.TryReadBits(11)), } - svcGameEvent.Data = reader.TryReadBitsToSlice(int(svcGameEvent.Length)) + svcGameEvent.Data = reader.TryReadBitsToSlice(uint64(svcGameEvent.Length)) return svcGameEvent } diff --git a/pkg/messages/types/svcGameEventList.go b/pkg/messages/types/svcGameEventList.go index b99ce28..c6eb896 100644 --- a/pkg/messages/types/svcGameEventList.go +++ b/pkg/messages/types/svcGameEventList.go @@ -11,11 +11,11 @@ type SvcGameEventList struct { type gameEventDescriptor struct { } -func ParseSvcGameEventList(reader *bitreader.ReaderType) SvcGameEventList { +func ParseSvcGameEventList(reader *bitreader.Reader) SvcGameEventList { svcGameEventList := SvcGameEventList{ Events: int16(reader.TryReadBits(9)), Length: int32(reader.TryReadBits(20)), } - reader.TryReadBitsToSlice(int(svcGameEventList.Length)) + reader.TryReadBitsToSlice(uint64(svcGameEventList.Length)) return svcGameEventList } diff --git a/pkg/messages/types/svcGetCvarValue.go b/pkg/messages/types/svcGetCvarValue.go index aef5c8e..0598722 100644 --- a/pkg/messages/types/svcGetCvarValue.go +++ b/pkg/messages/types/svcGetCvarValue.go @@ -7,9 +7,9 @@ type SvcGetCvarValue struct { CvarName string } -func ParseSvcGetCvarValue(reader *bitreader.ReaderType) SvcGetCvarValue { +func ParseSvcGetCvarValue(reader *bitreader.Reader) SvcGetCvarValue { svcGetCvarValue := SvcGetCvarValue{ - Cookie: reader.TryReadStringLen(4), + Cookie: reader.TryReadStringLength(4), CvarName: reader.TryReadString(), } return svcGetCvarValue diff --git a/pkg/messages/types/svcMenu.go b/pkg/messages/types/svcMenu.go index d89f52c..9958e99 100644 --- a/pkg/messages/types/svcMenu.go +++ b/pkg/messages/types/svcMenu.go @@ -8,11 +8,11 @@ type SvcMenu struct { Data []byte } -func ParseSvcMenu(reader *bitreader.ReaderType) SvcMenu { +func ParseSvcMenu(reader *bitreader.Reader) SvcMenu { svcMenu := SvcMenu{ MenuType: int16(reader.TryReadBits(16)), Length: int32(reader.TryReadBits(32)), } - svcMenu.Data = reader.TryReadBitsToSlice(int(svcMenu.Length)) + svcMenu.Data = reader.TryReadBitsToSlice(uint64(svcMenu.Length)) return svcMenu } diff --git a/pkg/messages/types/svcPacketEntities.go b/pkg/messages/types/svcPacketEntities.go index b1c23e5..54e4a2a 100644 --- a/pkg/messages/types/svcPacketEntities.go +++ b/pkg/messages/types/svcPacketEntities.go @@ -1,6 +1,8 @@ package messages -import "github.com/pektezol/bitreader" +import ( + "github.com/pektezol/bitreader" +) type SvcPacketEntities struct { MaxEntries int16 @@ -13,18 +15,23 @@ type SvcPacketEntities struct { Data []byte } -func ParseSvcPacketEntities(reader *bitreader.ReaderType) SvcPacketEntities { +func ParseSvcPacketEntities(reader *bitreader.Reader) SvcPacketEntities { svcPacketEntities := SvcPacketEntities{ MaxEntries: int16(reader.TryReadBits(11)), IsDelta: reader.TryReadBool(), } if svcPacketEntities.IsDelta { svcPacketEntities.DeltaFrom = int32(reader.TryReadBits(32)) + } else { + svcPacketEntities.DeltaFrom = -1 } svcPacketEntities.BaseLine = reader.TryReadBool() svcPacketEntities.UpdatedEntries = int16(reader.TryReadBits(11)) svcPacketEntities.Length = int32(reader.TryReadBits(20)) svcPacketEntities.UpdatedBaseline = reader.TryReadBool() - svcPacketEntities.Data = reader.TryReadBitsToSlice(int(svcPacketEntities.Length)) + svcPacketEntities.Data = reader.TryReadBitsToSlice(uint64(svcPacketEntities.Length)) //, dataReader = reader.ForkAndSkip(int(svcPacketEntities.Length)) + // for count := 0; count < int(svcPacketEntities.UpdatedEntries); count++ { + // dataReader.TryReadBool() + // } return svcPacketEntities } diff --git a/pkg/messages/types/svcPaintmapData.go b/pkg/messages/types/svcPaintmapData.go index 6b041da..41ef515 100644 --- a/pkg/messages/types/svcPaintmapData.go +++ b/pkg/messages/types/svcPaintmapData.go @@ -7,10 +7,10 @@ type SvcPaintmapData struct { Data []byte } -func ParseSvcPaintmapData(reader *bitreader.ReaderType) SvcPaintmapData { +func ParseSvcPaintmapData(reader *bitreader.Reader) SvcPaintmapData { svcPaintmapData := SvcPaintmapData{ Length: int32(reader.TryReadBits(32)), } - svcPaintmapData.Data = reader.TryReadBitsToSlice(int(svcPaintmapData.Length)) + svcPaintmapData.Data = reader.TryReadBitsToSlice(uint64(svcPaintmapData.Length)) return svcPaintmapData } diff --git a/pkg/messages/types/svcPrefetch.go b/pkg/messages/types/svcPrefetch.go index 549f926..50d01e9 100644 --- a/pkg/messages/types/svcPrefetch.go +++ b/pkg/messages/types/svcPrefetch.go @@ -6,7 +6,7 @@ type SvcPrefetch struct { SoundIndex int16 } -func ParseSvcPrefetch(reader *bitreader.ReaderType) SvcPrefetch { +func ParseSvcPrefetch(reader *bitreader.Reader) SvcPrefetch { return SvcPrefetch{ SoundIndex: int16(reader.TryReadBits(13)), } diff --git a/pkg/messages/types/svcPrint.go b/pkg/messages/types/svcPrint.go index 8aff927..f31d046 100644 --- a/pkg/messages/types/svcPrint.go +++ b/pkg/messages/types/svcPrint.go @@ -6,7 +6,7 @@ type SvcPrint struct { Message string } -func ParseSvcPrint(reader *bitreader.ReaderType) SvcPrint { +func ParseSvcPrint(reader *bitreader.Reader) SvcPrint { return SvcPrint{ Message: reader.TryReadString(), } diff --git a/pkg/messages/types/svcSendTable.go b/pkg/messages/types/svcSendTable.go index ae8960b..9eb47fc 100644 --- a/pkg/messages/types/svcSendTable.go +++ b/pkg/messages/types/svcSendTable.go @@ -8,7 +8,7 @@ type SvcSendTable struct { Props int32 } -func ParseSvcSendTable(reader *bitreader.ReaderType) SvcSendTable { +func ParseSvcSendTable(reader *bitreader.Reader) SvcSendTable { return SvcSendTable{ NeedsDecoder: int8(reader.TryReadBits(8)), Length: int8(reader.TryReadBits(8)), diff --git a/pkg/messages/types/svcServerInfo.go b/pkg/messages/types/svcServerInfo.go index b8bb308..c699eca 100644 --- a/pkg/messages/types/svcServerInfo.go +++ b/pkg/messages/types/svcServerInfo.go @@ -21,7 +21,7 @@ type SvcServerInfo struct { HostName string } -func ParseSvcServerInfo(reader *bitreader.ReaderType) SvcServerInfo { +func ParseSvcServerInfo(reader *bitreader.Reader) SvcServerInfo { return SvcServerInfo{ Protocol: int16(reader.TryReadBits(16)), ServerCount: int32(reader.TryReadBits(32)), diff --git a/pkg/messages/types/svcSetPause.go b/pkg/messages/types/svcSetPause.go index 94303b7..551a4d3 100644 --- a/pkg/messages/types/svcSetPause.go +++ b/pkg/messages/types/svcSetPause.go @@ -6,7 +6,7 @@ type SvcSetPause struct { Paused bool } -func ParseSvcSetPause(reader *bitreader.ReaderType) SvcSetPause { +func ParseSvcSetPause(reader *bitreader.Reader) SvcSetPause { return SvcSetPause{ Paused: reader.TryReadBool(), } diff --git a/pkg/messages/types/svcSetView.go b/pkg/messages/types/svcSetView.go index 70d1e2b..266a539 100644 --- a/pkg/messages/types/svcSetView.go +++ b/pkg/messages/types/svcSetView.go @@ -6,7 +6,7 @@ type SvcSetView struct { EntityIndex int16 } -func ParseSvcSetView(reader *bitreader.ReaderType) SvcSetView { +func ParseSvcSetView(reader *bitreader.Reader) SvcSetView { return SvcSetView{ EntityIndex: int16(reader.TryReadBits(11)), } diff --git a/pkg/messages/types/svcSounds.go b/pkg/messages/types/svcSounds.go index e87d584..22d4a66 100644 --- a/pkg/messages/types/svcSounds.go +++ b/pkg/messages/types/svcSounds.go @@ -9,7 +9,7 @@ type SvcSounds struct { Data []byte } -func ParseSvcSounds(reader *bitreader.ReaderType) SvcSounds { +func ParseSvcSounds(reader *bitreader.Reader) SvcSounds { svcSounds := SvcSounds{ ReliableSound: reader.TryReadBool(), } @@ -20,6 +20,6 @@ func ParseSvcSounds(reader *bitreader.ReaderType) SvcSounds { svcSounds.Size = int8(reader.TryReadBits(8)) svcSounds.Length = int16(reader.TryReadBits(16)) } - svcSounds.Data = reader.TryReadBitsToSlice(int(svcSounds.Length)) + svcSounds.Data = reader.TryReadBitsToSlice(uint64(svcSounds.Length)) return svcSounds } diff --git a/pkg/messages/types/svcSplitScreen.go b/pkg/messages/types/svcSplitScreen.go index 9c808bc..3ba6ee8 100644 --- a/pkg/messages/types/svcSplitScreen.go +++ b/pkg/messages/types/svcSplitScreen.go @@ -8,11 +8,11 @@ type SvcSplitScreen struct { Data []byte } -func ParseSvcSplitScreen(reader *bitreader.ReaderType) SvcSplitScreen { +func ParseSvcSplitScreen(reader *bitreader.Reader) SvcSplitScreen { svcSplitScreen := SvcSplitScreen{ Unk: reader.TryReadBool(), Length: int16(reader.TryReadBits(11)), } - svcSplitScreen.Data = reader.TryReadBitsToSlice(int(svcSplitScreen.Length)) + svcSplitScreen.Data = reader.TryReadBitsToSlice(uint64(svcSplitScreen.Length)) return svcSplitScreen } diff --git a/pkg/messages/types/svcTempEntities.go b/pkg/messages/types/svcTempEntities.go index d22423d..ca4b995 100644 --- a/pkg/messages/types/svcTempEntities.go +++ b/pkg/messages/types/svcTempEntities.go @@ -8,11 +8,11 @@ type SvcTempEntities struct { Data []byte } -func ParseSvcTempEntities(reader *bitreader.ReaderType) SvcTempEntities { +func ParseSvcTempEntities(reader *bitreader.Reader) SvcTempEntities { svcTempEntities := SvcTempEntities{ NumEntries: int8(reader.TryReadBits(8)), Length: int32(reader.TryReadBits(17)), } - svcTempEntities.Data = reader.TryReadBitsToSlice(int(svcTempEntities.Length)) + svcTempEntities.Data = reader.TryReadBitsToSlice(uint64(svcTempEntities.Length)) return svcTempEntities } diff --git a/pkg/messages/types/svcUpdateStringTable.go b/pkg/messages/types/svcUpdateStringTable.go index 2840482..c606141 100644 --- a/pkg/messages/types/svcUpdateStringTable.go +++ b/pkg/messages/types/svcUpdateStringTable.go @@ -9,7 +9,7 @@ type SvcUpdateStringTable struct { Data []byte } -func ParseSvcUpdateStringTable(reader *bitreader.ReaderType) SvcUpdateStringTable { +func ParseSvcUpdateStringTable(reader *bitreader.Reader) SvcUpdateStringTable { svcUpdateStringTable := SvcUpdateStringTable{ TableId: int8(reader.TryReadBits(5)), } @@ -17,6 +17,6 @@ func ParseSvcUpdateStringTable(reader *bitreader.ReaderType) SvcUpdateStringTabl svcUpdateStringTable.NumChangedEntries = int16(reader.TryReadBits(16)) } svcUpdateStringTable.Length = int32(reader.TryReadBits(20)) - svcUpdateStringTable.Data = reader.TryReadBitsToSlice(int(svcUpdateStringTable.Length)) + svcUpdateStringTable.Data = reader.TryReadBitsToSlice(uint64(svcUpdateStringTable.Length)) return svcUpdateStringTable } diff --git a/pkg/messages/types/svcUserMessage.go b/pkg/messages/types/svcUserMessage.go index b53c7c0..fb8be20 100644 --- a/pkg/messages/types/svcUserMessage.go +++ b/pkg/messages/types/svcUserMessage.go @@ -8,11 +8,11 @@ type SvcUserMessage struct { Data []byte } -func ParseSvcUserMessage(reader *bitreader.ReaderType) SvcUserMessage { +func ParseSvcUserMessage(reader *bitreader.Reader) SvcUserMessage { svcUserMessage := SvcUserMessage{ MsgType: int8(reader.TryReadBits(8)), Length: int16(reader.TryReadBits(12)), } - svcUserMessage.Data = reader.TryReadBitsToSlice(int(svcUserMessage.Length)) + svcUserMessage.Data = reader.TryReadBitsToSlice(uint64(svcUserMessage.Length)) return svcUserMessage } diff --git a/pkg/messages/types/svcVoiceData.go b/pkg/messages/types/svcVoiceData.go index b6c81d4..9609d80 100644 --- a/pkg/messages/types/svcVoiceData.go +++ b/pkg/messages/types/svcVoiceData.go @@ -9,12 +9,12 @@ type SvcVoiceData struct { Data []byte } -func ParseSvcVoiceData(reader *bitreader.ReaderType) SvcVoiceData { +func ParseSvcVoiceData(reader *bitreader.Reader) SvcVoiceData { svcVoiceData := SvcVoiceData{ Client: int8(reader.TryReadBits(8)), Proximity: int8(reader.TryReadBits(8)), Length: int16(reader.TryReadBits(16)), } - svcVoiceData.Data = reader.TryReadBitsToSlice(int(svcVoiceData.Length)) + svcVoiceData.Data = reader.TryReadBitsToSlice(uint64(svcVoiceData.Length)) return svcVoiceData } diff --git a/pkg/messages/types/svcVoiceInit.go b/pkg/messages/types/svcVoiceInit.go index 4c95aab..afabfc9 100644 --- a/pkg/messages/types/svcVoiceInit.go +++ b/pkg/messages/types/svcVoiceInit.go @@ -8,7 +8,7 @@ type SvcVoiceInit struct { Unk float32 } -func ParseSvcVoiceInit(reader *bitreader.ReaderType) SvcVoiceInit { +func ParseSvcVoiceInit(reader *bitreader.Reader) SvcVoiceInit { svcVoiceInit := SvcVoiceInit{ Codec: reader.TryReadString(), Quality: uint8(reader.TryReadBits(8)), -- cgit v1.2.3