From 892fb8f547ce4a31901fb029a762331b1188efb7 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Fri, 11 Nov 2022 23:19:01 +0300 Subject: net/svc messages finally getting parsed correctly --- packets/packet.go | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) (limited to 'packets/packet.go') diff --git a/packets/packet.go b/packets/packet.go index cc94e62..8f4a262 100644 --- a/packets/packet.go +++ b/packets/packet.go @@ -14,25 +14,26 @@ func ParsePacket(reader *bitreader.ReaderType) (status int) { messageType := reader.TryReadInt8() messageTick := reader.TryReadInt32() messageSlot := reader.TryReadInt8() + _ = messageSlot switch messageType { - case 1: // TODO: SignOn - Data + case 1: signOn := SignOn{ PacketInfo: classes.ParseCmdInfo(reader, MSSC), InSequence: int32(reader.TryReadInt32()), OutSequence: int32(reader.TryReadInt32()), - Size: int32(reader.TryReadInt32()), } - signOn.Data = messages.ParseMessage(reader.TryReadBytesToSlice(int(signOn.Size))) - fmt.Printf("[%d] (%d) {%d} SignOn: %v\n", messageTick, messageType, messageSlot, signOn) + size := int(reader.TryReadInt32()) + signOn.Data = messages.ParseMessage(reader.TryReadBytesToSlice(size)) + // fmt.Printf("[%d] (%d) {%d} SignOn: %v\n", messageTick, messageType, messageSlot, signOn) return 1 - case 2: // TODO: Packet - Data + case 2: packet := Packet{ PacketInfo: classes.ParseCmdInfo(reader, MSSC), InSequence: int32(reader.TryReadInt32()), OutSequence: int32(reader.TryReadInt32()), - Size: int32(reader.TryReadInt32()), } - packet.Data = messages.ParseMessage(reader.TryReadBytesToSlice(int(packet.Size))) + size := int(reader.TryReadInt32()) + packet.Data = messages.ParseMessage(reader.TryReadBytesToSlice(size)) // fmt.Printf("[%d] (%d) Packet: %v\n", messageTick, messageType, packet) return 2 case 3: @@ -40,26 +41,25 @@ func ParsePacket(reader *bitreader.ReaderType) (status int) { fmt.Printf("[%d] (%d) SyncTick: %v\n", messageTick, messageType, syncTick) return 3 case 4: - consoleCmd := ConsoleCmd{ - Size: int32(reader.TryReadInt32()), - } - consoleCmd.Data = reader.TryReadStringLen(int(consoleCmd.Size)) + size := int(reader.TryReadInt32()) + var consoleCmd ConsoleCmd + consoleCmd.Data = reader.TryReadStringLen(size) // fmt.Printf("[%d] (%d) ConsoleCmd: %s\n", messageTick, messageType, consoleCmd.Data) return 4 case 5: // TODO: UserCmd - Buttons userCmd := UserCmd{ - Cmd: int32(reader.TryReadInt32()), - Size: int32(reader.TryReadInt32()), + Cmd: int32(reader.TryReadInt32()), } - userCmd.Data = classes.ParseUserCmdInfo(reader.TryReadBytesToSlice(int(userCmd.Size))) + size := int(reader.TryReadInt32()) + userCmd.Data = classes.ParseUserCmdInfo(reader.TryReadBytesToSlice(size)) // fmt.Printf("[%d] (%d) UserCmd: %v\n", messageTick, messageType, userCmd) return 5 case 6: // TODO: DataTables // datatables := DataTables{ // Size: int32(reader.TryReadInt32()), // } - val := reader.TryReadInt32() - reader.SkipBytes(int(val)) + size := int(reader.TryReadInt32()) + reader.SkipBytes(size) // datatables.Data = classes.ParseDataTable(reader.TryReadBytesToSlice(int(datatables.Size))) // fmt.Printf("[%d] (%d) DataTables: %v\n", messageTick, messageType, datatables) return 6 @@ -71,15 +71,14 @@ func ParsePacket(reader *bitreader.ReaderType) (status int) { return 7 case 8: // TODO: CustomData reader.SkipBytes(4) - val := reader.TryReadInt32() - reader.SkipBytes(int(val)) + size := int(reader.TryReadInt32()) + reader.SkipBytes(size) // fmt.Printf("[%d] (%d) CustomData: \n", messageTick, messageType) return 8 case 9: // TODO: StringTables - Data - stringTables := StringTables{ - Size: int32(reader.TryReadInt32()), - } - stringTables.Data = classes.ParseStringTable(reader.TryReadBytesToSlice(int(stringTables.Size))) + var stringTables StringTables + size := int(reader.TryReadInt32()) + stringTables.Data = classes.ParseStringTable(reader.TryReadBytesToSlice(size)) // fmt.Printf("[%d] (%d) StringTables: %v\n", messageTick, messageType, stringTables) return 9 default: -- cgit v1.2.3