aboutsummaryrefslogtreecommitdiff
path: root/pkg/classes/cmdInfo.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/classes/cmdInfo.go')
-rw-r--r--pkg/classes/cmdInfo.go30
1 files changed, 28 insertions, 2 deletions
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 @@
1package classes 1package classes
2 2
3import ( 3import (
4 "fmt"
5
4 "github.com/pektezol/bitreader" 6 "github.com/pektezol/bitreader"
5) 7)
6 8
7type CmdInfo struct { 9type CmdInfo struct {
8 Flags int32 10 Flags string
9 ViewOrigin []float32 11 ViewOrigin []float32
10 ViewAngles []float32 12 ViewAngles []float32
11 LocalViewAngles []float32 13 LocalViewAngles []float32
@@ -14,9 +16,33 @@ type CmdInfo struct {
14 LocalViewAngles2 []float32 16 LocalViewAngles2 []float32
15} 17}
16 18
19type CmdInfoFlags int
20
21const (
22 ECmdInfoFlagsNone = 0
23 ECmdInfoFlagsUseOrigin2 = 1
24 ECmdInfoFlagsUserAngles2 = 1 << 1
25 ECmdInfoFlagsNoInterp = 1 << 2
26)
27
28func (cmdInfoFlags CmdInfoFlags) String() string {
29 switch cmdInfoFlags {
30 case ECmdInfoFlagsNone:
31 return "None"
32 case ECmdInfoFlagsUseOrigin2:
33 return "UseOrigin2"
34 case ECmdInfoFlagsUserAngles2:
35 return "UserAngles2"
36 case ECmdInfoFlagsNoInterp:
37 return "NoInterp"
38 default:
39 return fmt.Sprintf("%d", int(cmdInfoFlags))
40 }
41}
42
17func ParseCmdInfo(reader *bitreader.Reader) CmdInfo { 43func ParseCmdInfo(reader *bitreader.Reader) CmdInfo {
18 return CmdInfo{ 44 return CmdInfo{
19 Flags: int32(reader.TryReadBits(32)), 45 Flags: CmdInfoFlags(reader.TryReadUInt32()).String(),
20 ViewOrigin: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, 46 ViewOrigin: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()},
21 ViewAngles: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, 47 ViewAngles: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()},
22 LocalViewAngles: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, 48 LocalViewAngles: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()},