overlook-csgo 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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