source_sdk_2013_sys 0.1.0-alpha.2

Low-level bindings for the Source SDK.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
// @generated by `source_sdk_2013_bindgen`. DO NOT EDIT.
// Regenerate with the `source_sdk_2013_bindgen/generate_bindings` Cargo feature.

#![allow(
    clippy::all,
    ambiguous_glob_reexports,
    non_snake_case,
    non_camel_case_types,
    non_upper_case_globals,
    unsafe_op_in_unsafe_fn,
    unused_imports,
    unused_qualifications
)]
#[allow(unused_imports)]
use super::super::super::__bindgen_prelude::*;
pub type CStudioHdr_CActivityToSequenceMapping_ActivityToValueIdxHash = __BindgenOpaqueArray8<
    [u8; 40usize],
>;
#[repr(C)]
#[derive(Debug)]
pub struct CStudioHdr {
    pub m_pStudioHdr: *const studiohdr_t,
    pub m_pVModel: *mut virtualmodel_t,
    pub m_pStudioHdrCache: CUtlVector<
        *const studiohdr_t,
        CUtlMemory<*const studiohdr_t>,
    >,
    pub m_nFrameUnlockCounter: ::std::os::raw::c_int,
    pub m_pFrameUnlockCounter: *mut ::std::os::raw::c_int,
    pub m_FrameUnlockCounterMutex: CThreadFastMutex,
    pub m_boneFlags: CUtlVector<
        ::std::os::raw::c_int,
        CUtlMemory<::std::os::raw::c_int>,
    >,
    pub m_boneParent: CUtlVector<
        ::std::os::raw::c_int,
        CUtlMemory<::std::os::raw::c_int>,
    >,
    pub m_ActivityToSequence: CStudioHdr_CActivityToSequenceMapping,
    pub m_nPerfAnimatedBones: ::std::os::raw::c_int,
    pub m_nPerfUsedBones: ::std::os::raw::c_int,
    pub m_nPerfAnimationLayers: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug)]
