diff options
Diffstat (limited to 'classes')
| -rw-r--r-- | classes/cmdInfo.go | 25 | ||||
| -rw-r--r-- | classes/stringTable.go | 27 | ||||
| -rw-r--r-- | classes/userCmdInfo.go | 57 |
3 files changed, 109 insertions, 0 deletions
diff --git a/classes/cmdInfo.go b/classes/cmdInfo.go new file mode 100644 index 0000000..c1faadd --- /dev/null +++ b/classes/cmdInfo.go | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | package classes | ||
| 2 | |||
| 3 | import "parser/utils" | ||
| 4 | |||
| 5 | type CmdInfo struct { | ||
| 6 | Flags int32 | ||
| 7 | ViewOrigin []float32 | ||
| 8 | ViewAngles []float32 | ||
| 9 | LocalViewAngles []float32 | ||
| 10 | ViewOrigin2 []float32 | ||
| 11 | ViewAngles2 []float32 | ||
| 12 | LocalViewAngles2 []float32 | ||
| 13 | } | ||
| 14 | |||
| 15 | func CmdInfoInit(bytes []byte) (output CmdInfo) { | ||
| 16 | var class CmdInfo | ||
| 17 | class.Flags = int32(utils.IntFromBytes(bytes[:4])) | ||
| 18 | class.ViewOrigin = utils.FloatArrFromBytes(bytes[4:16]) | ||
| 19 | class.ViewAngles = utils.FloatArrFromBytes(bytes[16:28]) | ||
| 20 | class.LocalViewAngles = utils.FloatArrFromBytes(bytes[28:40]) | ||
| 21 | class.ViewOrigin2 = utils.FloatArrFromBytes(bytes[40:52]) | ||
| 22 | class.ViewAngles2 = utils.FloatArrFromBytes(bytes[52:64]) | ||
| 23 | class.LocalViewAngles2 = utils.FloatArrFromBytes(bytes[64:76]) | ||
| 24 | return class | ||
| 25 | } | ||
diff --git a/classes/stringTable.go b/classes/stringTable.go new file mode 100644 index 0000000..0833612 --- /dev/null +++ b/classes/stringTable.go | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | package classes | ||
| 2 | |||
| 3 | type StringTable struct { | ||
| 4 | NumOfTables int32 | ||
| 5 | TableName string | ||
| 6 | NumOfEntries int16 | ||
| 7 | EntryName string | ||
| 8 | EntrySize int16 | ||
| 9 | EntryData []byte | ||
| 10 | NumOfClientEntries int16 | ||
| 11 | ClientEntryName string | ||
| 12 | ClientEntrySize int16 | ||
| 13 | ClientEntryData []byte | ||
| 14 | } | ||
| 15 | |||
| 16 | /* | ||
| 17 | func StringTableInit(bytes []byte) (output StringTable) { | ||
| 18 | var class StringTable | ||
| 19 | class.NumOfTables = int(utils.IntFromBytes(bytes[:1])) | ||
| 20 | class.TableName = string(bytes[1:16]) | ||
| 21 | class.ViewAngles = utils.FloatArrFromBytes(bytes[16:28]) | ||
| 22 | class.LocalViewAngles = utils.FloatArrFromBytes(bytes[28:40]) | ||
| 23 | class.ViewOrigin2 = utils.FloatArrFromBytes(bytes[40:52]) | ||
| 24 | class.ViewAngles2 = utils.FloatArrFromBytes(bytes[52:64]) | ||
| 25 | class.LocalViewAngles2 = utils.FloatArrFromBytes(bytes[64:76]) | ||
| 26 | return class | ||
| 27 | }*/ | ||
diff --git a/classes/userCmdInfo.go b/classes/userCmdInfo.go new file mode 100644 index 0000000..ae27e9a --- /dev/null +++ b/classes/userCmdInfo.go | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | package classes | ||
| 2 | |||
| 3 | import ( | ||
| 4 | "parser/utils" | ||
| 5 | ) | ||
| 6 | |||
| 7 | type UserCmdInfo struct { | ||
| 8 | CommandNumber int32 | ||
| 9 | TickCount int32 | ||
| 10 | ViewAnglesX float32 | ||
| 11 | ViewAnglesY float32 | ||
| 12 | ViewAnglesZ float32 | ||
| 13 | ForwardMove float32 | ||
| 14 | SideMove float32 | ||
| 15 | UpMove float32 | ||
| 16 | Buttons int32 | ||
| 17 | Impulse byte | ||
| 18 | /*WeaponSelect int | ||
| 19 | WeaponSubtype int | ||
| 20 | MouseDx int16 | ||
| 21 | MouseDy int16*/ | ||
| 22 | } | ||
| 23 | |||
| 24 | func UserCmdInfoInit(byteArr []byte, size int) (output UserCmdInfo) { | ||
| 25 | var class UserCmdInfo | ||
| 26 | if size-1 >= 4 { | ||
| 27 | class.CommandNumber = int32(utils.IntFromBytes(byteArr[:4])) | ||
| 28 | } | ||
| 29 | if size-1 >= 8 { | ||
| 30 | class.TickCount = int32(utils.IntFromBytes(byteArr[4:8])) | ||
| 31 | } | ||
| 32 | if size-1 >= 12 { | ||
| 33 | class.ViewAnglesX = utils.FloatFromBytes(byteArr[8:12]) | ||
| 34 | } | ||
| 35 | if size-1 >= 16 { | ||
| 36 | class.ViewAnglesY = utils.FloatFromBytes(byteArr[12:16]) | ||
| 37 | } | ||
| 38 | if size-1 >= 20 { | ||
| 39 | class.ViewAnglesZ = utils.FloatFromBytes(byteArr[16:20]) | ||
| 40 | } | ||
| 41 | if size-1 >= 24 { | ||
| 42 | class.ForwardMove = utils.FloatFromBytes(byteArr[20:24]) | ||
| 43 | } | ||
| 44 | if size-1 >= 28 { | ||
| 45 | class.SideMove = utils.FloatFromBytes(byteArr[24:28]) | ||
| 46 | } | ||
| 47 | if size-1 >= 32 { | ||
| 48 | class.UpMove = utils.FloatFromBytes(byteArr[28:32]) | ||
| 49 | } | ||
| 50 | if size-1 >= 36 { | ||
| 51 | class.Buttons = int32(utils.IntFromBytes(byteArr[32:36])) | ||
| 52 | } | ||
| 53 | if size-1 >= 40 { | ||
| 54 | class.Impulse = byteArr[36] | ||
| 55 | } | ||
| 56 | return class | ||
| 57 | } | ||