overlook-csgo 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +2 -0
  3. data/.gitignore +5 -0
  4. data/.rspec +2 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +3 -0
  7. data/Gemfile.lock +115 -0
  8. data/README.md +77 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +7 -0
  11. data/bin/setup +7 -0
  12. data/lib/overlook.rb +20 -0
  13. data/lib/overlook/bit_buffer.rb +52 -0
  14. data/lib/overlook/bit_reader.rb +64 -0
  15. data/lib/overlook/byte_reader.rb +58 -0
  16. data/lib/overlook/csgo.rb +9 -0
  17. data/lib/overlook/csgo/demo.rb +33 -0
  18. data/lib/overlook/csgo/demo/base.rb +20 -0
  19. data/lib/overlook/csgo/demo/command.rb +67 -0
  20. data/lib/overlook/csgo/demo/command_factory.rb +15 -0
  21. data/lib/overlook/csgo/demo/encrypted_data_handler.rb +16 -0
  22. data/lib/overlook/csgo/demo/game_event_list_message_handler.rb +19 -0
  23. data/lib/overlook/csgo/demo/game_event_message_handler.rb +35 -0
  24. data/lib/overlook/csgo/demo/header.rb +45 -0
  25. data/lib/overlook/csgo/demo/key_reader.rb +18 -0
  26. data/lib/overlook/csgo/demo/packet.rb +16 -0
  27. data/lib/overlook/csgo/demo/packet_factory.rb +22 -0
  28. data/lib/overlook/csgo/demo/packet_handler.rb +50 -0
  29. data/lib/overlook/csgo/demo/parser.rb +66 -0
  30. data/lib/overlook/csgo/demo/user_message_message_handler.rb +43 -0
  31. data/lib/overlook/csgo/match_info_decoder.rb +92 -0
  32. data/lib/overlook/csgo/sharecode_decoder.rb +83 -0
  33. data/lib/overlook/version.rb +3 -0
  34. data/lib/proto/.gitkeep +0 -0
  35. data/lib/proto/compiled/cstrike15_gcmessages.pb.rb +1382 -0
  36. data/lib/proto/compiled/cstrike15_usermessages.pb.rb +702 -0
  37. data/lib/proto/compiled/descriptor.pb.rb +280 -0
  38. data/lib/proto/compiled/netmessages.pb.rb +687 -0
  39. data/lib/proto/compiled/steammessages.pb.rb +798 -0
  40. data/overlook-csgo.gemspec +36 -0
  41. metadata +209 -0