pub struct CStudioHdr_CActivityToSequenceMapping {
    pub m_pSequenceTuples: *mut CStudioHdr_CActivityToSequenceMapping_SequenceTuple,
    pub m_iSequenceTuplesCount: ::std::os::raw::c_uint,
    pub m_bIsInitialized: bool,
    pub m_ActToSeqHash: CStudioHdr_CActivityToSequenceMapping_ActivityToValueIdxHash,
    pub m_expectedPStudioHdr: *const ::std::os::raw::c_void,
    pub m_expectedVModel: *const ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CStudioHdr_CActivityToSequenceMapping_HashValueType {
    pub activityIdx: ::std::os::raw::c_int,
    pub startingIdx: ::std::os::raw::c_int,
    pub count: ::std::os::raw::c_int,
    pub totalWeight: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CStudioHdr_CActivityToSequenceMapping_HashValueType_HashFuncs {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CStudioHdr_CActivityToSequenceMapping_SequenceTuple {
    pub seqnum: ::std::os::raw::c_short,
    pub weight: ::std::os::raw::c_short,
    pub pActivityModifiers: *mut CUtlSymbol,
    pub iNumActivityModifiers: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug)]
pub struct OptimizedModel_StripHeader_t {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct flexsetting_t {
    pub nameindex: ::std::os::raw::c_int,
    pub obsolete1: ::std::os::raw::c_int,
    pub numsettings: ::std::os::raw::c_int,
    pub index: ::std::os::raw::c_int,
    pub obsolete2: ::std::os::raw::c_int,
    pub settingindex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct flexsettinghdr_t {
    pub id: ::std::os::raw::c_int,
    pub version: ::std::os::raw::c_int,
    pub name: [::std::os::raw::c_char; 64usize],
    pub length: ::std::os::raw::c_int,
    pub numflexsettings: ::std::os::raw::c_int,
    pub flexsettingindex: ::std::os::raw::c_int,
    pub nameindex: ::std::os::raw::c_int,
    pub numindexes: ::std::os::raw::c_int,
    pub indexindex: ::std::os::raw::c_int,
    pub numkeys: ::std::os::raw::c_int,
    pub keynameindex: ::std::os::raw::c_int,
    pub keymappingindex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct flexweight_t {
    pub key: ::std::os::raw::c_int,
    pub weight: f32,
    pub influence: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudio_meshvertexdata_t {
    pub unused_modelvertexdata: ::std::os::raw::c_int,
    pub numLODVertexes: [::std::os::raw::c_int; 8usize],
    pub modelvertexdata: __BindgenOpaqueArray<[u32; 2usize]>,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudio_modelvertexdata_t {
    pub pVertexData: *const ::std::os::raw::c_void,
    pub pTangentData: *const ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioactivitymodifier_t {
    pub sznameindex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioanim_t {
    pub bone: byte,
    pub flags: byte,
    pub nextoffset: ::std::os::raw::c_short,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioanim_valueptr_t {
    pub offset: [::std::os::raw::c_short; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioanimblock_t {
    pub datastart: ::std::os::raw::c_int,
    pub dataend: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioanimdesc_t {
    pub baseptr: ::std::os::raw::c_int,
    pub sznameindex: ::std::os::raw::c_int,
    pub fps: f32,
    pub flags: ::std::os::raw::c_int,
    pub numframes: ::std::os::raw::c_int,
    pub nummovements: ::std::os::raw::c_int,
    pub movementindex: ::std::os::raw::c_int,
    pub unused1: [::std::os::raw::c_int; 6usize],
    pub animblock: ::std::os::raw::c_int,
    pub animindex: ::std::os::raw::c_int,
    pub numikrules: ::std::os::raw::c_int,
    pub ikruleindex: ::std::os::raw::c_int,
    pub animblockikruleindex: ::std::os::raw::c_int,
    pub numlocalhierarchy: ::std::os::raw::c_int,
    pub localhierarchyindex: ::std::os::raw::c_int,
    pub sectionindex: ::std::os::raw::c_int,
    pub sectionframes: ::std::os::raw::c_int,
    pub zeroframespan: ::std::os::raw::c_short,
    pub zeroframecount: ::std::os::raw::c_short,
    pub zeroframeindex: ::std::os::raw::c_int,
    pub zeroframestalltime: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioanimsections_t {
    pub animblock: ::std::os::raw::c_int,
    pub animindex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union mstudioanimvalue_t {
    pub num: mstudioanimvalue_t__bindgen_ty_1,
    pub value: ::std::os::raw::c_short,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioanimvalue_t__bindgen_ty_1 {
    pub valid: byte,
    pub total: byte,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioattachment_t {
    pub sznameindex: ::std::os::raw::c_int,
    pub flags: ::std::os::raw::c_uint,
    pub localbone: ::std::os::raw::c_int,
    pub local: matrix3x4_t,
    pub unused: [::std::os::raw::c_int; 8usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioautolayer_t {
    pub iSequence: ::std::os::raw::c_short,
    pub iPose: ::std::os::raw::c_short,
    pub flags: ::std::os::raw::c_int,
    pub start: f32,
    pub peak: f32,
    pub tail: f32,
    pub end: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiobbox_t {
    pub bone: ::std::os::raw::c_int,
    pub group: ::std::os::raw::c_int,
    pub bbmin: Vector,
    pub bbmax: Vector,
    pub szhitboxnameindex: ::std::os::raw::c_int,
    pub unused: [::std::os::raw::c_int; 8usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiobodyparts_t {
    pub sznameindex: ::std::os::raw::c_int,
    pub nummodels: ::std::os::raw::c_int,
    pub base: ::std::os::raw::c_int,
    pub modelindex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiobone_t {
    pub sznameindex: ::std::os::raw::c_int,
    pub parent: ::std::os::raw::c_int,
    pub bonecontroller: [::std::os::raw::c_int; 6usize],
    pub pos: Vector,
    pub quat: Quaternion,
    pub rot: RadianEuler,
    pub posscale: Vector,
    pub rotscale: Vector,
    pub poseToBone: matrix3x4_t,
    pub qAlignment: Quaternion,
    pub flags: ::std::os::raw::c_int,
    pub proctype: ::std::os::raw::c_int,
    pub procindex: ::std::os::raw::c_int,
    pub physicsbone: ::std::os::raw::c_int,
    pub surfacepropidx: ::std::os::raw::c_int,
    pub contents: ::std::os::raw::c_int,
    pub unused: [::std::os::raw::c_int; 8usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiobonecontroller_t {
    pub bone: ::std::os::raw::c_int,
    pub type_: ::std::os::raw::c_int,
    pub start: f32,
    pub end: f32,
    pub rest: ::std::os::raw::c_int,
    pub inputfield: ::std::os::raw::c_int,
    pub unused: [::std::os::raw::c_int; 8usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioboneflexdriver_t {
    pub m_nBoneIndex: ::std::os::raw::c_int,
    pub m_nControlCount: ::std::os::raw::c_int,
    pub m_nControlIndex: ::std::os::raw::c_int,
    pub unused: [::std::os::raw::c_int; 3usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioboneflexdrivercontrol_t {
    pub m_nBoneComponent: ::std::os::raw::c_int,
    pub m_nFlexControllerIndex: ::std::os::raw::c_int,
    pub m_flMin: f32,
    pub m_flMax: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioboneweight_t {
    pub weight: [f32; 3usize],
    pub bone: [::std::os::raw::c_char; 3usize],
    pub numbones: byte,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiocompressedikerror_t {
    pub scale: [f32; 6usize],
    pub offset: [::std::os::raw::c_short; 6usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioevent_t {
    pub cycle: f32,
    pub event: ::std::os::raw::c_int,
    pub type_: ::std::os::raw::c_int,
    pub options: [::std::os::raw::c_char; 64usize],
    pub szeventindex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioeyeball_t {
    pub sznameindex: ::std::os::raw::c_int,
    pub bone: ::std::os::raw::c_int,
    pub org: Vector,
    pub zoffset: f32,
    pub radius: f32,
    pub up: Vector,
    pub forward: Vector,
    pub texture: ::std::os::raw::c_int,
    pub unused1: ::std::os::raw::c_int,
    pub iris_scale: f32,
    pub unused2: ::std::os::raw::c_int,
    pub upperflexdesc: [::std::os::raw::c_int; 3usize],
    pub lowerflexdesc: [::std::os::raw::c_int; 3usize],
    pub uppertarget: [f32; 3usize],
    pub lowertarget: [f32; 3usize],
    pub upperlidflexdesc: ::std::os::raw::c_int,
    pub lowerlidflexdesc: ::std::os::raw::c_int,
    pub unused: [::std::os::raw::c_int; 4usize],
    pub m_bNonFACS: bool,
    pub unused3: [::std::os::raw::c_char; 3usize],
    pub unused4: [::std::os::raw::c_int; 7usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioflex_t {
    pub flexdesc: ::std::os::raw::c_int,
    pub target0: f32,
    pub target1: f32,
    pub target2: f32,
    pub target3: f32,
    pub numverts: ::std::os::raw::c_int,
    pub vertindex: ::std::os::raw::c_int,
    pub flexpair: ::std::os::raw::c_int,
    pub vertanimtype: ::std::os::raw::c_uchar,
    pub unusedchar: [::std::os::raw::c_uchar; 3usize],
    pub unused: [::std::os::raw::c_int; 6usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioflexcontroller_t {
    pub sztypeindex: ::std::os::raw::c_int,
    pub sznameindex: ::std::os::raw::c_int,
    pub localToGlobal: ::std::os::raw::c_int,
    pub min: f32,
    pub max: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioflexcontrollerui_t {
    pub sznameindex: ::std::os::raw::c_int,
    pub szindex0: ::std::os::raw::c_int,
    pub szindex1: ::std::os::raw::c_int,
    pub szindex2: ::std::os::raw::c_int,
    pub remaptype: ::std::os::raw::c_uchar,
    pub stereo: bool,
    pub unused: [byte; 2usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioflexdesc_t {
    pub szFACSindex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct mstudioflexop_t {
    pub op: ::std::os::raw::c_int,
    pub d: mstudioflexop_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union mstudioflexop_t__bindgen_ty_1 {
    pub index: ::std::os::raw::c_int,
    pub value: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioflexrule_t {
    pub flex: ::std::os::raw::c_int,
    pub numops: ::std::os::raw::c_int,
    pub opindex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiohitboxset_t {
    pub sznameindex: ::std::os::raw::c_int,
    pub numhitboxes: ::std::os::raw::c_int,
    pub hitboxindex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioikchain_t {
    pub sznameindex: ::std::os::raw::c_int,
    pub linktype: ::std::os::raw::c_int,
    pub numlinks: ::std::os::raw::c_int,
    pub linkindex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioikerror_t {
    pub pos: Vector,
    pub q: Quaternion,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioiklink_t {
    pub bone: ::std::os::raw::c_int,
    pub kneeDir: Vector,
    pub unused0: Vector,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioiklock_t {
    pub chain: ::std::os::raw::c_int,
    pub flPosWeight: f32,
    pub flLocalQWeight: f32,
    pub flags: ::std::os::raw::c_int,
    pub unused: [::std::os::raw::c_int; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioikrule_t {
    pub index: ::std::os::raw::c_int,
    pub type_: ::std::os::raw::c_int,
    pub chain: ::std::os::raw::c_int,
    pub bone: ::std::os::raw::c_int,
    pub slot: ::std::os::raw::c_int,
    pub height: f32,
    pub radius: f32,
    pub floor: f32,
    pub pos: Vector,
    pub q: Quaternion,
    pub compressedikerrorindex: ::std::os::raw::c_int,
    pub unused2: ::std::os::raw::c_int,
    pub iStart: ::std::os::raw::c_int,
    pub ikerrorindex: ::std::os::raw::c_int,
    pub start: f32,
    pub peak: f32,
    pub tail: f32,
    pub end: f32,
    pub unused3: f32,
    pub contact: f32,
    pub drop: f32,
    pub top: f32,
    pub unused6: ::std::os::raw::c_int,
    pub unused7: ::std::os::raw::c_int,
    pub unused8: ::std::os::raw::c_int,
    pub szattachmentindex: ::std::os::raw::c_int,
    pub unused: [::std::os::raw::c_int; 7usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiolinearbone_t {
    pub numbones: ::std::os::raw::c_int,
    pub flagsindex: ::std::os::raw::c_int,
    pub parentindex: ::std::os::raw::c_int,
    pub posindex: ::std::os::raw::c_int,
    pub quatindex: ::std::os::raw::c_int,
    pub rotindex: ::std::os::raw::c_int,
    pub posetoboneindex: ::std::os::raw::c_int,
    pub posscaleindex: ::std::os::raw::c_int,
    pub rotscaleindex: ::std::os::raw::c_int,
    pub qalignmentindex: ::std::os::raw::c_int,
    pub unused: [::std::os::raw::c_int; 6usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiolocalhierarchy_t {
    pub iBone: ::std::os::raw::c_int,
    pub iNewParent: ::std::os::raw::c_int,
    pub start: f32,
    pub peak: f32,
    pub tail: f32,
    pub end: f32,
    pub iStart: ::std::os::raw::c_int,
    pub localanimindex: ::std::os::raw::c_int,
    pub unused: [::std::os::raw::c_int; 4usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiomesh_t {
    pub material: ::std::os::raw::c_int,
    pub modelindex: ::std::os::raw::c_int,
    pub numvertices: ::std::os::raw::c_int,
    pub vertexoffset: ::std::os::raw::c_int,
    pub numflexes: ::std::os::raw::c_int,
    pub flexindex: ::std::os::raw::c_int,
    pub materialtype: ::std::os::raw::c_int,
    pub materialparam: ::std::os::raw::c_int,
    pub meshid: ::std::os::raw::c_int,
    pub center: Vector,
    pub vertexdata: mstudio_meshvertexdata_t,
    pub unused: [::std::os::raw::c_int; 6usize],
}
#[repr(C, packed(4))]
#[derive(Debug, Copy, Clone)]
pub struct mstudiomodel_t {
    pub name: [::std::os::raw::c_char; 64usize],
    pub type_: ::std::os::raw::c_int,
    pub boundingradius: f32,
    pub nummeshes: ::std::os::raw::c_int,
    pub meshindex: ::std::os::raw::c_int,
    pub numvertices: ::std::os::raw::c_int,
    pub vertexindex: ::std::os::raw::c_int,
    pub tangentsindex: ::std::os::raw::c_int,
    pub numattachments: ::std::os::raw::c_int,
    pub attachmentindex: ::std::os::raw::c_int,
    pub numeyeballs: ::std::os::raw::c_int,
    pub eyeballindex: ::std::os::raw::c_int,
    pub vertexdata: mstudio_modelvertexdata_t,
    pub unused: [::std::os::raw::c_int; 6usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiomodelgroup_t {
    pub szlabelindex: ::std::os::raw::c_int,
    pub sznameindex: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiomouth_t {
    pub bone: ::std::os::raw::c_int,
    pub forward: Vector,
    pub flexdesc: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiomovement_t {
    pub endframe: ::std::os::raw::c_int,
    pub motionflags: ::std::os::raw::c_int,
    pub v0: f32,
    pub v1: f32,
    pub angle: f32,
    pub vector: Vector,
    pub position: Vector,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioposeparamdesc_t {
    pub sznameindex: ::std::os::raw::c_int,
    pub flags: ::std::os::raw::c_int,
    pub start: f32,
    pub end: f32,
    pub loop_: f32,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudioseqdesc_t {
    pub baseptr: ::std::os::raw::c_int,
    pub szlabelindex: ::std::os::raw::c_int,
    pub szactivitynameindex: ::std::os::raw::c_int,
    pub flags: ::std::os::raw::c_int,
    pub activity: ::std::os::raw::c_int,
    pub actweight: ::std::os::raw::c_int,
    pub numevents: ::std::os::raw::c_int,
    pub eventindex: ::std::os::raw::c_int,
    pub bbmin: Vector,
    pub bbmax: Vector,
    pub numblends: ::std::os::raw::c_int,
    pub animindexindex: ::std::os::raw::c_int,
    pub movementindex: ::std::os::raw::c_int,
    pub groupsize: [::std::os::raw::c_int; 2usize],
    pub paramindex: [::std::os::raw::c_int; 2usize],
    pub paramstart: [f32; 2usize],
    pub paramend: [f32; 2usize],
    pub paramparent: ::std::os::raw::c_int,
    pub fadeintime: f32,
    pub fadeouttime: f32,
    pub localentrynode: ::std::os::raw::c_int,
    pub localexitnode: ::std::os::raw::c_int,
    pub nodeflags: ::std::os::raw::c_int,
    pub entryphase: f32,
    pub exitphase: f32,
    pub lastframe: f32,
    pub nextseq: ::std::os::raw::c_int,
    pub pose: ::std::os::raw::c_int,
    pub numikrules: ::std::os::raw::c_int,
    pub numautolayers: ::std::os::raw::c_int,
    pub autolayerindex: ::std::os::raw::c_int,
    pub weightlistindex: ::std::os::raw::c_int,
    pub posekeyindex: ::std::os::raw::c_int,
    pub numiklocks: ::std::os::raw::c_int,
    pub iklockindex: ::std::os::raw::c_int,
    pub keyvalueindex: ::std::os::raw::c_int,
    pub keyvaluesize: ::std::os::raw::c_int,
    pub cycleposeindex: ::std::os::raw::c_int,
    pub activitymodifierindex: ::std::os::raw::c_int,
    pub numactivitymodifiers: ::std::os::raw::c_int,
    pub unused: [::std::os::raw::c_int; 5usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiosrcbonetransform_t {
    pub sznameindex: ::std::os::raw::c_int,
    pub pretransform: matrix3x4_t,
    pub posttransform: matrix3x4_t,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiotexture_t {
    pub sznameindex: ::std::os::raw::c_int,
    pub flags: ::std::os::raw::c_int,
    pub used: ::std::os::raw::c_int,
    pub unused1: ::std::os::raw::c_int,
    pub material: *mut IMaterial,
    pub clientmaterial: *mut ::std::os::raw::c_void,
    pub unused: [::std::os::raw::c_int; 8usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct mstudiovertanim_t {
    pub index: ::std::os::raw::c_ushort,
    pub speed: byte,
    pub side: byte,
    pub __bindgen_anon_1: mstudiovertanim_t__bindgen_ty_1,
    pub __bindgen_anon_2: mstudiovertanim_t__bindgen_ty_2,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiovertanim_t_CSortByIndex {
    pub _address: u8,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union mstudiovertanim_t__bindgen_ty_1 {
    pub delta: [::std::os::raw::c_short; 3usize],
    pub flDelta: [float16; 3usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union mstudiovertanim_t__bindgen_ty_2 {
    pub ndelta: [::std::os::raw::c_short; 3usize],
    pub flNDelta: [float16; 3usize],
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct mstudiovertanim_wrinkle_t {
    pub _base: mstudiovertanim_t,
    pub wrinkledelta: ::std::os::raw::c_short,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mstudiovertex_t {
    pub m_BoneWeights: mstudioboneweight_t,
    pub m_vecPosition: Vector,
    pub m_vecNormal: Vector,
    pub m_vecTexCoord: Vector2D,
}
/// Opaque: bindgen cannot express this record's C++ layout, so only its size and alignment are kept.
///
/// Generated as fields, its Rust alignment is 8, but C++ says 4.
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct serializedstudioptr_t {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct studiohdr2_t {
    pub numsrcbonetransform: ::std::os::raw::c_int,
    pub srcbonetransformindex: ::std::os::raw::c_int,
    pub illumpositionattachmentindex: ::std::os::raw::c_int,
    pub flMaxEyeDeflection: f32,
    pub linearboneindex: ::std::os::raw::c_int,
    pub sznameindex: ::std::os::raw::c_int,
    pub m_nBoneFlexDriverCount: ::std::os::raw::c_int,
    pub m_nBoneFlexDriverIndex: ::std::os::raw::c_int,
    pub virtualModel: __BindgenOpaqueArray<[u32; 2usize]>,
    pub animblockModel: __BindgenOpaqueArray<[u32; 2usize]>,
    pub pVertexBase: __BindgenOpaqueArray<[u32; 2usize]>,
    pub pIndexBase: __BindgenOpaqueArray<[u32; 2usize]>,
    pub reserved: [::std::os::raw::c_int; 48usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct studiohdr_t {
    pub id: ::std::os::raw::c_int,
    pub version: ::std::os::raw::c_int,
    pub checksum: ::std::os::raw::c_int,
    pub name: [::std::os::raw::c_char; 64usize],
    pub length: ::std::os::raw::c_int,
    pub eyeposition: Vector,
    pub illumposition: Vector,
    pub hull_min: Vector,
    pub hull_max: Vector,
    pub view_bbmin: Vector,
    pub view_bbmax: Vector,
    pub flags: ::std::os::raw::c_int,
    pub numbones: ::std::os::raw::c_int,
    pub boneindex: ::std::os::raw::c_int,
    pub numbonecontrollers: ::std::os::raw::c_int,
    pub bonecontrollerindex: ::std::os::raw::c_int,
    pub numhitboxsets: ::std::os::raw::c_int,
    pub hitboxsetindex: ::std::os::raw::c_int,
    pub numlocalanim: ::std::os::raw::c_int,
    pub localanimindex: ::std::os::raw::c_int,
    pub numlocalseq: ::std::os::raw::c_int,
    pub localseqindex: ::std::os::raw::c_int,
    pub activitylistversion: ::std::os::raw::c_int,
    pub eventsindexed: ::std::os::raw::c_int,
    pub numtextures: ::std::os::raw::c_int,
    pub textureindex: ::std::os::raw::c_int,
    pub numcdtextures: ::std::os::raw::c_int,
    pub cdtextureindex: ::std::os::raw::c_int,
    pub numskinref: ::std::os::raw::c_int,
    pub numskinfamilies: ::std::os::raw::c_int,
    pub skinindex: ::std::os::raw::c_int,
    pub numbodyparts: ::std::os::raw::c_int,
    pub bodypartindex: ::std::os::raw::c_int,
    pub numlocalattachments: ::std::os::raw::c_int,
    pub localattachmentindex: ::std::os::raw::c_int,
    pub numlocalnodes: ::std::os::raw::c_int,
    pub localnodeindex: ::std::os::raw::c_int,
    pub localnodenameindex: ::std::os::raw::c_int,
    pub numflexdesc: ::std::os::raw::c_int,
    pub flexdescindex: ::std::os::raw::c_int,
    pub numflexcontrollers: ::std::os::raw::c_int,
    pub flexcontrollerindex: ::std::os::raw::c_int,
    pub numflexrules: ::std::os::raw::c_int,
    pub flexruleindex: ::std::os::raw::c_int,
    pub numikchains: ::std::os::raw::c_int,
    pub ikchainindex: ::std::os::raw::c_int,
    pub nummouths: ::std::os::raw::c_int,
    pub mouthindex: ::std::os::raw::c_int,
    pub numlocalposeparameters: ::std::os::raw::c_int,
    pub localposeparamindex: ::std::os::raw::c_int,
    pub surfacepropindex: ::std::os::raw::c_int,
    pub keyvalueindex: ::std::os::raw::c_int,
    pub keyvaluesize: ::std::os::raw::c_int,
    pub numlocalikautoplaylocks: ::std::os::raw::c_int,
    pub localikautoplaylockindex: ::std::os::raw::c_int,
    pub mass: f32,
    pub contents: ::std::os::raw::c_int,
    pub numincludemodels: ::std::os::raw::c_int,
    pub includemodelindex: ::std::os::raw::c_int,
    pub unused_virtualModel: ::std::os::raw::c_int,
    pub szanimblocknameindex: ::std::os::raw::c_int,
    pub numanimblocks: ::std::os::raw::c_int,
    pub animblockindex: ::std::os::raw::c_int,
    pub unused_animblockModel: ::std::os::raw::c_int,
    pub bonetablebynameindex: ::std::os::raw::c_int,
    pub unused_pVertexBase: ::std::os::raw::c_int,
    pub unused_pIndexBase: ::std::os::raw::c_int,
    pub constdirectionallightdot: byte,
    pub rootLOD: byte,
    pub numAllowedRootLODs: byte,
    pub unused: [byte; 1usize],
    pub unused4: ::std::os::raw::c_int,
    pub numflexcontrollerui: ::std::os::raw::c_int,
    pub flexcontrolleruiindex: ::std::os::raw::c_int,
    pub flVertAnimFixedPointScale: f32,
    pub unused3: [::std::os::raw::c_int; 1usize],
    pub studiohdr2index: ::std::os::raw::c_int,
    pub unused2: [::std::os::raw::c_int; 1usize],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct studiohwdata_t {
    pub m_RootLOD: ::std::os::raw::c_int,
    pub m_NumLODs: ::std::os::raw::c_int,
    pub m_pLODs: *mut studioloddata_t,
    pub m_NumStudioMeshes: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct studioloddata_t {
    pub m_pMeshData: *mut studiomeshdata_t,
    pub m_SwitchPoint: f32,
    pub numMaterials: ::std::os::raw::c_int,
    pub ppMaterials: *mut *mut IMaterial,
    pub pMaterialFlags: *mut ::std::os::raw::c_int,
    pub m_pHWMorphDecalBoneRemap: *mut ::std::os::raw::c_int,
    pub m_nDecalBoneCount: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct studiomeshdata_t {
    pub m_NumGroup: ::std::os::raw::c_int,
    pub m_pMeshGroup: *mut studiomeshgroup_t,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct studiomeshgroup_t {
    pub m_pMesh: *mut IMesh,
    pub m_NumStrips: ::std::os::raw::c_int,
    pub m_Flags: ::std::os::raw::c_int,
    pub m_pStripData: *mut OptimizedModel_StripHeader_t,
    pub m_pGroupIndexToMeshIndex: *mut ::std::os::raw::c_ushort,
    pub m_NumVertices: ::std::os::raw::c_int,
    pub m_pUniqueTris: *mut ::std::os::raw::c_int,
    pub m_pIndices: *mut ::std::os::raw::c_ushort,
    pub m_MeshNeedsRestore: bool,
    pub m_ColorMeshID: ::std::os::raw::c_short,
    pub m_pMorph: *mut IMorph,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct thinModelVertices_t {
    pub m_numBoneInfluences: ::std::os::raw::c_int,
    pub m_boneWeights: *mut f32,
    pub m_boneIndices: *mut ::std::os::raw::c_char,
    pub m_vecPositions: *mut Vector,
    pub m_vecNormals: *mut ::std::os::raw::c_ushort,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct vertexFileHeader_t {
    pub id: ::std::os::raw::c_int,
    pub version: ::std::os::raw::c_int,
    pub checksum: ::std::os::raw::c_int,
    pub numLODs: ::std::os::raw::c_int,
    pub numLODVertexes: [::std::os::raw::c_int; 8usize],
    pub numFixups: ::std::os::raw::c_int,
    pub fixupTableStart: ::std::os::raw::c_int,
    pub vertexDataStart: ::std::os::raw::c_int,
    pub tangentDataStart: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virtualgeneric_t {
    pub group: ::std::os::raw::c_int,
    pub index: ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug)]
pub struct virtualgroup_t {
    pub cache: *mut ::std::os::raw::c_void,
    pub boneMap: CUtlVector<::std::os::raw::c_int, CUtlMemory<::std::os::raw::c_int>>,
    pub masterBone: CUtlVector<::std::os::raw::c_int, CUtlMemory<::std::os::raw::c_int>>,
    pub masterSeq: CUtlVector<::std::os::raw::c_int, CUtlMemory<::std::os::raw::c_int>>,
    pub masterAnim: CUtlVector<::std::os::raw::c_int, CUtlMemory<::std::os::raw::c_int>>,
    pub masterAttachment: CUtlVector<
        ::std::os::raw::c_int,
        CUtlMemory<::std::os::raw::c_int>,
    >,
    pub masterPose: CUtlVector<::std::os::raw::c_int, CUtlMemory<::std::os::raw::c_int>>,
    pub masterNode: CUtlVector<::std::os::raw::c_int, CUtlMemory<::std::os::raw::c_int>>,
}
#[repr(C)]
#[derive(Debug)]
pub struct virtualmodel_t {
    pub m_Lock: CThreadFastMutex,
    pub m_seq: CUtlVector<virtualsequence_t, CUtlMemory<virtualsequence_t>>,
    pub m_anim: CUtlVector<virtualgeneric_t, CUtlMemory<virtualgeneric_t>>,
    pub m_attachment: CUtlVector<virtualgeneric_t, CUtlMemory<virtualgeneric_t>>,
    pub m_pose: CUtlVector<virtualgeneric_t, CUtlMemory<virtualgeneric_t>>,
    pub m_group: CUtlVector<virtualgroup_t, CUtlMemory<virtualgroup_t>>,
    pub m_node: CUtlVector<virtualgeneric_t, CUtlMemory<virtualgeneric_t>>,
    pub m_iklock: CUtlVector<virtualgeneric_t, CUtlMemory<virtualgeneric_t>>,
    pub m_autoplaySequences: CUtlVector<
        ::std::os::raw::c_ushort,
        CUtlMemory<::std::os::raw::c_ushort>,
    >,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct virtualsequence_t {
    pub flags: ::std::os::raw::c_int,
    pub activity: ::std::os::raw::c_int,
    pub group: ::std::os::raw::c_int,
    pub index: ::std::os::raw::c_int,
}
include!("layout_assertions.rs");