From 2e51abad509a6663f1cc15da91a263ff7b8e1513 Mon Sep 17 00:00:00 2001 From: BiSaXa <1669855+BiSaXa@users.noreply.github.com> Date: Sat, 27 Aug 2022 21:17:06 +0300 Subject: it's a mess --- classes/userCmdInfo.go | 105 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 75 insertions(+), 30 deletions(-) (limited to 'classes/userCmdInfo.go') diff --git a/classes/userCmdInfo.go b/classes/userCmdInfo.go index 3705c8d..86b186c 100644 --- a/classes/userCmdInfo.go +++ b/classes/userCmdInfo.go @@ -1,7 +1,6 @@ package classes import ( - "fmt" "parser/utils" "github.com/potterxu/bitreader" @@ -16,53 +15,99 @@ type UserCmdInfo struct { ForwardMove float32 SideMove float32 UpMove float32 - Buttons int32 - Impulse byte - /*WeaponSelect int - WeaponSubtype int - MouseDx int16 - MouseDy int16*/ } func UserCmdInfoInit(byteArr []byte, size int) (output UserCmdInfo) { var class UserCmdInfo - fmt.Println("Size: ", size) - reader := bitreader.BitReader(byteArr) - flag, err := reader.ReadBit() - utils.CheckError(err) - fmt.Println(flag) - flag2, err := reader.ReadBit() - utils.CheckError(err) - fmt.Println(flag2) - /*if size-1 >= 4 { - class.CommandNumber = int32(utils.IntFromBytes(byteArr[:4])) + reversedByteArr := utils.ReverseByteArrayValues(byteArr, size) + reader := bitreader.BitReader(reversedByteArr) + if size-1 >= 4 { + bit, err := reader.ReadBit() + utils.CheckError(err) + if bit { + value, err := reader.ReadBits(32) + utils.CheckError(err) + class.CommandNumber = int32(value) + } else { + return class + } } if size-1 >= 8 { - class.TickCount = int32(utils.IntFromBytes(byteArr[4:8])) + bit, err := reader.ReadBit() + utils.CheckError(err) + if bit { + value, err := reader.ReadBits(32) + utils.CheckError(err) + class.TickCount = int32(value) + } else { + return class + } } if size-1 >= 12 { - class.ViewAnglesX = utils.FloatFromBytes(byteArr[8:12]) + bit, err := reader.ReadBit() + utils.CheckError(err) + if bit { + value, err := reader.ReadBits(32) + utils.CheckError(err) + class.ViewAnglesX = float32(value) + } else { + return class + } } if size-1 >= 16 { - class.ViewAnglesY = utils.FloatFromBytes(byteArr[12:16]) + bit, err := reader.ReadBit() + utils.CheckError(err) + if bit { + value, err := reader.ReadBits(32) + utils.CheckError(err) + class.ViewAnglesY = float32(value) + } else { + return class + } } if size-1 >= 20 { - class.ViewAnglesZ = utils.FloatFromBytes(byteArr[16:20]) + bit, err := reader.ReadBit() + utils.CheckError(err) + if bit { + value, err := reader.ReadBits(32) + utils.CheckError(err) + class.ViewAnglesZ = float32(value) + } else { + return class + } } if size-1 >= 24 { - class.ForwardMove = utils.FloatFromBytes(byteArr[20:24]) + bit, err := reader.ReadBit() + utils.CheckError(err) + if bit { + value, err := reader.ReadBits(32) + utils.CheckError(err) + class.ForwardMove = float32(value) + } else { + return class + } } if size-1 >= 28 { - class.SideMove = utils.FloatFromBytes(byteArr[24:28]) + bit, err := reader.ReadBit() + utils.CheckError(err) + if bit { + value, err := reader.ReadBits(32) + utils.CheckError(err) + class.SideMove = float32(value) + } else { + return class + } } if size-1 >= 32 { - class.UpMove = utils.FloatFromBytes(byteArr[28:32]) + bit, err := reader.ReadBit() + utils.CheckError(err) + if bit { + value, err := reader.ReadBits(32) + utils.CheckError(err) + class.UpMove = float32(value) + } else { + return class + } } - if size-1 >= 36 { - class.Buttons = int32(utils.IntFromBytes(byteArr[32:36])) - } - if size-1 >= 40 { - class.Impulse = byteArr[36] - }*/ return class } -- cgit v1.2.3