@@ -0,0 +1,280 @@
1
+ ## Generated from google/protobuf/descriptor.proto for google.protobuf
2
+ require "beefcake"
3
+
4
+
5
+ class FileDescriptorSet
6
+ include Beefcake::Message
7
+ end
8
+
9
+ class FileDescriptorProto
10
+ include Beefcake::Message
11
+ end
12
+
13
+ class DescriptorProto
14
+ include Beefcake::Message
15
+
16
+ class ExtensionRange
17
+ include Beefcake::Message
18
+ end
19
+ end
20
+
21
+ class FieldDescriptorProto
22
+ include Beefcake::Message
23
+
24
+ module Type
25
+ TYPE_DOUBLE = 1
26
+ TYPE_FLOAT = 2
27
+ TYPE_INT64 = 3
28
+ TYPE_UINT64 = 4
29
+ TYPE_INT32 = 5
30
+ TYPE_FIXED64 = 6
31
+ TYPE_FIXED32 = 7
32
+ TYPE_BOOL = 8
33
+ TYPE_STRING = 9
34
+ TYPE_GROUP = 10
35
+ TYPE_MESSAGE = 11
36
+ TYPE_BYTES = 12
37
+ TYPE_UINT32 = 13
38
+ TYPE_ENUM = 14
39
+ TYPE_SFIXED32 = 15
40
+ TYPE_SFIXED64 = 16
41
+ TYPE_SINT32 = 17
42
+ TYPE_SINT64 = 18
43
+ end
44
+
45
+ module Label
46
+ LABEL_OPTIONAL = 1
47
+ LABEL_REQUIRED = 2
48
+ LABEL_REPEATED = 3
49
+ end
50
+ end
51
+
52
+ class OneofDescriptorProto
53
+ include Beefcake::Message
54
+ end
55
+
56
+ class EnumDescriptorProto
57
+ include Beefcake::Message
58
+ end
59
+
60
+ class EnumValueDescriptorProto
61
+ include Beefcake::Message
62
+ end
63
+
64
+ class ServiceDescriptorProto
65
+ include Beefcake::Message
66
+ end
67
+
68
+ class MethodDescriptorProto
69
+ include Beefcake::Message
70
+ end
71
+
72
+ class FileOptions
73
+ include Beefcake::Message
74
+
75
+ module OptimizeMode
76
+ SPEED = 1
77
+ CODE_SIZE = 2
78
+ LITE_RUNTIME = 3
79
+ end
80
+ end
81
+
82
+ class MessageOptions
83
+ include Beefcake::Message
84
+ end
85
+
86
+ class FieldOptions
87
+ include Beefcake::Message
88
+
89
+ module CType
90
+ STRING = 0
91
+ CORD = 1
92
+ STRING_PIECE = 2
93
+ end
94
+ end
95
+
96
+ class EnumOptions
97
+ include Beefcake::Message
98
+ end
99
+
100
+ class EnumValueOptions
101
+ include Beefcake::Message
102
+ end
103
+
104
+ class ServiceOptions
105
+ include Beefcake::Message
106
+ end
107
+
108
+ class MethodOptions
109
+ include Beefcake::Message
110
+ end
111
+
112
+ class UninterpretedOption
113
+ include Beefcake::Message
114
+
115
+ class NamePart
116
+ include Beefcake::Message
117
+ end
118
+ end
119
+
120
+ class SourceCodeInfo
121
+ include Beefcake::Message
122
+
123
+ class Location
124
+ include Beefcake::Message
125
+ end
126
+ end
127
+
128
+ class FileDescriptorSet
129
+ repeated :file, FileDescriptorProto, 1
130
+ end
131
+
132
+ class FileDescriptorProto
133
+ optional :name, :string, 1
134
+ optional :package, :string, 2
135
+ repeated :dependency, :string, 3
136
+ repeated :public_dependency, :int32, 10
137
+ repeated :weak_dependency, :int32, 11
138
+ repeated :message_type, DescriptorProto, 4
139
+ repeated :enum_type, EnumDescriptorProto, 5
140
+ repeated :service, ServiceDescriptorProto, 6
141
+ repeated :extension, FieldDescriptorProto, 7
142
+ optional :options, FileOptions, 8
143
+ optional :source_code_info, SourceCodeInfo, 9
144
+ end
145
+
146
+ class DescriptorProto
147
+
148
+ class ExtensionRange
149
+ optional :start, :int32, 1
150
+ optional :end, :int32, 2
151
+ end
152
+ optional :name, :string, 1
153
+ repeated :field, FieldDescriptorProto, 2
154
+ repeated :extension, FieldDescriptorProto, 6
155
+ repeated :nested_type, DescriptorProto, 3
156
+ repeated :enum_type, EnumDescriptorProto, 4
157
+ repeated :extension_range, DescriptorProto::ExtensionRange, 5
158
+ repeated :oneof_decl, OneofDescriptorProto, 8
159
+ optional :options, MessageOptions, 7
160
+ end
161
+
162
+ class FieldDescriptorProto
163
+ optional :name, :string, 1
164
+ optional :number, :int32, 3
165
+ optional :label, FieldDescriptorProto::Label, 4
166
+ optional :type, FieldDescriptorProto::Type, 5
167
+ optional :type_name, :string, 6
168
+ optional :extendee, :string, 2
169
+ optional :default_value, :string, 7
170
+ optional :oneof_index, :int32, 9
171
+ optional :options, FieldOptions, 8
172
+ end
173
+
174
+ class OneofDescriptorProto
175
+ optional :name, :string, 1
176
+ end
177
+
178
+ class EnumDescriptorProto
179
+ optional :name, :string, 1
180
+ repeated :value, EnumValueDescriptorProto, 2
181
+ optional :options, EnumOptions, 3
182
+ end
183
+
184
+ class EnumValueDescriptorProto
185
+ optional :name, :string, 1
186
+ optional :number, :int32, 2
187
+ optional :options, EnumValueOptions, 3
188
+ end
189
+
190
+ class ServiceDescriptorProto
191
+ optional :name, :string, 1
192
+ repeated :method, MethodDescriptorProto, 2
193
+ optional :options, ServiceOptions, 3
194
+ end
195
+
196
+ class MethodDescriptorProto
197
+ optional :name, :string, 1
198
+ optional :input_type, :string, 2
199
+ optional :output_type, :string, 3
200
+ optional :options, MethodOptions, 4
201
+ end
202
+
203
+ class FileOptions
204
+ optional :java_package, :string, 1
205
+ optional :java_outer_classname, :string, 8
206
+ optional :java_multiple_files, :bool, 10, :default => false
207
+ optional :java_generate_equals_and_hash, :bool, 20, :default => false
208
+ optional :java_string_check_utf8, :bool, 27, :default => false
209
+ optional :optimize_for, FileOptions::OptimizeMode, 9, :default => FileOptions::OptimizeMode::SPEED
210
+ optional :go_package, :string, 11
211
+ optional :cc_generic_services, :bool, 16, :default => false
212
+ optional :java_generic_services, :bool, 17, :default => false
213
+ optional :py_generic_services, :bool, 18, :default => false
214
+ optional :deprecated, :bool, 23, :default => false
215
+ repeated :uninterpreted_option, UninterpretedOption, 999
216
+ end
217
+
218
+ class MessageOptions
219
+ optional :message_set_wire_format, :bool, 1, :default => false
220
+ optional :no_standard_descriptor_accessor, :bool, 2, :default => false
221
+ optional :deprecated, :bool, 3, :default => false
222
+ repeated :uninterpreted_option, UninterpretedOption, 999
223
+ end
224
+
225
+ class FieldOptions
226
+ optional :ctype, FieldOptions::CType, 1, :default => FieldOptions::CType::STRING
227
+ optional :packed, :bool, 2
228
+ optional :lazy, :bool, 5, :default => false
229
+ optional :deprecated, :bool, 3, :default => false
230
+ optional :experimental_map_key, :string, 9
231
+ optional :weak, :bool, 10, :default => false
232
+ repeated :uninterpreted_option, UninterpretedOption, 999
233
+ end
234
+
235
+ class EnumOptions
236
+ optional :allow_alias, :bool, 2
237
+ optional :deprecated, :bool, 3, :default => false
238
+ repeated :uninterpreted_option, UninterpretedOption, 999
239
+ end
240
+
241
+ class EnumValueOptions
242
+ optional :deprecated, :bool, 1, :default => false
243
+ repeated :uninterpreted_option, UninterpretedOption, 999
244
+ end
245
+
246
+ class ServiceOptions
247
+ optional :deprecated, :bool, 33, :default => false
248
+ repeated :uninterpreted_option, UninterpretedOption, 999
249
+ end
250
+
251
+ class MethodOptions
252
+ optional :deprecated, :bool, 33, :default => false
253
+ repeated :uninterpreted_option, UninterpretedOption, 999
254
+ end
255
+
256
+ class UninterpretedOption
257
+
258
+ class NamePart
259
+ required :name_part, :string, 1
260
+ required :is_extension, :bool, 2
261
+ end
262
+ repeated :name, UninterpretedOption::NamePart, 2
263
+ optional :identifier_value, :string, 3
264
+ optional :positive_int_value, :uint64, 4
265
+ optional :negative_int_value, :int64, 5
266
+ optional :double_value, :double, 6
267
+ optional :string_value, :bytes, 7
268
+ optional :aggregate_value, :string, 8
269
+ end
270
+
271
+ class SourceCodeInfo
272
+
273
+ class Location
274
+ repeated :path, :int32, 1
275
+ repeated :span, :int32, 2
276
+ optional :leading_comments, :string, 3
277
+ optional :trailing_comments, :string, 4
278
+ end
279
+ repeated :location, SourceCodeInfo::Location, 1
280
+ end
@@ -0,0 +1,687 @@
1
+ ## Generated from netmessages.proto
2
+ require "beefcake"
3
+
4
+
5
+ module NET_Messages
6
+ net_NOP = 0
7
+ net_Disconnect = 1
8
+ net_File = 2
9
+ net_SplitScreenUser = 3
10
+ net_Tick = 4
11
+ net_StringCmd = 5
12
+ net_SetConVar = 6
13
+ net_SignonState = 7
14
+ net_PlayerAvatarData = 100
15
+ end
16
+
17
+ module CLC_Messages
18
+ clc_ClientInfo = 8
19
+ clc_Move = 9
20
+ clc_VoiceData = 10
21
+ clc_BaselineAck = 11
22
+ clc_ListenEvents = 12
23
+ clc_RespondCvarValue = 13
24
+ clc_FileCRCCheck = 14
25
+ clc_LoadingProgress = 15
26
+ clc_SplitPlayerConnect = 16
27
+ clc_ClientMessage = 17
28
+ clc_CmdKeyValues = 18
29
+ end
30
+
31
+ module VoiceDataFormat_t
32
+ VOICEDATA_FORMAT_STEAM = 0
33
+ VOICEDATA_FORMAT_ENGINE = 1
34
+ end
35
+
36
+ module ESplitScreenMessageType
37
+ MSG_SPLITSCREEN_ADDUSER = 0
38
+ MSG_SPLITSCREEN_REMOVEUSER = 1
39
+ MSG_SPLITSCREEN_TYPE_BITS = 1
40
+ end
41
+
42
+ module SVC_Messages
43
+ svc_ServerInfo = 8
44
+ svc_SendTable = 9
45
+ svc_ClassInfo = 10
46
+ svc_SetPause = 11
47
+ svc_CreateStringTable = 12
48
+ svc_UpdateStringTable = 13
49
+ svc_VoiceInit = 14
50
+ svc_VoiceData = 15
51
+ svc_Print = 16
52
+ svc_Sounds = 17
53
+ svc_SetView = 18
54
+ svc_FixAngle = 19
55
+ svc_CrosshairAngle = 20
56
+ svc_BSPDecal = 21
57
+ svc_SplitScreen = 22
58
+ svc_UserMessage = 23
59
+ svc_EntityMessage = 24
60
+ svc_GameEvent = 25
61
+ svc_PacketEntities = 26
62
+ svc_TempEntities = 27
63
+ svc_Prefetch = 28
64
+ svc_Menu = 29
65
+ svc_GameEventList = 30
66
+ svc_GetCvarValue = 31
67
+ svc_PaintmapData = 33
68
+ svc_CmdKeyValues = 34
69
+ svc_EncryptedData = 35
70
+ end
71
+
72
+ class CMsgVector
73
+ include Beefcake::Message
74
+ end
75
+
76
+ class CMsgVector2D
77
+ include Beefcake::Message
78
+ end
79
+
80
+ class CMsgQAngle
81
+ include Beefcake::Message
82
+ end
83
+
84
+ class CMsgRGBA
85
+ include Beefcake::Message
86
+ end
87
+
88
+ class CNETMsg_Tick
89
+ include Beefcake::Message
90
+ end
91
+
92
+ class CNETMsg_StringCmd
93
+ include Beefcake::Message
94
+ end
95
+
96
+ class CNETMsg_SignonState
97
+ include Beefcake::Message
98
+ end
99
+
100
+ class CMsg_CVars
101
+ include Beefcake::Message
102
+
103
+ class CVar
104
+ include Beefcake::Message
105
+ end
106
+ end
107
+
108
+ class CNETMsg_SetConVar
109
+ include Beefcake::Message
110
+ end
111
+
112
+ class CNETMsg_NOP
113
+ include Beefcake::Message
114
+ end
115
+
116
+ class CNETMsg_Disconnect
117
+ include Beefcake::Message
118
+ end
119
+
120
+ class CNETMsg_File
121
+ include Beefcake::Message
122
+ end
123
+
124
+ class CNETMsg_SplitScreenUser
125
+ include Beefcake::Message
126
+ end
127
+
128
+ class CNETMsg_PlayerAvatarData
129
+ include Beefcake::Message
130
+ end
131
+
132
+ class CCLCMsg_ClientInfo
133
+ include Beefcake::Message
134
+ end
135
+
136
+ class CCLCMsg_Move
137
+ include Beefcake::Message
138
+ end
139
+
140
+ class CCLCMsg_VoiceData
141
+ include Beefcake::Message
142
+ end
143
+
144
+ class CCLCMsg_BaselineAck
145
+ include Beefcake::Message
146
+ end
147
+
148
+ class CCLCMsg_ListenEvents
149
+ include Beefcake::Message
150
+ end
151
+
152
+ class CCLCMsg_RespondCvarValue
153
+ include Beefcake::Message
154
+ end
155
+
156
+ class CCLCMsg_FileCRCCheck
157
+ include Beefcake::Message
158
+ end
159
+
160
+ class CCLCMsg_LoadingProgress
161
+ include Beefcake::Message
162
+ end
163
+
164
+ class CCLCMsg_SplitPlayerConnect
165
+ include Beefcake::Message
166
+ end
167
+
168
+ class CCLCMsg_CmdKeyValues
169
+ include Beefcake::Message
170
+ end
171
+
172
+ class CSVCMsg_ServerInfo
173
+ include Beefcake::Message
174
+ end
175
+
176
+ class CSVCMsg_ClassInfo
177
+ include Beefcake::Message
178
+
179
+ class Class_t
180
+ include Beefcake::Message
181
+ end
182
+ end
183
+
184
+ class CSVCMsg_SendTable
185
+ include Beefcake::Message
186
+
187
+ class Sendprop_t
188
+ include Beefcake::Message
189
+ end
190
+ end
191
+
192
+ class CSVCMsg_Print
193
+ include Beefcake::Message
194
+ end
195
+
196
+ class CSVCMsg_SetPause
197
+ include Beefcake::Message
198
+ end
199
+
200
+ class CSVCMsg_SetView
201
+ include Beefcake::Message
202
+ end
203
+
204
+ class CSVCMsg_CreateStringTable
205
+ include Beefcake::Message
206
+ end
207
+
208
+ class CSVCMsg_UpdateStringTable
209
+ include Beefcake::Message
210
+ end
211
+
212
+ class CSVCMsg_VoiceInit
213
+ include Beefcake::Message
214
+ end
215
+
216
+ class CSVCMsg_VoiceData
217
+ include Beefcake::Message
218
+ end
219
+
220
+ class CSVCMsg_FixAngle
221
+ include Beefcake::Message
222
+ end
223
+
224
+ class CSVCMsg_CrosshairAngle
225
+ include Beefcake::Message
226
+ end
227
+
228
+ class CSVCMsg_Prefetch
229
+ include Beefcake::Message
230
+ end
231
+
232
+ class CSVCMsg_BSPDecal
233
+ include Beefcake::Message
234
+ end
235
+
236
+ class CSVCMsg_SplitScreen
237
+ include Beefcake::Message
238
+ end
239
+
240
+ class CSVCMsg_GetCvarValue
241
+ include Beefcake::Message
242
+ end
243
+
244
+ class CSVCMsg_Menu
245
+ include Beefcake::Message
246
+ end
247
+
248
+ class CSVCMsg_UserMessage
249
+ include Beefcake::Message
250
+ end
251
+
252
+ class CSVCMsg_PaintmapData
253
+ include Beefcake::Message
254
+ end
255
+
256
+ class CSVCMsg_GameEvent
257
+ include Beefcake::Message
258
+
259
+ class Key_t
260
+ include Beefcake::Message
261
+ end
262
+ end
263
+
264
+ class CSVCMsg_GameEventList
265
+ include Beefcake::Message
266
+
267
+ class Key_t
268
+ include Beefcake::Message
269
+ end
270
+
271
+ class Descriptor
272
+ include Beefcake::Message
273
+ end
274
+ end
275
+
276
+ class CSVCMsg_TempEntities
277
+ include Beefcake::Message
278
+ end
279
+
280
+ class CSVCMsg_PacketEntities
281
+ include Beefcake::Message
282
+ end
283
+
284
+ class CSVCMsg_Sounds
285
+ include Beefcake::Message
286
+
287
+ class Sounddata_t
288
+ include Beefcake::Message
289
+ end
290
+ end
291
+
292
+ class CSVCMsg_EntityMsg
293
+ include Beefcake::Message
294
+ end
295
+
296
+ class CSVCMsg_CmdKeyValues
297
+ include Beefcake::Message
298
+ end
299
+
300
+ class CSVCMsg_EncryptedData
301
+ include Beefcake::Message
302
+ end
303
+
304
+ class CMsgVector
305
+ optional :x, :float, 1
306
+ optional :y, :float, 2
307
+ optional :z, :float, 3
308
+ end
309
+
310
+ class CMsgVector2D
311
+ optional :x, :float, 1
312
+ optional :y, :float, 2
313
+ end
314
+
315
+ class CMsgQAngle
316
+ optional :x, :float, 1
317
+ optional :y, :float, 2
318
+ optional :z, :float, 3
319
+ end
320
+
321
+ class CMsgRGBA
322
+ optional :r, :int32, 1
323
+ optional :g, :int32, 2
324
+ optional :b, :int32, 3
325
+ optional :a, :int32, 4
326
+ end
327
+
328
+ class CNETMsg_Tick
329
+ optional :tick, :uint32, 1
330
+ optional :host_computationtime, :uint32, 4
331
+ optional :host_computationtime_std_deviation, :uint32, 5
332
+ optional :host_framestarttime_std_deviation, :uint32, 6
333
+ end
334
+
335
+ class CNETMsg_StringCmd
336
+ optional :command, :string, 1
337
+ end
338
+
339
+ class CNETMsg_SignonState
340
+ optional :signon_state, :uint32, 1
341
+ optional :spawn_count, :uint32, 2
342
+ optional :num_server_players, :uint32, 3
343
+ repeated :players_networkids, :string, 4
344
+ optional :map_name, :string, 5
345
+ end
346
+
347
+ class CMsg_CVars
348
+
349
+ class CVar
350
+ optional :name, :string, 1
351
+ optional :value, :string, 2
352
+ optional :dictionary_name, :uint32, 3
353
+ end
354
+ repeated :cvars, CMsg_CVars::CVar, 1
355
+ end
356
+
357
+ class CNETMsg_SetConVar
358
+ optional :convars, CMsg_CVars, 1
359
+ end
360
+
361
+ class CNETMsg_NOP
362
+ end
363
+
364
+ class CNETMsg_Disconnect
365
+ optional :text, :string, 1
366
+ end
367
+
368
+ class CNETMsg_File
369
+ optional :transfer_id, :int32, 1
370
+ optional :file_name, :string, 2
371
+ optional :is_replay_demo_file, :bool, 3
372
+ optional :deny, :bool, 4
373
+ end
374
+
375
+ class CNETMsg_SplitScreenUser
376
+ optional :slot, :int32, 1
377
+ end
378
+
379
+ class CNETMsg_PlayerAvatarData
380
+ optional :accountid, :uint32, 1
381
+ optional :rgb, :bytes, 2
382
+ end
383
+
384
+ class CCLCMsg_ClientInfo
385
+ optional :send_table_crc, :fixed32, 1
386
+ optional :server_count, :uint32, 2
387
+ optional :is_hltv, :bool, 3
388
+ optional :is_replay, :bool, 4
389
+ optional :friends_id, :uint32, 5
390
+ optional :friends_name, :string, 6
391
+ repeated :custom_files, :fixed32, 7
392
+ end
393
+
394
+ class CCLCMsg_Move
395
+ optional :num_backup_commands, :uint32, 1
396
+ optional :num_new_commands, :uint32, 2
397
+ optional :data, :bytes, 3
398
+ end
399
+
400
+ class CCLCMsg_VoiceData
401
+ optional :data, :bytes, 1
402
+ optional :xuid, :fixed64, 2
403
+ optional :format, VoiceDataFormat_t, 3, :default => VoiceDataFormat_t::VOICEDATA_FORMAT_ENGINE
404
+ optional :sequence_bytes, :int32, 4
405
+ optional :section_number, :uint32, 5
406
+ optional :uncompressed_sample_offset, :uint32, 6
407
+ end
408
+
409
+ class CCLCMsg_BaselineAck
410
+ optional :baseline_tick, :int32, 1
411
+ optional :baseline_nr, :int32, 2
412
+ end
413
+
414
+ class CCLCMsg_ListenEvents
415
+ repeated :event_mask, :fixed32, 1
416
+ end
417
+
418
+ class CCLCMsg_RespondCvarValue
419
+ optional :cookie, :int32, 1
420
+ optional :status_code, :int32, 2
421
+ optional :name, :string, 3
422
+ optional :value, :string, 4
423
+ end
424
+
425
+ class CCLCMsg_FileCRCCheck
426
+ optional :code_path, :int32, 1
427
+ optional :path, :string, 2
428
+ optional :code_filename, :int32, 3
429
+ optional :filename, :string, 4
430
+ optional :file_fraction, :int32, 5
431
+ optional :md5, :bytes, 6
432
+ optional :crc, :uint32, 7
433
+ optional :file_hash_type, :int32, 8
434
+ optional :file_len, :int32, 9
435
+ optional :pack_file_id, :int32, 10
436
+ optional :pack_file_number, :int32, 11
437
+ end
438
+
439
+ class CCLCMsg_LoadingProgress
440
+ optional :progress, :int32, 1
441
+ end
442
+
443
+ class CCLCMsg_SplitPlayerConnect
444
+ optional :convars, CMsg_CVars, 1
445
+ end
446
+
447
+ class CCLCMsg_CmdKeyValues
448
+ optional :keyvalues, :bytes, 1
449
+ end
450
+
451
+ class CSVCMsg_ServerInfo
452
+ optional :protocol, :int32, 1
453
+ optional :server_count, :int32, 2
454
+ optional :is_dedicated, :bool, 3
455
+ optional :is_official_valve_server, :bool, 4
456
+ optional :is_hltv, :bool, 5
457
+ optional :is_replay, :bool, 6
458
+ optional :is_redirecting_to_proxy_relay, :bool, 21
459
+ optional :c_os, :int32, 7
460
+ optional :map_crc, :fixed32, 8
461
+ optional :client_crc, :fixed32, 9
462
+ optional :string_table_crc, :fixed32, 10
463
+ optional :max_clients, :int32, 11
464
+ optional :max_classes, :int32, 12
465
+ optional :player_slot, :int32, 13
466
+ optional :tick_interval, :float, 14
467
+ optional :game_dir, :string, 15
468
+ optional :map_name, :string, 16
469
+ optional :map_group_name, :string, 17
470
+ optional :sky_name, :string, 18
471
+ optional :host_name, :string, 19
472
+ optional :public_ip, :uint32, 20
473
+ optional :ugc_map_id, :uint64, 22
474
+ end
475
+
476
+ class CSVCMsg_ClassInfo
477
+
478
+ class Class_t
479
+ optional :class_id, :int32, 1
480
+ optional :data_table_name, :string, 2
481
+ optional :class_name, :string, 3
482
+ end
483
+ optional :create_on_client, :bool, 1
484
+ repeated :classes, CSVCMsg_ClassInfo::Class_t, 2
485
+ end
486
+
487
+ class CSVCMsg_SendTable
488
+
489
+ class Sendprop_t
490
+ optional :type, :int32, 1
491
+ optional :var_name, :string, 2
492
+ optional :flags, :int32, 3
493
+ optional :priority, :int32, 4
494
+ optional :dt_name, :string, 5
495
+ optional :num_elements, :int32, 6
496
+ optional :low_value, :float, 7
497
+ optional :high_value, :float, 8
498
+ optional :num_bits, :int32, 9
499
+ end
500
+ optional :is_end, :bool, 1
501
+ optional :net_table_name, :string, 2
502
+ optional :needs_decoder, :bool, 3
503
+ repeated :props, CSVCMsg_SendTable::Sendprop_t, 4
504
+ end
505
+
506
+ class CSVCMsg_Print
507
+ optional :text, :string, 1
508
+ end
509
+
510
+ class CSVCMsg_SetPause
511
+ optional :paused, :bool, 1
512
+ end
513
+
514
+ class CSVCMsg_SetView
515
+ optional :entity_index, :int32, 1
516
+ end
517
+
518
+ class CSVCMsg_CreateStringTable
519
+ optional :name, :string, 1
520
+ optional :max_entries, :int32, 2
521
+ optional :num_entries, :int32, 3
522
+ optional :user_data_fixed_size, :bool, 4
523
+ optional :user_data_size, :int32, 5
524
+ optional :user_data_size_bits, :int32, 6
525
+ optional :flags, :int32, 7
526
+ optional :string_data, :bytes, 8
527
+ end
528
+
529
+ class CSVCMsg_UpdateStringTable
530
+ optional :table_id, :int32, 1
531
+ optional :num_changed_entries, :int32, 2
532
+ optional :string_data, :bytes, 3
533
+ end
534
+
535
+ class CSVCMsg_VoiceInit
536
+ optional :quality, :int32, 1
537
+ optional :codec, :string, 2
538
+ optional :version, :int32, 3, :default => 0
539
+ end
540
+
541
+ class CSVCMsg_VoiceData
542
+ optional :client, :int32, 1
543
+ optional :proximity, :bool, 2
544
+ optional :xuid, :fixed64, 3
545
+ optional :audible_mask, :int32, 4
546
+ optional :voice_data, :bytes, 5
547
+ optional :caster, :bool, 6
548
+ optional :format, VoiceDataFormat_t, 7, :default => VoiceDataFormat_t::VOICEDATA_FORMAT_ENGINE
549
+ optional :sequence_bytes, :int32, 8
550
+ optional :section_number, :uint32, 9
551
+ optional :uncompressed_sample_offset, :uint32, 10
552
+ end
553
+
554
+ class CSVCMsg_FixAngle
555
+ optional :relative, :bool, 1
556
+ optional :angle, CMsgQAngle, 2
557
+ end
558
+
559
+ class CSVCMsg_CrosshairAngle
560
+ optional :angle, CMsgQAngle, 1
561
+ end
562
+
563
+ class CSVCMsg_Prefetch
564
+ optional :sound_index, :int32, 1
565
+ end
566
+
567
+ class CSVCMsg_BSPDecal
568
+ optional :pos, CMsgVector, 1
569
+ optional :decal_texture_index, :int32, 2
570
+ optional :entity_index, :int32, 3
571
+ optional :model_index, :int32, 4
572
+ optional :low_priority, :bool, 5
573
+ end
574
+
575
+ class CSVCMsg_SplitScreen
576
+ optional :type, ESplitScreenMessageType, 1, :default => ESplitScreenMessageType::MSG_SPLITSCREEN_ADDUSER
577
+ optional :slot, :int32, 2
578
+ optional :player_index, :int32, 3
579
+ end
580
+
581
+ class CSVCMsg_GetCvarValue
582
+ optional :cookie, :int32, 1
583
+ optional :cvar_name, :string, 2
584
+ end
585
+
586
+ class CSVCMsg_Menu
587
+ optional :dialog_type, :int32, 1
588
+ optional :menu_key_values, :bytes, 2
589
+ end
590
+
591
+ class CSVCMsg_UserMessage
592
+ optional :msg_type, :int32, 1
593
+ optional :msg_data, :bytes, 2
594
+ end
595
+
596
+ class CSVCMsg_PaintmapData
597
+ optional :paintmap, :bytes, 1
598
+ end
599
+
600
+ class CSVCMsg_GameEvent
601
+
602
+ class Key_t
603
+ optional :type, :int32, 1
604
+ optional :val_string, :string, 2
605
+ optional :val_float, :float, 3
606
+ optional :val_long, :int32, 4
607
+ optional :val_short, :int32, 5
608
+ optional :val_byte, :int32, 6
609
+ optional :val_bool, :bool, 7
610
+ optional :val_uint64, :uint64, 8
611
+ optional :val_wstring, :bytes, 9
612
+ end
613
+ optional :event_name, :string, 1
614
+ optional :eventid, :int32, 2
615
+ repeated :keys, CSVCMsg_GameEvent::Key_t, 3
616
+ end
617
+
618
+ class CSVCMsg_GameEventList
619
+
620
+ class Key_t
621
+ optional :type, :int32, 1
622
+ optional :name, :string, 2
623
+ end
624
+
625
+ class Descriptor
626
+ optional :eventid, :int32, 1
627
+ optional :name, :string, 2
628
+ repeated :keys, CSVCMsg_GameEventList::Key_t, 3
629
+ end
630
+ repeated :descriptors, CSVCMsg_GameEventList::Descriptor, 1
631
+ end
632
+
633
+ class CSVCMsg_TempEntities
634
+ optional :reliable, :bool, 1
635
+ optional :num_entries, :int32, 2
636
+ optional :entity_data, :bytes, 3
637
+ end
638
+
639
+ class CSVCMsg_PacketEntities
640
+ optional :max_entries, :int32, 1
641
+ optional :updated_entries, :int32, 2
642
+ optional :is_delta, :bool, 3
643
+ optional :update_baseline, :bool, 4
644
+ optional :baseline, :int32, 5
645
+ optional :delta_from, :int32, 6
646
+ optional :entity_data, :bytes, 7
647
+ end
648
+
649
+ class CSVCMsg_Sounds
650
+
651
+ class Sounddata_t
652
+ optional :origin_x, :sint32, 1
653
+ optional :origin_y, :sint32, 2
654
+ optional :origin_z, :sint32, 3
655
+ optional :volume, :uint32, 4
656
+ optional :delay_value, :float, 5
657
+ optional :sequence_number, :int32, 6
658
+ optional :entity_index, :int32, 7
659
+ optional :channel, :int32, 8
660
+ optional :pitch, :int32, 9
661
+ optional :flags, :int32, 10
662
+ optional :sound_num, :uint32, 11
663
+ optional :sound_num_handle, :fixed32, 12
664
+ optional :speaker_entity, :int32, 13
665
+ optional :random_seed, :int32, 14
666
+ optional :sound_level, :int32, 15
667
+ optional :is_sentence, :bool, 16
668
+ optional :is_ambient, :bool, 17
669
+ end
670
+ optional :reliable_sound, :bool, 1
671
+ repeated :sounds, CSVCMsg_Sounds::Sounddata_t, 2
672
+ end
673
+
674
+ class CSVCMsg_EntityMsg
675
+ optional :ent_index, :int32, 1
676
+ optional :class_id, :int32, 2
677
+ optional :ent_data, :bytes, 3
678
+ end
679
+
680
+ class CSVCMsg_CmdKeyValues
681
+ optional :keyvalues, :bytes, 1
682
+ end
683
+
684
+ class CSVCMsg_EncryptedData
685
+ optional :encrypted, :bytes, 1
686
+ optional :key_type, :int32, 2
687
+ end