From f44d9e89fe2ade9e81f22d09c10c3a43dd345d35 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Sun, 17 Sep 2023 18:37:44 +0300 Subject: touchup and fix bug --- pkg/classes/cmdInfo.go | 30 ++++++++++++++++++++++++++++-- pkg/classes/serverClassInfo.go | 4 ++-- 2 files changed, 30 insertions(+), 4 deletions(-) (limited to 'pkg/classes') diff --git a/pkg/classes/cmdInfo.go b/pkg/classes/cmdInfo.go index b56afed..545d14b 100644 --- a/pkg/classes/cmdInfo.go +++ b/pkg/classes/cmdInfo.go @@ -1,11 +1,13 @@ package classes import ( + "fmt" + "github.com/pektezol/bitreader" ) type CmdInfo struct { - Flags int32 + Flags string ViewOrigin []float32 ViewAngles []float32 LocalViewAngles []float32 @@ -14,9 +16,33 @@ type CmdInfo struct { LocalViewAngles2 []float32 } +type CmdInfoFlags int + +const ( + ECmdInfoFlagsNone = 0 + ECmdInfoFlagsUseOrigin2 = 1 + ECmdInfoFlagsUserAngles2 = 1 << 1 + ECmdInfoFlagsNoInterp = 1 << 2 +) + +func (cmdInfoFlags CmdInfoFlags) String() string { + switch cmdInfoFlags { + case ECmdInfoFlagsNone: + return "None" + case ECmdInfoFlagsUseOrigin2: + return "UseOrigin2" + case ECmdInfoFlagsUserAngles2: + return "UserAngles2" + case ECmdInfoFlagsNoInterp: + return "NoInterp" + default: + return fmt.Sprintf("%d", int(cmdInfoFlags)) + } +} + func ParseCmdInfo(reader *bitreader.Reader) CmdInfo { return CmdInfo{ - Flags: int32(reader.TryReadBits(32)), + Flags: CmdInfoFlags(reader.TryReadUInt32()).String(), ViewOrigin: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, ViewAngles: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, LocalViewAngles: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, diff --git a/pkg/classes/serverClassInfo.go b/pkg/classes/serverClassInfo.go index fbccffb..36bd8b8 100644 --- a/pkg/classes/serverClassInfo.go +++ b/pkg/classes/serverClassInfo.go @@ -5,14 +5,14 @@ import ( ) type ServerClassInfo struct { - ClassId int16 + ClassId uint16 ClassName string DataTableName string } func ParseServerClassInfo(reader *bitreader.Reader, count int, numOfClasses int) ServerClassInfo { return ServerClassInfo{ - ClassId: int16(reader.TryReadBits(16)), + ClassId: reader.TryReadUInt16(), ClassName: reader.TryReadString(), DataTableName: reader.TryReadString(), } -- cgit v1.2.3