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 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'pkg/classes/cmdInfo.go') 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()}, -- cgit v1.2.3