diff options
Diffstat (limited to 'pkg/classes/cmdInfo.go')
| -rw-r--r-- | pkg/classes/cmdInfo.go | 30 |
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 @@ | |||
| 1 | package classes | 1 | package classes |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | ||
| 5 | |||
| 4 | "github.com/pektezol/bitreader" | 6 | "github.com/pektezol/bitreader" |
| 5 | ) | 7 | ) |
| 6 | 8 | ||
| 7 | type CmdInfo struct { | 9 | type 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 | ||
| 19 | type CmdInfoFlags int | ||
| 20 | |||
| 21 | const ( | ||
| 22 | ECmdInfoFlagsNone = 0 | ||
| 23 | ECmdInfoFlagsUseOrigin2 = 1 | ||
| 24 | ECmdInfoFlagsUserAngles2 = 1 << 1 | ||
| 25 | ECmdInfoFlagsNoInterp = 1 << 2 | ||
| 26 | ) | ||
| 27 | |||
| 28 | func (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 | |||
| 17 | func ParseCmdInfo(reader *bitreader.Reader) CmdInfo { | 43 | func 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()}, |