aboutsummaryrefslogtreecommitdiff
path: root/classes/classes.go
diff options
context:
space:
mode:
authorBiSaXa <1669855+BiSaXa@users.noreply.github.com>2022-09-07 19:40:16 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-16 21:39:36 +0300
commit4e71a481884c0c43aea3d0ee695ae68cdec56478 (patch)
treed75c96612526a7c686d9f4d85af6b89c7cd864e6 /classes/classes.go
parentfinal commit before rewrite (diff)
downloadsdp.go-4e71a481884c0c43aea3d0ee695ae68cdec56478.tar.gz
sdp.go-4e71a481884c0c43aea3d0ee695ae68cdec56478.tar.bz2
sdp.go-4e71a481884c0c43aea3d0ee695ae68cdec56478.zip
first rewrite commit using bisaxa/bitreader
Diffstat (limited to 'classes/classes.go')
-rw-r--r--classes/classes.go155
1 files changed, 155 insertions, 0 deletions
diff --git a/classes/classes.go b/classes/classes.go
new file mode 100644
index 0000000..beaab77
--- /dev/null
+++ b/classes/classes.go
@@ -0,0 +1,155 @@
1package classes
2
3import (
4 "os"
5
6 "github.com/bisaxa/bitreader"
7 "github.com/bisaxa/demoparser/utils"
8)
9
10func ParseCmdInfo(file *os.File, MSSC int) []CmdInfo {
11 reader := bitreader.Reader(file, true)
12 var cmdinfo CmdInfo
13 var cmdinfoarray []CmdInfo
14 for count := 0; count < MSSC; count++ {
15 cmdinfo.Flags = int32(reader.TryReadInt32())
16 var floatArray [3]float32
17 for i := 0; i < 3; i++ {
18 floatArray[i] = reader.TryReadFloat32()
19 }
20 cmdinfo.ViewOrigin = floatArray[:]
21 for i := 0; i < 3; i++ {
22 floatArray[i] = reader.TryReadFloat32()
23 }
24 cmdinfo.ViewAngles = floatArray[:]
25 for i := 0; i < 3; i++ {
26 floatArray[i] = reader.TryReadFloat32()
27 }
28 cmdinfo.LocalViewAngles = floatArray[:]
29 for i := 0; i < 3; i++ {
30 floatArray[i] = reader.TryReadFloat32()
31 }
32 cmdinfo.ViewOrigin2 = floatArray[:]
33 for i := 0; i < 3; i++ {
34 floatArray[i] = reader.TryReadFloat32()
35 }
36 cmdinfo.ViewAngles2 = floatArray[:]
37 for i := 0; i < 3; i++ {
38 floatArray[i] = reader.TryReadFloat32()
39 }
40 cmdinfo.LocalViewAngles2 = floatArray[:]
41 cmdinfoarray = append(cmdinfoarray, cmdinfo)
42 }
43 return cmdinfoarray
44}
45
46func ParseUserCmdInfo(file *os.File, size int) UserCmdInfo {
47 count := 0
48 reader := bitreader.Reader(file, true)
49 var usercmd UserCmdInfo
50 flag, err := reader.ReadBool()
51 utils.CheckError(err)
52 if flag {
53 usercmd.CommandNumber = int32(reader.TryReadInt32())
54 count += 32
55 }
56 count++
57 flag, err = reader.ReadBool()
58 utils.CheckError(err)
59 if flag {
60 usercmd.TickCount = int32(reader.TryReadInt32())
61 count += 32
62 }
63 count++
64 flag, err = reader.ReadBool()
65 utils.CheckError(err)
66 if flag {
67 usercmd.ViewAnglesX = reader.TryReadFloat32()
68 count += 32
69 }
70 count++
71 flag, err = reader.ReadBool()
72 utils.CheckError(err)
73 if flag {
74 usercmd.ViewAnglesY = reader.TryReadFloat32()
75 count += 32
76 }
77 count++
78 flag, err = reader.ReadBool()
79 utils.CheckError(err)
80 if flag {
81 usercmd.ViewAnglesZ = reader.TryReadFloat32()
82 count += 32
83 }
84 count++
85 flag, err = reader.ReadBool()
86 utils.CheckError(err)
87 if flag {
88 usercmd.ForwardMove = reader.TryReadFloat32()
89 count += 32
90 }
91 count++
92 flag, err = reader.ReadBool()
93 utils.CheckError(err)
94 if flag {
95 usercmd.SideMove = reader.TryReadFloat32()
96 count += 32
97 }
98 count++
99 flag, err = reader.ReadBool()
100 utils.CheckError(err)
101 if flag {
102 usercmd.UpMove = reader.TryReadFloat32()
103 count += 32
104 }
105 count++
106 flag, err = reader.ReadBool()
107 utils.CheckError(err)
108 if flag {
109 usercmd.Buttons = int32(reader.TryReadInt32())
110 count += 32
111 }
112 count++
113 flag, err = reader.ReadBool()
114 utils.CheckError(err)
115 if flag {
116 //reader.SkipBits(8)
117 usercmd.Impulse = int8(reader.TryReadInt8())
118 count += 8
119 }
120 count++
121 flag, err = reader.ReadBool()
122 utils.CheckError(err)
123 if flag {
124 value, err := reader.ReadBits(11)
125 utils.CheckError(err)
126 usercmd.WeaponSelect = int(value)
127 flag, err = reader.ReadBool()
128 utils.CheckError(err)
129 count += 11
130 if flag {
131 value, err := reader.ReadBits(6)
132 utils.CheckError(err)
133 usercmd.WeaponSubtype = int(value)
134 count += 6
135 }
136 count++
137 }
138 count++
139 flag, err = reader.ReadBool()
140 utils.CheckError(err)
141 if flag {
142 usercmd.MouseDx = int16(reader.TryReadInt16())
143 count += 16
144 }
145 count++
146 flag, err = reader.ReadBool()
147 utils.CheckError(err)
148 if flag {
149 usercmd.MouseDy = int16(reader.TryReadInt16())
150 count += 16
151 }
152 count++
153 reader.SkipBits(size*8 - count)
154 return usercmd
155}