aboutsummaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
Diffstat (limited to 'classes')
-rw-r--r--classes/cmdInfo.go25
-rw-r--r--classes/stringTable.go27
-rw-r--r--classes/userCmdInfo.go57
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 @@
1package classes
2
3import "parser/utils"
4
5type 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
15func 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 @@
1package classes
2
3type 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/*
17func 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 @@
1package classes
2
3import (
4 "parser/utils"
5)
6
7type 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
24func 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}