spring_ai_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.69.5 */
2
3pub const _VCRT_COMPILER_PREPROCESSOR: u32 = 1;
4pub const _SAL_VERSION: u32 = 20;
5pub const __SAL_H_VERSION: u32 = 180000000;
6pub const _USE_DECLSPECS_FOR_SAL: u32 = 0;
7pub const _USE_ATTRIBUTES_FOR_SAL: u32 = 0;
8pub const _CRT_PACKING: u32 = 8;
9pub const _HAS_EXCEPTIONS: u32 = 1;
10pub const _STL_LANG: u32 = 0;
11pub const _HAS_CXX17: u32 = 0;
12pub const _HAS_CXX20: u32 = 0;
13pub const _HAS_CXX23: u32 = 0;
14pub const _HAS_NODISCARD: u32 = 0;
15pub const _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE: u32 = 1;
16pub const _CRT_BUILD_DESKTOP_APP: u32 = 1;
17pub const _ARGMAX: u32 = 100;
18pub const _CRT_INT_MAX: u32 = 2147483647;
19pub const _CRT_FUNCTIONS_REQUIRED: u32 = 1;
20pub const _CRT_HAS_CXX17: u32 = 0;
21pub const _CRT_HAS_C11: u32 = 1;
22pub const _CRT_INTERNAL_NONSTDC_NAMES: u32 = 1;
23pub const __STDC_SECURE_LIB__: u32 = 200411;
24pub const __GOT_SECURE_LIB__: u32 = 200411;
25pub const __STDC_WANT_SECURE_LIB__: u32 = 1;
26pub const _SECURECRT_FILL_BUFFER_PATTERN: u32 = 254;
27pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES: u32 = 0;
28pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT: u32 = 0;
29pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES: u32 = 1;
30pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY: u32 = 0;
31pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY: u32 = 0;
32pub const _CRT_INTERNAL_STDIO_SYMBOL_PREFIX: &[u8; 1] = b"\0";
33pub const _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION: u32 = 1;
34pub const _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR: u32 = 2;
35pub const _CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS: u32 = 4;
36pub const _CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY: u32 = 8;
37pub const _CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS: u32 = 16;
38pub const _CRT_INTERNAL_PRINTF_STANDARD_ROUNDING: u32 = 32;
39pub const _CRT_INTERNAL_SCANF_SECURECRT: u32 = 1;
40pub const _CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS: u32 = 2;
41pub const _CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY: u32 = 4;
42pub const BUFSIZ: u32 = 512;
43pub const _NSTREAM_: u32 = 512;
44pub const _IOB_ENTRIES: u32 = 3;
45pub const EOF: i32 = -1;
46pub const _IOFBF: u32 = 0;
47pub const _IOLBF: u32 = 64;
48pub const _IONBF: u32 = 4;
49pub const L_tmpnam: u32 = 260;
50pub const L_tmpnam_s: u32 = 260;
51pub const SEEK_CUR: u32 = 1;
52pub const SEEK_END: u32 = 2;
53pub const SEEK_SET: u32 = 0;
54pub const FILENAME_MAX: u32 = 260;
55pub const FOPEN_MAX: u32 = 20;
56pub const _SYS_OPEN: u32 = 20;
57pub const TMP_MAX: u32 = 2147483647;
58pub const TMP_MAX_S: u32 = 2147483647;
59pub const _TMP_MAX_S: u32 = 2147483647;
60pub const SYS_OPEN: u32 = 20;
61pub const __bool_true_false_are_defined: u32 = 1;
62pub const false_: u32 = 0;
63pub const true_: u32 = 1;
64pub const __is_x86_arch__: u32 = 1;
65pub const __archBits__: u32 = 64;
66pub const __SIZE_T_PRINTF_FORMAT__: &[u8; 5] = b"%llu\0";
67pub const _STPF_: &[u8; 5] = b"%llu\0";
68pub const sPS_WIN32: &[u8; 2] = b"\\\0";
69pub const sPS_POSIX: &[u8; 2] = b"/\0";
70pub const sPS: &[u8; 2] = b"\\\0";
71pub const cPS_WIN32: u8 = 92u8;
72pub const cPS_POSIX: u8 = 47u8;
73pub const cPS: u8 = 92u8;
74pub const sPD_WIN32: &[u8; 2] = b";\0";
75pub const sPD_POSIX: &[u8; 2] = b":\0";
76pub const sPD: &[u8; 2] = b";\0";
77pub const cPD_WIN32: u8 = 59u8;
78pub const cPD_POSIX: u8 = 58u8;
79pub const cPD: u8 = 59u8;
80pub const ENGINE_VERSION_NUMBER: u32 = 1000;
81pub const AIINTERFACE_ABI_VERSION_WARNING: u32 = 0;
82pub const MAX_SKIRMISH_AIS: u32 = 255;
83pub const AI_INTERFACES_DATA_DIR: &[u8; 14] = b"AI/Interfaces\0";
84pub const SKIRMISH_AI_DATA_DIR: &[u8; 12] = b"AI/Skirmish\0";
85pub const MAX_RESPONSE_SIZE: u32 = 10240;
86pub const COMMAND_TO_ID_ENGINE: i32 = -1;
87pub const UNIT_COMMAND_BUILD_NO_FACING: i32 = -1;
88pub const AI_INTERFACE_PROPERTY_DATA_DIR: &[u8; 8] = b"dataDir\0";
89pub const AI_INTERFACE_PROPERTY_DATA_DIR_COMMON: &[u8; 14] = b"dataDirCommon\0";
90pub const AI_INTERFACE_PROPERTY_SHORT_NAME: &[u8; 10] = b"shortName\0";
91pub const AI_INTERFACE_PROPERTY_VERSION: &[u8; 8] = b"version\0";
92pub const AI_INTERFACE_PROPERTY_NAME: &[u8; 5] = b"name\0";
93pub const AI_INTERFACE_PROPERTY_DESCRIPTION: &[u8; 12] = b"description\0";
94pub const AI_INTERFACE_PROPERTY_URL: &[u8; 4] = b"url\0";
95pub const AI_INTERFACE_PROPERTY_SUPPORTED_LANGUAGES: &[u8; 19] = b"supportedLanguages\0";
96pub const AI_INTERFACE_PROPERTY_ENGINE_VERSION: &[u8; 14] = b"engineVersion\0";
97pub const AI_INTERFACE_PROPERTY_SUPPORTS_LOOKUP: &[u8; 15] = b"supportsLookup\0";
98pub const SKIRMISH_AI_PROPERTY_DATA_DIR: &[u8; 8] = b"dataDir\0";
99pub const SKIRMISH_AI_PROPERTY_DATA_DIR_COMMON: &[u8; 14] = b"dataDirCommon\0";
100pub const SKIRMISH_AI_PROPERTY_SHORT_NAME: &[u8; 10] = b"shortName\0";
101pub const SKIRMISH_AI_PROPERTY_VERSION: &[u8; 8] = b"version\0";
102pub const SKIRMISH_AI_PROPERTY_NAME: &[u8; 5] = b"name\0";
103pub const SKIRMISH_AI_PROPERTY_DESCRIPTION: &[u8; 12] = b"description\0";
104pub const SKIRMISH_AI_PROPERTY_URL: &[u8; 4] = b"url\0";
105pub const SKIRMISH_AI_PROPERTY_LOAD_SUPPORTED: &[u8; 14] = b"loadSupported\0";
106pub const SKIRMISH_AI_PROPERTY_ENGINE_VERSION: &[u8; 14] = b"engineVersion\0";
107pub const SKIRMISH_AI_PROPERTY_INTERFACE_SHORT_NAME: &[u8; 19] = b"interfaceShortName\0";
108pub const SKIRMISH_AI_PROPERTY_INTERFACE_VERSION: &[u8; 17] = b"interfaceVersion\0";
109pub type va_list = *mut ::std::os::raw::c_char;
110extern "C" {
111    pub fn __va_start(arg1: *mut *mut ::std::os::raw::c_char, ...);
112}
113pub type __vcrt_bool = bool;
114pub type wchar_t = ::std::os::raw::c_ushort;
115extern "C" {
116    pub fn __security_init_cookie();
117}
118extern "C" {
119    pub fn __security_check_cookie(_StackCookie: usize);
120}
121extern "C" {
122    pub fn __report_gsfailure(_StackCookie: usize) -> !;
123}
124extern "C" {
125    pub static mut __security_cookie: usize;
126}
127pub type __crt_bool = bool;
128extern "C" {
129    pub fn _invalid_parameter_noinfo();
130}
131extern "C" {
132    pub fn _invalid_parameter_noinfo_noreturn() -> !;
133}
134extern "C" {
135    pub fn _invoke_watson(
136        _Expression: *const wchar_t,
137        _FunctionName: *const wchar_t,
138        _FileName: *const wchar_t,
139        _LineNo: ::std::os::raw::c_uint,
140        _Reserved: usize,
141    ) -> !;
142}
143pub type errno_t = ::std::os::raw::c_int;
144pub type wint_t = ::std::os::raw::c_ushort;
145pub type wctype_t = ::std::os::raw::c_ushort;
146pub type __time32_t = ::std::os::raw::c_long;
147pub type __time64_t = ::std::os::raw::c_longlong;
148#[repr(C)]
149#[derive(Debug, Copy, Clone)]
150pub struct __crt_locale_data_public {
151    pub _locale_pctype: *const ::std::os::raw::c_ushort,
152    pub _locale_mb_cur_max: ::std::os::raw::c_int,
153    pub _locale_lc_codepage: ::std::os::raw::c_uint,
154}
155#[test]
156fn bindgen_test_layout___crt_locale_data_public() {
157    const UNINIT: ::std::mem::MaybeUninit<__crt_locale_data_public> =
158        ::std::mem::MaybeUninit::uninit();
159    let ptr = UNINIT.as_ptr();
160    assert_eq!(
161        ::std::mem::size_of::<__crt_locale_data_public>(),
162        16usize,
163        concat!("Size of: ", stringify!(__crt_locale_data_public))
164    );
165    assert_eq!(
166        ::std::mem::align_of::<__crt_locale_data_public>(),
167        8usize,
168        concat!("Alignment of ", stringify!(__crt_locale_data_public))
169    );
170    assert_eq!(
171        unsafe { ::std::ptr::addr_of!((*ptr)._locale_pctype) as usize - ptr as usize },
172        0usize,
173        concat!(
174            "Offset of field: ",
175            stringify!(__crt_locale_data_public),
176            "::",
177            stringify!(_locale_pctype)
178        )
179    );
180    assert_eq!(
181        unsafe { ::std::ptr::addr_of!((*ptr)._locale_mb_cur_max) as usize - ptr as usize },
182        8usize,
183        concat!(
184            "Offset of field: ",
185            stringify!(__crt_locale_data_public),
186            "::",
187            stringify!(_locale_mb_cur_max)
188        )
189    );
190    assert_eq!(
191        unsafe { ::std::ptr::addr_of!((*ptr)._locale_lc_codepage) as usize - ptr as usize },
192        12usize,
193        concat!(
194            "Offset of field: ",
195            stringify!(__crt_locale_data_public),
196            "::",
197            stringify!(_locale_lc_codepage)
198        )
199    );
200}
201#[repr(C)]
202#[derive(Debug, Copy, Clone)]
203pub struct __crt_locale_pointers {
204    pub locinfo: *mut __crt_locale_data,
205    pub mbcinfo: *mut __crt_multibyte_data,
206}
207#[test]
208fn bindgen_test_layout___crt_locale_pointers() {
209    const UNINIT: ::std::mem::MaybeUninit<__crt_locale_pointers> =
210        ::std::mem::MaybeUninit::uninit();
211    let ptr = UNINIT.as_ptr();
212    assert_eq!(
213        ::std::mem::size_of::<__crt_locale_pointers>(),
214        16usize,
215        concat!("Size of: ", stringify!(__crt_locale_pointers))
216    );
217    assert_eq!(
218        ::std::mem::align_of::<__crt_locale_pointers>(),
219        8usize,
220        concat!("Alignment of ", stringify!(__crt_locale_pointers))
221    );
222    assert_eq!(
223        unsafe { ::std::ptr::addr_of!((*ptr).locinfo) as usize - ptr as usize },
224        0usize,
225        concat!(
226            "Offset of field: ",
227            stringify!(__crt_locale_pointers),
228            "::",
229            stringify!(locinfo)
230        )
231    );
232    assert_eq!(
233        unsafe { ::std::ptr::addr_of!((*ptr).mbcinfo) as usize - ptr as usize },
234        8usize,
235        concat!(
236            "Offset of field: ",
237            stringify!(__crt_locale_pointers),
238            "::",
239            stringify!(mbcinfo)
240        )
241    );
242}
243pub type _locale_t = *mut __crt_locale_pointers;
244#[repr(C)]
245#[derive(Debug, Copy, Clone)]
246pub struct _Mbstatet {
247    pub _Wchar: ::std::os::raw::c_ulong,
248    pub _Byte: ::std::os::raw::c_ushort,
249    pub _State: ::std::os::raw::c_ushort,
250}
251#[test]
252fn bindgen_test_layout__Mbstatet() {
253    const UNINIT: ::std::mem::MaybeUninit<_Mbstatet> = ::std::mem::MaybeUninit::uninit();
254    let ptr = UNINIT.as_ptr();
255    assert_eq!(
256        ::std::mem::size_of::<_Mbstatet>(),
257        8usize,
258        concat!("Size of: ", stringify!(_Mbstatet))
259    );
260    assert_eq!(
261        ::std::mem::align_of::<_Mbstatet>(),
262        4usize,
263        concat!("Alignment of ", stringify!(_Mbstatet))
264    );
265    assert_eq!(
266        unsafe { ::std::ptr::addr_of!((*ptr)._Wchar) as usize - ptr as usize },
267        0usize,
268        concat!(
269            "Offset of field: ",
270            stringify!(_Mbstatet),
271            "::",
272            stringify!(_Wchar)
273        )
274    );
275    assert_eq!(
276        unsafe { ::std::ptr::addr_of!((*ptr)._Byte) as usize - ptr as usize },
277        4usize,
278        concat!(
279            "Offset of field: ",
280            stringify!(_Mbstatet),
281            "::",
282            stringify!(_Byte)
283        )
284    );
285    assert_eq!(
286        unsafe { ::std::ptr::addr_of!((*ptr)._State) as usize - ptr as usize },
287        6usize,
288        concat!(
289            "Offset of field: ",
290            stringify!(_Mbstatet),
291            "::",
292            stringify!(_State)
293        )
294    );
295}
296pub type mbstate_t = _Mbstatet;
297pub type time_t = __time64_t;
298pub type rsize_t = usize;
299#[repr(C)]
300#[derive(Debug, Copy, Clone)]
301pub struct _iobuf {
302    pub _Placeholder: *mut ::std::os::raw::c_void,
303}
304#[test]
305fn bindgen_test_layout__iobuf() {
306    const UNINIT: ::std::mem::MaybeUninit<_iobuf> = ::std::mem::MaybeUninit::uninit();
307    let ptr = UNINIT.as_ptr();
308    assert_eq!(
309        ::std::mem::size_of::<_iobuf>(),
310        8usize,
311        concat!("Size of: ", stringify!(_iobuf))
312    );
313    assert_eq!(
314        ::std::mem::align_of::<_iobuf>(),
315        8usize,
316        concat!("Alignment of ", stringify!(_iobuf))
317    );
318    assert_eq!(
319        unsafe { ::std::ptr::addr_of!((*ptr)._Placeholder) as usize - ptr as usize },
320        0usize,
321        concat!(
322            "Offset of field: ",
323            stringify!(_iobuf),
324            "::",
325            stringify!(_Placeholder)
326        )
327    );
328}
329pub type FILE = _iobuf;
330extern "C" {
331    pub fn __acrt_iob_func(_Ix: ::std::os::raw::c_uint) -> *mut FILE;
332}
333extern "C" {
334    pub fn fgetwc(_Stream: *mut FILE) -> wint_t;
335}
336extern "C" {
337    pub fn _fgetwchar() -> wint_t;
338}
339extern "C" {
340    pub fn fputwc(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
341}
342extern "C" {
343    pub fn _fputwchar(_Character: wchar_t) -> wint_t;
344}
345extern "C" {
346    pub fn getwc(_Stream: *mut FILE) -> wint_t;
347}
348extern "C" {
349    pub fn getwchar() -> wint_t;
350}
351extern "C" {
352    pub fn fgetws(
353        _Buffer: *mut wchar_t,
354        _BufferCount: ::std::os::raw::c_int,
355        _Stream: *mut FILE,
356    ) -> *mut wchar_t;
357}
358extern "C" {
359    pub fn fputws(_Buffer: *const wchar_t, _Stream: *mut FILE) -> ::std::os::raw::c_int;
360}
361extern "C" {
362    pub fn _getws_s(_Buffer: *mut wchar_t, _BufferCount: usize) -> *mut wchar_t;
363}
364extern "C" {
365    pub fn putwc(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
366}
367extern "C" {
368    pub fn putwchar(_Character: wchar_t) -> wint_t;
369}
370extern "C" {
371    pub fn _putws(_Buffer: *const wchar_t) -> ::std::os::raw::c_int;
372}
373extern "C" {
374    pub fn ungetwc(_Character: wint_t, _Stream: *mut FILE) -> wint_t;
375}
376extern "C" {
377    pub fn _wfdopen(_FileHandle: ::std::os::raw::c_int, _Mode: *const wchar_t) -> *mut FILE;
378}
379extern "C" {
380    pub fn _wfopen(_FileName: *const wchar_t, _Mode: *const wchar_t) -> *mut FILE;
381}
382extern "C" {
383    pub fn _wfopen_s(
384        _Stream: *mut *mut FILE,
385        _FileName: *const wchar_t,
386        _Mode: *const wchar_t,
387    ) -> errno_t;
388}
389extern "C" {
390    pub fn _wfreopen(
391        _FileName: *const wchar_t,
392        _Mode: *const wchar_t,
393        _OldStream: *mut FILE,
394    ) -> *mut FILE;
395}
396extern "C" {
397    pub fn _wfreopen_s(
398        _Stream: *mut *mut FILE,
399        _FileName: *const wchar_t,
400        _Mode: *const wchar_t,
401        _OldStream: *mut FILE,
402    ) -> errno_t;
403}
404extern "C" {
405    pub fn _wfsopen(
406        _FileName: *const wchar_t,
407        _Mode: *const wchar_t,
408        _ShFlag: ::std::os::raw::c_int,
409    ) -> *mut FILE;
410}
411extern "C" {
412    pub fn _wperror(_ErrorMessage: *const wchar_t);
413}
414extern "C" {
415    pub fn _wpopen(_Command: *const wchar_t, _Mode: *const wchar_t) -> *mut FILE;
416}
417extern "C" {
418    pub fn _wremove(_FileName: *const wchar_t) -> ::std::os::raw::c_int;
419}
420extern "C" {
421    pub fn _wtempnam(_Directory: *const wchar_t, _FilePrefix: *const wchar_t) -> *mut wchar_t;
422}
423extern "C" {
424    pub fn _wtmpnam_s(_Buffer: *mut wchar_t, _BufferCount: usize) -> errno_t;
425}
426extern "C" {
427    pub fn _wtmpnam(_Buffer: *mut wchar_t) -> *mut wchar_t;
428}
429extern "C" {
430    pub fn _fgetwc_nolock(_Stream: *mut FILE) -> wint_t;
431}
432extern "C" {
433    pub fn _fputwc_nolock(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
434}
435extern "C" {
436    pub fn _getwc_nolock(_Stream: *mut FILE) -> wint_t;
437}
438extern "C" {
439    pub fn _putwc_nolock(_Character: wchar_t, _Stream: *mut FILE) -> wint_t;
440}
441extern "C" {
442    pub fn _ungetwc_nolock(_Character: wint_t, _Stream: *mut FILE) -> wint_t;
443}
444extern "C" {
445    pub fn __stdio_common_vfwprintf(
446        _Options: ::std::os::raw::c_ulonglong,
447        _Stream: *mut FILE,
448        _Format: *const wchar_t,
449        _Locale: _locale_t,
450        _ArgList: va_list,
451    ) -> ::std::os::raw::c_int;
452}
453extern "C" {
454    pub fn __stdio_common_vfwprintf_s(
455        _Options: ::std::os::raw::c_ulonglong,
456        _Stream: *mut FILE,
457        _Format: *const wchar_t,
458        _Locale: _locale_t,
459        _ArgList: va_list,
460    ) -> ::std::os::raw::c_int;
461}
462extern "C" {
463    pub fn __stdio_common_vfwprintf_p(
464        _Options: ::std::os::raw::c_ulonglong,
465        _Stream: *mut FILE,
466        _Format: *const wchar_t,
467        _Locale: _locale_t,
468        _ArgList: va_list,
469    ) -> ::std::os::raw::c_int;
470}
471extern "C" {
472    pub fn __stdio_common_vfwscanf(
473        _Options: ::std::os::raw::c_ulonglong,
474        _Stream: *mut FILE,
475        _Format: *const wchar_t,
476        _Locale: _locale_t,
477        _ArgList: va_list,
478    ) -> ::std::os::raw::c_int;
479}
480extern "C" {
481    pub fn __stdio_common_vswprintf(
482        _Options: ::std::os::raw::c_ulonglong,
483        _Buffer: *mut wchar_t,
484        _BufferCount: usize,
485        _Format: *const wchar_t,
486        _Locale: _locale_t,
487        _ArgList: va_list,
488    ) -> ::std::os::raw::c_int;
489}
490extern "C" {
491    pub fn __stdio_common_vswprintf_s(
492        _Options: ::std::os::raw::c_ulonglong,
493        _Buffer: *mut wchar_t,
494        _BufferCount: usize,
495        _Format: *const wchar_t,
496        _Locale: _locale_t,
497        _ArgList: va_list,
498    ) -> ::std::os::raw::c_int;
499}
500extern "C" {
501    pub fn __stdio_common_vsnwprintf_s(
502        _Options: ::std::os::raw::c_ulonglong,
503        _Buffer: *mut wchar_t,
504        _BufferCount: usize,
505        _MaxCount: usize,
506        _Format: *const wchar_t,
507        _Locale: _locale_t,
508        _ArgList: va_list,
509    ) -> ::std::os::raw::c_int;
510}
511extern "C" {
512    pub fn __stdio_common_vswprintf_p(
513        _Options: ::std::os::raw::c_ulonglong,
514        _Buffer: *mut wchar_t,
515        _BufferCount: usize,
516        _Format: *const wchar_t,
517        _Locale: _locale_t,
518        _ArgList: va_list,
519    ) -> ::std::os::raw::c_int;
520}
521extern "C" {
522    pub fn __stdio_common_vswscanf(
523        _Options: ::std::os::raw::c_ulonglong,
524        _Buffer: *const wchar_t,
525        _BufferCount: usize,
526        _Format: *const wchar_t,
527        _Locale: _locale_t,
528        _ArgList: va_list,
529    ) -> ::std::os::raw::c_int;
530}
531pub type fpos_t = ::std::os::raw::c_longlong;
532extern "C" {
533    pub fn _get_stream_buffer_pointers(
534        _Stream: *mut FILE,
535        _Base: *mut *mut *mut ::std::os::raw::c_char,
536        _Pointer: *mut *mut *mut ::std::os::raw::c_char,
537        _Count: *mut *mut ::std::os::raw::c_int,
538    ) -> errno_t;
539}
540extern "C" {
541    pub fn clearerr_s(_Stream: *mut FILE) -> errno_t;
542}
543extern "C" {
544    pub fn fopen_s(
545        _Stream: *mut *mut FILE,
546        _FileName: *const ::std::os::raw::c_char,
547        _Mode: *const ::std::os::raw::c_char,
548    ) -> errno_t;
549}
550extern "C" {
551    pub fn fread_s(
552        _Buffer: *mut ::std::os::raw::c_void,
553        _BufferSize: usize,
554        _ElementSize: usize,
555        _ElementCount: usize,
556        _Stream: *mut FILE,
557    ) -> usize;
558}
559extern "C" {
560    pub fn freopen_s(
561        _Stream: *mut *mut FILE,
562        _FileName: *const ::std::os::raw::c_char,
563        _Mode: *const ::std::os::raw::c_char,
564        _OldStream: *mut FILE,
565    ) -> errno_t;
566}
567extern "C" {
568    pub fn gets_s(
569        _Buffer: *mut ::std::os::raw::c_char,
570        _Size: rsize_t,
571    ) -> *mut ::std::os::raw::c_char;
572}
573extern "C" {
574    pub fn tmpfile_s(_Stream: *mut *mut FILE) -> errno_t;
575}
576extern "C" {
577    pub fn tmpnam_s(_Buffer: *mut ::std::os::raw::c_char, _Size: rsize_t) -> errno_t;
578}
579extern "C" {
580    pub fn clearerr(_Stream: *mut FILE);
581}
582extern "C" {
583    pub fn fclose(_Stream: *mut FILE) -> ::std::os::raw::c_int;
584}
585extern "C" {
586    pub fn _fcloseall() -> ::std::os::raw::c_int;
587}
588extern "C" {
589    pub fn _fdopen(
590        _FileHandle: ::std::os::raw::c_int,
591        _Mode: *const ::std::os::raw::c_char,
592    ) -> *mut FILE;
593}
594extern "C" {
595    pub fn feof(_Stream: *mut FILE) -> ::std::os::raw::c_int;
596}
597extern "C" {
598    pub fn ferror(_Stream: *mut FILE) -> ::std::os::raw::c_int;
599}
600extern "C" {
601    pub fn fflush(_Stream: *mut FILE) -> ::std::os::raw::c_int;
602}
603extern "C" {
604    pub fn fgetc(_Stream: *mut FILE) -> ::std::os::raw::c_int;
605}
606extern "C" {
607    pub fn _fgetchar() -> ::std::os::raw::c_int;
608}
609extern "C" {
610    pub fn fgetpos(_Stream: *mut FILE, _Position: *mut fpos_t) -> ::std::os::raw::c_int;
611}
612extern "C" {
613    pub fn fgets(
614        _Buffer: *mut ::std::os::raw::c_char,
615        _MaxCount: ::std::os::raw::c_int,
616        _Stream: *mut FILE,
617    ) -> *mut ::std::os::raw::c_char;
618}
619extern "C" {
620    pub fn _fileno(_Stream: *mut FILE) -> ::std::os::raw::c_int;
621}
622extern "C" {
623    pub fn _flushall() -> ::std::os::raw::c_int;
624}
625extern "C" {
626    pub fn fopen(
627        _FileName: *const ::std::os::raw::c_char,
628        _Mode: *const ::std::os::raw::c_char,
629    ) -> *mut FILE;
630}
631extern "C" {
632    pub fn fputc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
633}
634extern "C" {
635    pub fn _fputchar(_Character: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
636}
637extern "C" {
638    pub fn fputs(
639        _Buffer: *const ::std::os::raw::c_char,
640        _Stream: *mut FILE,
641    ) -> ::std::os::raw::c_int;
642}
643extern "C" {
644    pub fn fread(
645        _Buffer: *mut ::std::os::raw::c_void,
646        _ElementSize: ::std::os::raw::c_ulonglong,
647        _ElementCount: ::std::os::raw::c_ulonglong,
648        _Stream: *mut FILE,
649    ) -> ::std::os::raw::c_ulonglong;
650}
651extern "C" {
652    pub fn freopen(
653        _FileName: *const ::std::os::raw::c_char,
654        _Mode: *const ::std::os::raw::c_char,
655        _Stream: *mut FILE,
656    ) -> *mut FILE;
657}
658extern "C" {
659    pub fn _fsopen(
660        _FileName: *const ::std::os::raw::c_char,
661        _Mode: *const ::std::os::raw::c_char,
662        _ShFlag: ::std::os::raw::c_int,
663    ) -> *mut FILE;
664}
665extern "C" {
666    pub fn fsetpos(_Stream: *mut FILE, _Position: *const fpos_t) -> ::std::os::raw::c_int;
667}
668extern "C" {
669    pub fn fseek(
670        _Stream: *mut FILE,
671        _Offset: ::std::os::raw::c_long,
672        _Origin: ::std::os::raw::c_int,
673    ) -> ::std::os::raw::c_int;
674}
675extern "C" {
676    pub fn _fseeki64(
677        _Stream: *mut FILE,
678        _Offset: ::std::os::raw::c_longlong,
679        _Origin: ::std::os::raw::c_int,
680    ) -> ::std::os::raw::c_int;
681}
682extern "C" {
683    pub fn ftell(_Stream: *mut FILE) -> ::std::os::raw::c_long;
684}
685extern "C" {
686    pub fn _ftelli64(_Stream: *mut FILE) -> ::std::os::raw::c_longlong;
687}
688extern "C" {
689    pub fn fwrite(
690        _Buffer: *const ::std::os::raw::c_void,
691        _ElementSize: ::std::os::raw::c_ulonglong,
692        _ElementCount: ::std::os::raw::c_ulonglong,
693        _Stream: *mut FILE,
694    ) -> ::std::os::raw::c_ulonglong;
695}
696extern "C" {
697    pub fn getc(_Stream: *mut FILE) -> ::std::os::raw::c_int;
698}
699extern "C" {
700    pub fn getchar() -> ::std::os::raw::c_int;
701}
702extern "C" {
703    pub fn _getmaxstdio() -> ::std::os::raw::c_int;
704}
705extern "C" {
706    pub fn _getw(_Stream: *mut FILE) -> ::std::os::raw::c_int;
707}
708extern "C" {
709    pub fn perror(_ErrorMessage: *const ::std::os::raw::c_char);
710}
711extern "C" {
712    pub fn _pclose(_Stream: *mut FILE) -> ::std::os::raw::c_int;
713}
714extern "C" {
715    pub fn _popen(
716        _Command: *const ::std::os::raw::c_char,
717        _Mode: *const ::std::os::raw::c_char,
718    ) -> *mut FILE;
719}
720extern "C" {
721    pub fn putc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
722}
723extern "C" {
724    pub fn putchar(_Character: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
725}
726extern "C" {
727    pub fn puts(_Buffer: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
728}
729extern "C" {
730    pub fn _putw(_Word: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
731}
732extern "C" {
733    pub fn remove(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
734}
735extern "C" {
736    pub fn rename(
737        _OldFileName: *const ::std::os::raw::c_char,
738        _NewFileName: *const ::std::os::raw::c_char,
739    ) -> ::std::os::raw::c_int;
740}
741extern "C" {
742    pub fn _unlink(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
743}
744extern "C" {
745    pub fn unlink(_FileName: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
746}
747extern "C" {
748    pub fn rewind(_Stream: *mut FILE);
749}
750extern "C" {
751    pub fn _rmtmp() -> ::std::os::raw::c_int;
752}
753extern "C" {
754    pub fn setbuf(_Stream: *mut FILE, _Buffer: *mut ::std::os::raw::c_char);
755}
756extern "C" {
757    pub fn _setmaxstdio(_Maximum: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
758}
759extern "C" {
760    pub fn setvbuf(
761        _Stream: *mut FILE,
762        _Buffer: *mut ::std::os::raw::c_char,
763        _Mode: ::std::os::raw::c_int,
764        _Size: usize,
765    ) -> ::std::os::raw::c_int;
766}
767extern "C" {
768    pub fn _tempnam(
769        _DirectoryName: *const ::std::os::raw::c_char,
770        _FilePrefix: *const ::std::os::raw::c_char,
771    ) -> *mut ::std::os::raw::c_char;
772}
773extern "C" {
774    pub fn tmpfile() -> *mut FILE;
775}
776extern "C" {
777    pub fn tmpnam(_Buffer: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
778}
779extern "C" {
780    pub fn ungetc(_Character: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
781}
782extern "C" {
783    pub fn _lock_file(_Stream: *mut FILE);
784}
785extern "C" {
786    pub fn _unlock_file(_Stream: *mut FILE);
787}
788extern "C" {
789    pub fn _fclose_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
790}
791extern "C" {
792    pub fn _fflush_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
793}
794extern "C" {
795    pub fn _fgetc_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
796}
797extern "C" {
798    pub fn _fputc_nolock(
799        _Character: ::std::os::raw::c_int,
800        _Stream: *mut FILE,
801    ) -> ::std::os::raw::c_int;
802}
803extern "C" {
804    pub fn _fread_nolock(
805        _Buffer: *mut ::std::os::raw::c_void,
806        _ElementSize: usize,
807        _ElementCount: usize,
808        _Stream: *mut FILE,
809    ) -> usize;
810}
811extern "C" {
812    pub fn _fread_nolock_s(
813        _Buffer: *mut ::std::os::raw::c_void,
814        _BufferSize: usize,
815        _ElementSize: usize,
816        _ElementCount: usize,
817        _Stream: *mut FILE,
818    ) -> usize;
819}
820extern "C" {
821    pub fn _fseek_nolock(
822        _Stream: *mut FILE,
823        _Offset: ::std::os::raw::c_long,
824        _Origin: ::std::os::raw::c_int,
825    ) -> ::std::os::raw::c_int;
826}
827extern "C" {
828    pub fn _fseeki64_nolock(
829        _Stream: *mut FILE,
830        _Offset: ::std::os::raw::c_longlong,
831        _Origin: ::std::os::raw::c_int,
832    ) -> ::std::os::raw::c_int;
833}
834extern "C" {
835    pub fn _ftell_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_long;
836}
837extern "C" {
838    pub fn _ftelli64_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_longlong;
839}
840extern "C" {
841    pub fn _fwrite_nolock(
842        _Buffer: *const ::std::os::raw::c_void,
843        _ElementSize: usize,
844        _ElementCount: usize,
845        _Stream: *mut FILE,
846    ) -> usize;
847}
848extern "C" {
849    pub fn _getc_nolock(_Stream: *mut FILE) -> ::std::os::raw::c_int;
850}
851extern "C" {
852    pub fn _putc_nolock(
853        _Character: ::std::os::raw::c_int,
854        _Stream: *mut FILE,
855    ) -> ::std::os::raw::c_int;
856}
857extern "C" {
858    pub fn _ungetc_nolock(
859        _Character: ::std::os::raw::c_int,
860        _Stream: *mut FILE,
861    ) -> ::std::os::raw::c_int;
862}
863extern "C" {
864    pub fn __p__commode() -> *mut ::std::os::raw::c_int;
865}
866extern "C" {
867    pub fn __stdio_common_vfprintf(
868        _Options: ::std::os::raw::c_ulonglong,
869        _Stream: *mut FILE,
870        _Format: *const ::std::os::raw::c_char,
871        _Locale: _locale_t,
872        _ArgList: va_list,
873    ) -> ::std::os::raw::c_int;
874}
875extern "C" {
876    pub fn __stdio_common_vfprintf_s(
877        _Options: ::std::os::raw::c_ulonglong,
878        _Stream: *mut FILE,
879        _Format: *const ::std::os::raw::c_char,
880        _Locale: _locale_t,
881        _ArgList: va_list,
882    ) -> ::std::os::raw::c_int;
883}
884extern "C" {
885    pub fn __stdio_common_vfprintf_p(
886        _Options: ::std::os::raw::c_ulonglong,
887        _Stream: *mut FILE,
888        _Format: *const ::std::os::raw::c_char,
889        _Locale: _locale_t,
890        _ArgList: va_list,
891    ) -> ::std::os::raw::c_int;
892}
893extern "C" {
894    pub fn _set_printf_count_output(_Value: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
895}
896extern "C" {
897    pub fn _get_printf_count_output() -> ::std::os::raw::c_int;
898}
899extern "C" {
900    pub fn __stdio_common_vfscanf(
901        _Options: ::std::os::raw::c_ulonglong,
902        _Stream: *mut FILE,
903        _Format: *const ::std::os::raw::c_char,
904        _Locale: _locale_t,
905        _Arglist: va_list,
906    ) -> ::std::os::raw::c_int;
907}
908extern "C" {
909    pub fn __stdio_common_vsprintf(
910        _Options: ::std::os::raw::c_ulonglong,
911        _Buffer: *mut ::std::os::raw::c_char,
912        _BufferCount: usize,
913        _Format: *const ::std::os::raw::c_char,
914        _Locale: _locale_t,
915        _ArgList: va_list,
916    ) -> ::std::os::raw::c_int;
917}
918extern "C" {
919    pub fn __stdio_common_vsprintf_s(
920        _Options: ::std::os::raw::c_ulonglong,
921        _Buffer: *mut ::std::os::raw::c_char,
922        _BufferCount: usize,
923        _Format: *const ::std::os::raw::c_char,
924        _Locale: _locale_t,
925        _ArgList: va_list,
926    ) -> ::std::os::raw::c_int;
927}
928extern "C" {
929    pub fn __stdio_common_vsnprintf_s(
930        _Options: ::std::os::raw::c_ulonglong,
931        _Buffer: *mut ::std::os::raw::c_char,
932        _BufferCount: usize,
933        _MaxCount: usize,
934        _Format: *const ::std::os::raw::c_char,
935        _Locale: _locale_t,
936        _ArgList: va_list,
937    ) -> ::std::os::raw::c_int;
938}
939extern "C" {
940    pub fn __stdio_common_vsprintf_p(
941        _Options: ::std::os::raw::c_ulonglong,
942        _Buffer: *mut ::std::os::raw::c_char,
943        _BufferCount: usize,
944        _Format: *const ::std::os::raw::c_char,
945        _Locale: _locale_t,
946        _ArgList: va_list,
947    ) -> ::std::os::raw::c_int;
948}
949extern "C" {
950    pub fn __stdio_common_vsscanf(
951        _Options: ::std::os::raw::c_ulonglong,
952        _Buffer: *const ::std::os::raw::c_char,
953        _BufferCount: usize,
954        _Format: *const ::std::os::raw::c_char,
955        _Locale: _locale_t,
956        _ArgList: va_list,
957    ) -> ::std::os::raw::c_int;
958}
959extern "C" {
960    pub fn tempnam(
961        _Directory: *const ::std::os::raw::c_char,
962        _FilePrefix: *const ::std::os::raw::c_char,
963    ) -> *mut ::std::os::raw::c_char;
964}
965extern "C" {
966    pub fn fcloseall() -> ::std::os::raw::c_int;
967}
968extern "C" {
969    pub fn fdopen(
970        _FileHandle: ::std::os::raw::c_int,
971        _Format: *const ::std::os::raw::c_char,
972    ) -> *mut FILE;
973}
974extern "C" {
975    pub fn fgetchar() -> ::std::os::raw::c_int;
976}
977extern "C" {
978    pub fn fileno(_Stream: *mut FILE) -> ::std::os::raw::c_int;
979}
980extern "C" {
981    pub fn flushall() -> ::std::os::raw::c_int;
982}
983extern "C" {
984    pub fn fputchar(_Ch: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
985}
986extern "C" {
987    pub fn getw(_Stream: *mut FILE) -> ::std::os::raw::c_int;
988}
989extern "C" {
990    pub fn putw(_Ch: ::std::os::raw::c_int, _Stream: *mut FILE) -> ::std::os::raw::c_int;
991}
992extern "C" {
993    pub fn rmtmp() -> ::std::os::raw::c_int;
994}
995pub const CommandTopic_COMMAND_NULL: CommandTopic = 0;
996pub const CommandTopic_COMMAND_DRAWER_POINT_ADD: CommandTopic = 1;
997pub const CommandTopic_COMMAND_DRAWER_LINE_ADD: CommandTopic = 2;
998pub const CommandTopic_COMMAND_DRAWER_POINT_REMOVE: CommandTopic = 3;
999pub const CommandTopic_COMMAND_SEND_START_POS: CommandTopic = 4;
1000pub const CommandTopic_COMMAND_CHEATS_SET_MY_INCOME_MULTIPLIER: CommandTopic = 5;
1001pub const CommandTopic_COMMAND_SEND_TEXT_MESSAGE: CommandTopic = 6;
1002pub const CommandTopic_COMMAND_SET_LAST_POS_MESSAGE: CommandTopic = 7;
1003pub const CommandTopic_COMMAND_SEND_RESOURCES: CommandTopic = 8;
1004pub const CommandTopic_COMMAND_SEND_UNITS: CommandTopic = 9;
1005pub const CommandTopic_COMMAND_UNUSED_0: CommandTopic = 10;
1006pub const CommandTopic_COMMAND_UNUSED_1: CommandTopic = 11;
1007pub const CommandTopic_COMMAND_GROUP_CREATE: CommandTopic = 12;
1008pub const CommandTopic_COMMAND_GROUP_ERASE: CommandTopic = 13;
1009pub const CommandTopic_COMMAND_GROUP_ADD_UNIT: CommandTopic = 14;
1010pub const CommandTopic_COMMAND_GROUP_REMOVE_UNIT: CommandTopic = 15;
1011pub const CommandTopic_COMMAND_PATH_INIT: CommandTopic = 16;
1012pub const CommandTopic_COMMAND_PATH_GET_APPROXIMATE_LENGTH: CommandTopic = 17;
1013pub const CommandTopic_COMMAND_PATH_GET_NEXT_WAYPOINT: CommandTopic = 18;
1014pub const CommandTopic_COMMAND_PATH_FREE: CommandTopic = 19;
1015pub const CommandTopic_COMMAND_CHEATS_GIVE_ME_RESOURCE: CommandTopic = 20;
1016pub const CommandTopic_COMMAND_CALL_LUA_RULES: CommandTopic = 21;
1017pub const CommandTopic_COMMAND_DRAWER_ADD_NOTIFICATION: CommandTopic = 22;
1018pub const CommandTopic_COMMAND_DRAWER_DRAW_UNIT: CommandTopic = 23;
1019pub const CommandTopic_COMMAND_DRAWER_PATH_START: CommandTopic = 24;
1020pub const CommandTopic_COMMAND_DRAWER_PATH_FINISH: CommandTopic = 25;
1021pub const CommandTopic_COMMAND_DRAWER_PATH_DRAW_LINE: CommandTopic = 26;
1022pub const CommandTopic_COMMAND_DRAWER_PATH_DRAW_LINE_AND_ICON: CommandTopic = 27;
1023pub const CommandTopic_COMMAND_DRAWER_PATH_DRAW_ICON_AT_LAST_POS: CommandTopic = 28;
1024pub const CommandTopic_COMMAND_DRAWER_PATH_BREAK: CommandTopic = 29;
1025pub const CommandTopic_COMMAND_DRAWER_PATH_RESTART: CommandTopic = 30;
1026pub const CommandTopic_COMMAND_DRAWER_FIGURE_CREATE_SPLINE: CommandTopic = 31;
1027pub const CommandTopic_COMMAND_DRAWER_FIGURE_CREATE_LINE: CommandTopic = 32;
1028pub const CommandTopic_COMMAND_DRAWER_FIGURE_SET_COLOR: CommandTopic = 33;
1029pub const CommandTopic_COMMAND_DRAWER_FIGURE_DELETE: CommandTopic = 34;
1030pub const CommandTopic_COMMAND_UNIT_BUILD: CommandTopic = 35;
1031pub const CommandTopic_COMMAND_UNIT_STOP: CommandTopic = 36;
1032pub const CommandTopic_COMMAND_UNIT_WAIT: CommandTopic = 37;
1033pub const CommandTopic_COMMAND_UNIT_WAIT_TIME: CommandTopic = 38;
1034pub const CommandTopic_COMMAND_UNIT_WAIT_DEATH: CommandTopic = 39;
1035pub const CommandTopic_COMMAND_UNIT_WAIT_SQUAD: CommandTopic = 40;
1036pub const CommandTopic_COMMAND_UNIT_WAIT_GATHER: CommandTopic = 41;
1037pub const CommandTopic_COMMAND_UNIT_MOVE: CommandTopic = 42;
1038pub const CommandTopic_COMMAND_UNIT_PATROL: CommandTopic = 43;
1039pub const CommandTopic_COMMAND_UNIT_FIGHT: CommandTopic = 44;
1040pub const CommandTopic_COMMAND_UNIT_ATTACK: CommandTopic = 45;
1041pub const CommandTopic_COMMAND_UNIT_ATTACK_AREA: CommandTopic = 46;
1042pub const CommandTopic_COMMAND_UNIT_GUARD: CommandTopic = 47;
1043pub const CommandTopic_COMMAND_UNIT_AI_SELECT: CommandTopic = 48;
1044pub const CommandTopic_COMMAND_UNIT_GROUP_ADD: CommandTopic = 49;
1045pub const CommandTopic_COMMAND_UNIT_GROUP_CLEAR: CommandTopic = 50;
1046pub const CommandTopic_COMMAND_UNIT_REPAIR: CommandTopic = 51;
1047pub const CommandTopic_COMMAND_UNIT_SET_FIRE_STATE: CommandTopic = 52;
1048pub const CommandTopic_COMMAND_UNIT_SET_MOVE_STATE: CommandTopic = 53;
1049pub const CommandTopic_COMMAND_UNIT_SET_BASE: CommandTopic = 54;
1050pub const CommandTopic_COMMAND_UNIT_SELF_DESTROY: CommandTopic = 55;
1051pub const CommandTopic_COMMAND_UNIT_SET_WANTED_MAX_SPEED: CommandTopic = 56;
1052pub const CommandTopic_COMMAND_UNIT_LOAD_UNITS: CommandTopic = 57;
1053pub const CommandTopic_COMMAND_UNIT_LOAD_UNITS_AREA: CommandTopic = 58;
1054pub const CommandTopic_COMMAND_UNIT_LOAD_ONTO: CommandTopic = 59;
1055pub const CommandTopic_COMMAND_UNIT_UNLOAD_UNITS_AREA: CommandTopic = 60;
1056pub const CommandTopic_COMMAND_UNIT_UNLOAD_UNIT: CommandTopic = 61;
1057pub const CommandTopic_COMMAND_UNIT_SET_ON_OFF: CommandTopic = 62;
1058pub const CommandTopic_COMMAND_UNIT_RECLAIM_UNIT: CommandTopic = 63;
1059pub const CommandTopic_COMMAND_UNIT_RECLAIM_AREA: CommandTopic = 64;
1060pub const CommandTopic_COMMAND_UNIT_CLOAK: CommandTopic = 65;
1061pub const CommandTopic_COMMAND_UNIT_STOCKPILE: CommandTopic = 66;
1062pub const CommandTopic_COMMAND_UNIT_D_GUN: CommandTopic = 67;
1063pub const CommandTopic_COMMAND_UNIT_D_GUN_POS: CommandTopic = 68;
1064pub const CommandTopic_COMMAND_UNIT_RESTORE_AREA: CommandTopic = 69;
1065pub const CommandTopic_COMMAND_UNIT_SET_REPEAT: CommandTopic = 70;
1066pub const CommandTopic_COMMAND_UNIT_SET_TRAJECTORY: CommandTopic = 71;
1067pub const CommandTopic_COMMAND_UNIT_RESURRECT: CommandTopic = 72;
1068pub const CommandTopic_COMMAND_UNIT_RESURRECT_AREA: CommandTopic = 73;
1069pub const CommandTopic_COMMAND_UNIT_CAPTURE: CommandTopic = 74;
1070pub const CommandTopic_COMMAND_UNIT_CAPTURE_AREA: CommandTopic = 75;
1071pub const CommandTopic_COMMAND_UNIT_SET_AUTO_REPAIR_LEVEL: CommandTopic = 76;
1072pub const CommandTopic_COMMAND_UNIT_SET_IDLE_MODE: CommandTopic = 77;
1073pub const CommandTopic_COMMAND_UNIT_CUSTOM: CommandTopic = 78;
1074pub const CommandTopic_COMMAND_CHEATS_GIVE_ME_NEW_UNIT: CommandTopic = 79;
1075pub const CommandTopic_COMMAND_TRACE_RAY: CommandTopic = 80;
1076pub const CommandTopic_COMMAND_PAUSE: CommandTopic = 81;
1077pub const CommandTopic_COMMAND_UNIT_RECLAIM_FEATURE: CommandTopic = 82;
1078pub const CommandTopic_COMMAND_DEBUG_DRAWER_GRAPH_SET_POS: CommandTopic = 83;
1079pub const CommandTopic_COMMAND_DEBUG_DRAWER_GRAPH_SET_SIZE: CommandTopic = 84;
1080pub const CommandTopic_COMMAND_DEBUG_DRAWER_GRAPH_LINE_ADD_POINT: CommandTopic = 85;
1081pub const CommandTopic_COMMAND_DEBUG_DRAWER_GRAPH_LINE_DELETE_POINTS: CommandTopic = 86;
1082pub const CommandTopic_COMMAND_DEBUG_DRAWER_GRAPH_LINE_SET_COLOR: CommandTopic = 87;
1083pub const CommandTopic_COMMAND_DEBUG_DRAWER_GRAPH_LINE_SET_LABEL: CommandTopic = 88;
1084pub const CommandTopic_COMMAND_DEBUG_DRAWER_OVERLAYTEXTURE_ADD: CommandTopic = 89;
1085pub const CommandTopic_COMMAND_DEBUG_DRAWER_OVERLAYTEXTURE_UPDATE: CommandTopic = 90;
1086pub const CommandTopic_COMMAND_DEBUG_DRAWER_OVERLAYTEXTURE_DELETE: CommandTopic = 91;
1087pub const CommandTopic_COMMAND_DEBUG_DRAWER_OVERLAYTEXTURE_SET_POS: CommandTopic = 92;
1088pub const CommandTopic_COMMAND_DEBUG_DRAWER_OVERLAYTEXTURE_SET_SIZE: CommandTopic = 93;
1089pub const CommandTopic_COMMAND_DEBUG_DRAWER_OVERLAYTEXTURE_SET_LABEL: CommandTopic = 94;
1090pub const CommandTopic_COMMAND_TRACE_RAY_FEATURE: CommandTopic = 95;
1091pub const CommandTopic_COMMAND_CALL_LUA_UI: CommandTopic = 96;
1092#[doc = " Commands are used for all activities that change game state,\n in spring terms: synced events\n Activities that leave the game state as it is (-> unsynced events)\n are handled through function pointers in SSkirmishAICallback.h.\n\n Each command type can be identified through a unique ID,\n which we call command topic.\n Commands are usually sent from AIs to the engine,\n but there are plans for the future to allow AI -> AI command scheduling.\n\n Note: Do NOT change the values assigned to these topics in enum CommandTopic,\n as this would be bad for inter-version compatibility.\n You should always append new command topics at the end of this list,\n adjust NUM_CMD_TOPICS and add the struct in AIINTERFACE_COMMANDS_ABI_VERSION.\n\n @see SSkirmishAICallback.handleCommand()"]
1093pub type CommandTopic = ::std::os::raw::c_int;
1094pub const NUM_CMD_TOPICS: ::std::os::raw::c_int = 97;
1095pub const UnitCommandOptions_UNIT_COMMAND_OPTION_INTERNAL_ORDER: UnitCommandOptions = 8;
1096pub const UnitCommandOptions_UNIT_COMMAND_OPTION_RIGHT_MOUSE_KEY: UnitCommandOptions = 16;
1097pub const UnitCommandOptions_UNIT_COMMAND_OPTION_SHIFT_KEY: UnitCommandOptions = 32;
1098pub const UnitCommandOptions_UNIT_COMMAND_OPTION_CONTROL_KEY: UnitCommandOptions = 64;
1099pub const UnitCommandOptions_UNIT_COMMAND_OPTION_ALT_KEY: UnitCommandOptions = 128;
1100#[doc = " These are used in all S*UnitCommand's,\n in their options field, which is used as a bitfield.\n This allows to enable special modes of commands,\n which may be command specific.\n For example (one you all know):\n if (SBuildUnitCommand.options & UNIT_COMMAND_OPTION_SHIFT_KEY != 0)\n then: add to unit command queue, instead of replacing it\n"]
1101pub type UnitCommandOptions = ::std::os::raw::c_int;
1102#[doc = " Allows one to give an income (dis-)advantage to the team\n controlled by the Skirmish AI.\n This value can also be set through the GameSetup script,\n with the difference that it causes an instant desync when set here."]
1103#[repr(C)]
1104#[derive(Debug, Copy, Clone)]
1105pub struct SSetMyIncomeMultiplierCheatCommand {
1106    #[doc = " default: 1.0; common: [0.0, 2.0]; valid: [0.0, FLOAT_MAX]"]
1107    pub factor: f32,
1108}
1109#[test]
1110fn bindgen_test_layout_SSetMyIncomeMultiplierCheatCommand() {
1111    const UNINIT: ::std::mem::MaybeUninit<SSetMyIncomeMultiplierCheatCommand> =
1112        ::std::mem::MaybeUninit::uninit();
1113    let ptr = UNINIT.as_ptr();
1114    assert_eq!(
1115        ::std::mem::size_of::<SSetMyIncomeMultiplierCheatCommand>(),
1116        4usize,
1117        concat!("Size of: ", stringify!(SSetMyIncomeMultiplierCheatCommand))
1118    );
1119    assert_eq!(
1120        ::std::mem::align_of::<SSetMyIncomeMultiplierCheatCommand>(),
1121        4usize,
1122        concat!(
1123            "Alignment of ",
1124            stringify!(SSetMyIncomeMultiplierCheatCommand)
1125        )
1126    );
1127    assert_eq!(
1128        unsafe { ::std::ptr::addr_of!((*ptr).factor) as usize - ptr as usize },
1129        0usize,
1130        concat!(
1131            "Offset of field: ",
1132            stringify!(SSetMyIncomeMultiplierCheatCommand),
1133            "::",
1134            stringify!(factor)
1135        )
1136    );
1137}
1138#[doc = " The AI team receives the specified amount of units of the specified resource."]
1139#[repr(C)]
1140#[derive(Debug, Copy, Clone)]
1141pub struct SGiveMeResourceCheatCommand {
1142    pub resourceId: ::std::os::raw::c_int,
1143    pub amount: f32,
1144}
1145#[test]
1146fn bindgen_test_layout_SGiveMeResourceCheatCommand() {
1147    const UNINIT: ::std::mem::MaybeUninit<SGiveMeResourceCheatCommand> =
1148        ::std::mem::MaybeUninit::uninit();
1149    let ptr = UNINIT.as_ptr();
1150    assert_eq!(
1151        ::std::mem::size_of::<SGiveMeResourceCheatCommand>(),
1152        8usize,
1153        concat!("Size of: ", stringify!(SGiveMeResourceCheatCommand))
1154    );
1155    assert_eq!(
1156        ::std::mem::align_of::<SGiveMeResourceCheatCommand>(),
1157        4usize,
1158        concat!("Alignment of ", stringify!(SGiveMeResourceCheatCommand))
1159    );
1160    assert_eq!(
1161        unsafe { ::std::ptr::addr_of!((*ptr).resourceId) as usize - ptr as usize },
1162        0usize,
1163        concat!(
1164            "Offset of field: ",
1165            stringify!(SGiveMeResourceCheatCommand),
1166            "::",
1167            stringify!(resourceId)
1168        )
1169    );
1170    assert_eq!(
1171        unsafe { ::std::ptr::addr_of!((*ptr).amount) as usize - ptr as usize },
1172        4usize,
1173        concat!(
1174            "Offset of field: ",
1175            stringify!(SGiveMeResourceCheatCommand),
1176            "::",
1177            stringify!(amount)
1178        )
1179    );
1180}
1181#[doc = " Creates a new unit with the selected name at pos,\n and returns its unit ID in ret_newUnitId."]
1182#[repr(C)]
1183#[derive(Debug, Copy, Clone)]
1184pub struct SGiveMeNewUnitCheatCommand {
1185    pub unitDefId: ::std::os::raw::c_int,
1186    pub pos_posF3: *mut f32,
1187    pub ret_newUnitId: ::std::os::raw::c_int,
1188}
1189#[test]
1190fn bindgen_test_layout_SGiveMeNewUnitCheatCommand() {
1191    const UNINIT: ::std::mem::MaybeUninit<SGiveMeNewUnitCheatCommand> =
1192        ::std::mem::MaybeUninit::uninit();
1193    let ptr = UNINIT.as_ptr();
1194    assert_eq!(
1195        ::std::mem::size_of::<SGiveMeNewUnitCheatCommand>(),
1196        24usize,
1197        concat!("Size of: ", stringify!(SGiveMeNewUnitCheatCommand))
1198    );
1199    assert_eq!(
1200        ::std::mem::align_of::<SGiveMeNewUnitCheatCommand>(),
1201        8usize,
1202        concat!("Alignment of ", stringify!(SGiveMeNewUnitCheatCommand))
1203    );
1204    assert_eq!(
1205        unsafe { ::std::ptr::addr_of!((*ptr).unitDefId) as usize - ptr as usize },
1206        0usize,
1207        concat!(
1208            "Offset of field: ",
1209            stringify!(SGiveMeNewUnitCheatCommand),
1210            "::",
1211            stringify!(unitDefId)
1212        )
1213    );
1214    assert_eq!(
1215        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
1216        8usize,
1217        concat!(
1218            "Offset of field: ",
1219            stringify!(SGiveMeNewUnitCheatCommand),
1220            "::",
1221            stringify!(pos_posF3)
1222        )
1223    );
1224    assert_eq!(
1225        unsafe { ::std::ptr::addr_of!((*ptr).ret_newUnitId) as usize - ptr as usize },
1226        16usize,
1227        concat!(
1228            "Offset of field: ",
1229            stringify!(SGiveMeNewUnitCheatCommand),
1230            "::",
1231            stringify!(ret_newUnitId)
1232        )
1233    );
1234}
1235#[doc = " @brief Sends a chat/text message to other players.\n This text will also end up in infolog.txt."]
1236#[repr(C)]
1237#[derive(Debug, Copy, Clone)]
1238pub struct SSendTextMessageCommand {
1239    pub text: *const ::std::os::raw::c_char,
1240    pub zone: ::std::os::raw::c_int,
1241}
1242#[test]
1243fn bindgen_test_layout_SSendTextMessageCommand() {
1244    const UNINIT: ::std::mem::MaybeUninit<SSendTextMessageCommand> =
1245        ::std::mem::MaybeUninit::uninit();
1246    let ptr = UNINIT.as_ptr();
1247    assert_eq!(
1248        ::std::mem::size_of::<SSendTextMessageCommand>(),
1249        16usize,
1250        concat!("Size of: ", stringify!(SSendTextMessageCommand))
1251    );
1252    assert_eq!(
1253        ::std::mem::align_of::<SSendTextMessageCommand>(),
1254        8usize,
1255        concat!("Alignment of ", stringify!(SSendTextMessageCommand))
1256    );
1257    assert_eq!(
1258        unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize },
1259        0usize,
1260        concat!(
1261            "Offset of field: ",
1262            stringify!(SSendTextMessageCommand),
1263            "::",
1264            stringify!(text)
1265        )
1266    );
1267    assert_eq!(
1268        unsafe { ::std::ptr::addr_of!((*ptr).zone) as usize - ptr as usize },
1269        8usize,
1270        concat!(
1271            "Offset of field: ",
1272            stringify!(SSendTextMessageCommand),
1273            "::",
1274            stringify!(zone)
1275        )
1276    );
1277}
1278#[doc = " Assigns a map location to the last text message sent by the AI."]
1279#[repr(C)]
1280#[derive(Debug, Copy, Clone)]
1281pub struct SSetLastPosMessageCommand {
1282    pub pos_posF3: *mut f32,
1283}
1284#[test]
1285fn bindgen_test_layout_SSetLastPosMessageCommand() {
1286    const UNINIT: ::std::mem::MaybeUninit<SSetLastPosMessageCommand> =
1287        ::std::mem::MaybeUninit::uninit();
1288    let ptr = UNINIT.as_ptr();
1289    assert_eq!(
1290        ::std::mem::size_of::<SSetLastPosMessageCommand>(),
1291        8usize,
1292        concat!("Size of: ", stringify!(SSetLastPosMessageCommand))
1293    );
1294    assert_eq!(
1295        ::std::mem::align_of::<SSetLastPosMessageCommand>(),
1296        8usize,
1297        concat!("Alignment of ", stringify!(SSetLastPosMessageCommand))
1298    );
1299    assert_eq!(
1300        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
1301        0usize,
1302        concat!(
1303            "Offset of field: ",
1304            stringify!(SSetLastPosMessageCommand),
1305            "::",
1306            stringify!(pos_posF3)
1307        )
1308    );
1309}
1310#[doc = " Give \\<amount\\> units of resource \\<resourceId\\> to team \\<receivingTeam\\>.\n - the amount is capped to the AI team's resource levels\n - does not check for alliance with \\<receivingTeam\\>\n - LuaRules might not allow resource transfers, AI's must verify the deduction"]
1311#[repr(C)]
1312#[derive(Debug, Copy, Clone)]
1313pub struct SSendResourcesCommand {
1314    pub resourceId: ::std::os::raw::c_int,
1315    pub amount: f32,
1316    pub receivingTeamId: ::std::os::raw::c_int,
1317    pub ret_isExecuted: bool,
1318}
1319#[test]
1320fn bindgen_test_layout_SSendResourcesCommand() {
1321    const UNINIT: ::std::mem::MaybeUninit<SSendResourcesCommand> =
1322        ::std::mem::MaybeUninit::uninit();
1323    let ptr = UNINIT.as_ptr();
1324    assert_eq!(
1325        ::std::mem::size_of::<SSendResourcesCommand>(),
1326        16usize,
1327        concat!("Size of: ", stringify!(SSendResourcesCommand))
1328    );
1329    assert_eq!(
1330        ::std::mem::align_of::<SSendResourcesCommand>(),
1331        4usize,
1332        concat!("Alignment of ", stringify!(SSendResourcesCommand))
1333    );
1334    assert_eq!(
1335        unsafe { ::std::ptr::addr_of!((*ptr).resourceId) as usize - ptr as usize },
1336        0usize,
1337        concat!(
1338            "Offset of field: ",
1339            stringify!(SSendResourcesCommand),
1340            "::",
1341            stringify!(resourceId)
1342        )
1343    );
1344    assert_eq!(
1345        unsafe { ::std::ptr::addr_of!((*ptr).amount) as usize - ptr as usize },
1346        4usize,
1347        concat!(
1348            "Offset of field: ",
1349            stringify!(SSendResourcesCommand),
1350            "::",
1351            stringify!(amount)
1352        )
1353    );
1354    assert_eq!(
1355        unsafe { ::std::ptr::addr_of!((*ptr).receivingTeamId) as usize - ptr as usize },
1356        8usize,
1357        concat!(
1358            "Offset of field: ",
1359            stringify!(SSendResourcesCommand),
1360            "::",
1361            stringify!(receivingTeamId)
1362        )
1363    );
1364    assert_eq!(
1365        unsafe { ::std::ptr::addr_of!((*ptr).ret_isExecuted) as usize - ptr as usize },
1366        12usize,
1367        concat!(
1368            "Offset of field: ",
1369            stringify!(SSendResourcesCommand),
1370            "::",
1371            stringify!(ret_isExecuted)
1372        )
1373    );
1374}
1375#[doc = " Give units specified by \\<unitIds\\> to team \\<receivingTeam\\>.\n \\<ret_sentUnits\\> represents how many actually were transferred.\n Make sure this always matches the size of \\<unitIds\\> you passed in.\n If it does not, then some unitId's were filtered out.\n - does not check for alliance with \\<receivingTeam\\>\n - AI's should check each unit if it is still under control of their\n   team after the transaction via UnitTaken() and UnitGiven(), since\n   LuaRules might block part of it"]
1376#[repr(C)]
1377#[derive(Debug, Copy, Clone)]
1378pub struct SSendUnitsCommand {
1379    pub unitIds: *mut ::std::os::raw::c_int,
1380    pub unitIds_size: ::std::os::raw::c_int,
1381    pub receivingTeamId: ::std::os::raw::c_int,
1382    pub ret_sentUnits: ::std::os::raw::c_int,
1383}
1384#[test]
1385fn bindgen_test_layout_SSendUnitsCommand() {
1386    const UNINIT: ::std::mem::MaybeUninit<SSendUnitsCommand> = ::std::mem::MaybeUninit::uninit();
1387    let ptr = UNINIT.as_ptr();
1388    assert_eq!(
1389        ::std::mem::size_of::<SSendUnitsCommand>(),
1390        24usize,
1391        concat!("Size of: ", stringify!(SSendUnitsCommand))
1392    );
1393    assert_eq!(
1394        ::std::mem::align_of::<SSendUnitsCommand>(),
1395        8usize,
1396        concat!("Alignment of ", stringify!(SSendUnitsCommand))
1397    );
1398    assert_eq!(
1399        unsafe { ::std::ptr::addr_of!((*ptr).unitIds) as usize - ptr as usize },
1400        0usize,
1401        concat!(
1402            "Offset of field: ",
1403            stringify!(SSendUnitsCommand),
1404            "::",
1405            stringify!(unitIds)
1406        )
1407    );
1408    assert_eq!(
1409        unsafe { ::std::ptr::addr_of!((*ptr).unitIds_size) as usize - ptr as usize },
1410        8usize,
1411        concat!(
1412            "Offset of field: ",
1413            stringify!(SSendUnitsCommand),
1414            "::",
1415            stringify!(unitIds_size)
1416        )
1417    );
1418    assert_eq!(
1419        unsafe { ::std::ptr::addr_of!((*ptr).receivingTeamId) as usize - ptr as usize },
1420        12usize,
1421        concat!(
1422            "Offset of field: ",
1423            stringify!(SSendUnitsCommand),
1424            "::",
1425            stringify!(receivingTeamId)
1426        )
1427    );
1428    assert_eq!(
1429        unsafe { ::std::ptr::addr_of!((*ptr).ret_sentUnits) as usize - ptr as usize },
1430        16usize,
1431        concat!(
1432            "Offset of field: ",
1433            stringify!(SSendUnitsCommand),
1434            "::",
1435            stringify!(ret_sentUnits)
1436        )
1437    );
1438}
1439#[doc = " Creates a group and returns the id it was given, returns -1 on failure"]
1440#[repr(C)]
1441#[derive(Debug, Copy, Clone)]
1442pub struct SCreateGroupCommand {
1443    pub ret_groupId: ::std::os::raw::c_int,
1444}
1445#[test]
1446fn bindgen_test_layout_SCreateGroupCommand() {
1447    const UNINIT: ::std::mem::MaybeUninit<SCreateGroupCommand> = ::std::mem::MaybeUninit::uninit();
1448    let ptr = UNINIT.as_ptr();
1449    assert_eq!(
1450        ::std::mem::size_of::<SCreateGroupCommand>(),
1451        4usize,
1452        concat!("Size of: ", stringify!(SCreateGroupCommand))
1453    );
1454    assert_eq!(
1455        ::std::mem::align_of::<SCreateGroupCommand>(),
1456        4usize,
1457        concat!("Alignment of ", stringify!(SCreateGroupCommand))
1458    );
1459    assert_eq!(
1460        unsafe { ::std::ptr::addr_of!((*ptr).ret_groupId) as usize - ptr as usize },
1461        0usize,
1462        concat!(
1463            "Offset of field: ",
1464            stringify!(SCreateGroupCommand),
1465            "::",
1466            stringify!(ret_groupId)
1467        )
1468    );
1469}
1470#[doc = " Erases a specified group"]
1471#[repr(C)]
1472#[derive(Debug, Copy, Clone)]
1473pub struct SEraseGroupCommand {
1474    pub groupId: ::std::os::raw::c_int,
1475}
1476#[test]
1477fn bindgen_test_layout_SEraseGroupCommand() {
1478    const UNINIT: ::std::mem::MaybeUninit<SEraseGroupCommand> = ::std::mem::MaybeUninit::uninit();
1479    let ptr = UNINIT.as_ptr();
1480    assert_eq!(
1481        ::std::mem::size_of::<SEraseGroupCommand>(),
1482        4usize,
1483        concat!("Size of: ", stringify!(SEraseGroupCommand))
1484    );
1485    assert_eq!(
1486        ::std::mem::align_of::<SEraseGroupCommand>(),
1487        4usize,
1488        concat!("Alignment of ", stringify!(SEraseGroupCommand))
1489    );
1490    assert_eq!(
1491        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
1492        0usize,
1493        concat!(
1494            "Offset of field: ",
1495            stringify!(SEraseGroupCommand),
1496            "::",
1497            stringify!(groupId)
1498        )
1499    );
1500}
1501#[doc = " The following functions allow the AI to use the built-in path-finder.\n\n - call InitPath and you get a pathId back\n - use this to call GetNextWaypoint to get subsequent waypoints;\n   the waypoints are centered on 8*8 squares\n - note that the pathfinder calculates the waypoints as needed,\n   so do not retrieve them until they are needed\n - the waypoint's x and z coordinates are returned in x and z,\n   while y is used for status codes:\n   y =  0: legal path waypoint IFF x >= 0 and z >= 0\n   y = -1: temporary waypoint, path not yet available\n - for pathType, @see UnitDef_MoveData_getPathType()\n - goalRadius defines a goal area within which any square could be accepted as\n   path target. If a singular goal position is wanted, use 0.0f.\n   default: 8.0f"]
1502#[repr(C)]
1503#[derive(Debug, Copy, Clone)]
1504pub struct SInitPathCommand {
1505    #[doc = " The starting location of the requested path"]
1506    pub start_posF3: *mut f32,
1507    #[doc = " The goal location of the requested path"]
1508    pub end_posF3: *mut f32,
1509    #[doc = " For what type of unit should the path be calculated"]
1510    pub pathType: ::std::os::raw::c_int,
1511    #[doc = " default: 8.0f"]
1512    pub goalRadius: f32,
1513    pub ret_pathId: ::std::os::raw::c_int,
1514}
1515#[test]
1516fn bindgen_test_layout_SInitPathCommand() {
1517    const UNINIT: ::std::mem::MaybeUninit<SInitPathCommand> = ::std::mem::MaybeUninit::uninit();
1518    let ptr = UNINIT.as_ptr();
1519    assert_eq!(
1520        ::std::mem::size_of::<SInitPathCommand>(),
1521        32usize,
1522        concat!("Size of: ", stringify!(SInitPathCommand))
1523    );
1524    assert_eq!(
1525        ::std::mem::align_of::<SInitPathCommand>(),
1526        8usize,
1527        concat!("Alignment of ", stringify!(SInitPathCommand))
1528    );
1529    assert_eq!(
1530        unsafe { ::std::ptr::addr_of!((*ptr).start_posF3) as usize - ptr as usize },
1531        0usize,
1532        concat!(
1533            "Offset of field: ",
1534            stringify!(SInitPathCommand),
1535            "::",
1536            stringify!(start_posF3)
1537        )
1538    );
1539    assert_eq!(
1540        unsafe { ::std::ptr::addr_of!((*ptr).end_posF3) as usize - ptr as usize },
1541        8usize,
1542        concat!(
1543            "Offset of field: ",
1544            stringify!(SInitPathCommand),
1545            "::",
1546            stringify!(end_posF3)
1547        )
1548    );
1549    assert_eq!(
1550        unsafe { ::std::ptr::addr_of!((*ptr).pathType) as usize - ptr as usize },
1551        16usize,
1552        concat!(
1553            "Offset of field: ",
1554            stringify!(SInitPathCommand),
1555            "::",
1556            stringify!(pathType)
1557        )
1558    );
1559    assert_eq!(
1560        unsafe { ::std::ptr::addr_of!((*ptr).goalRadius) as usize - ptr as usize },
1561        20usize,
1562        concat!(
1563            "Offset of field: ",
1564            stringify!(SInitPathCommand),
1565            "::",
1566            stringify!(goalRadius)
1567        )
1568    );
1569    assert_eq!(
1570        unsafe { ::std::ptr::addr_of!((*ptr).ret_pathId) as usize - ptr as usize },
1571        24usize,
1572        concat!(
1573            "Offset of field: ",
1574            stringify!(SInitPathCommand),
1575            "::",
1576            stringify!(ret_pathId)
1577        )
1578    );
1579}
1580#[doc = " Returns the approximate path cost between two points.\n - for pathType @see UnitDef_MoveData_getPathType()\n - goalRadius defines a goal area within which any square could be accepted as\n   path target. If a singular goal position is wanted, use 0.0f.\n   default: 8.0f"]
1581#[repr(C)]
1582#[derive(Debug, Copy, Clone)]
1583pub struct SGetApproximateLengthPathCommand {
1584    #[doc = " The starting location of the requested path"]
1585    pub start_posF3: *mut f32,
1586    #[doc = " The goal location of the requested path"]
1587    pub end_posF3: *mut f32,
1588    #[doc = " For what type of unit should the path be calculated"]
1589    pub pathType: ::std::os::raw::c_int,
1590    #[doc = " default: 8.0f"]
1591    pub goalRadius: f32,
1592    pub ret_approximatePathLength: f32,
1593}
1594#[test]
1595fn bindgen_test_layout_SGetApproximateLengthPathCommand() {
1596    const UNINIT: ::std::mem::MaybeUninit<SGetApproximateLengthPathCommand> =
1597        ::std::mem::MaybeUninit::uninit();
1598    let ptr = UNINIT.as_ptr();
1599    assert_eq!(
1600        ::std::mem::size_of::<SGetApproximateLengthPathCommand>(),
1601        32usize,
1602        concat!("Size of: ", stringify!(SGetApproximateLengthPathCommand))
1603    );
1604    assert_eq!(
1605        ::std::mem::align_of::<SGetApproximateLengthPathCommand>(),
1606        8usize,
1607        concat!(
1608            "Alignment of ",
1609            stringify!(SGetApproximateLengthPathCommand)
1610        )
1611    );
1612    assert_eq!(
1613        unsafe { ::std::ptr::addr_of!((*ptr).start_posF3) as usize - ptr as usize },
1614        0usize,
1615        concat!(
1616            "Offset of field: ",
1617            stringify!(SGetApproximateLengthPathCommand),
1618            "::",
1619            stringify!(start_posF3)
1620        )
1621    );
1622    assert_eq!(
1623        unsafe { ::std::ptr::addr_of!((*ptr).end_posF3) as usize - ptr as usize },
1624        8usize,
1625        concat!(
1626            "Offset of field: ",
1627            stringify!(SGetApproximateLengthPathCommand),
1628            "::",
1629            stringify!(end_posF3)
1630        )
1631    );
1632    assert_eq!(
1633        unsafe { ::std::ptr::addr_of!((*ptr).pathType) as usize - ptr as usize },
1634        16usize,
1635        concat!(
1636            "Offset of field: ",
1637            stringify!(SGetApproximateLengthPathCommand),
1638            "::",
1639            stringify!(pathType)
1640        )
1641    );
1642    assert_eq!(
1643        unsafe { ::std::ptr::addr_of!((*ptr).goalRadius) as usize - ptr as usize },
1644        20usize,
1645        concat!(
1646            "Offset of field: ",
1647            stringify!(SGetApproximateLengthPathCommand),
1648            "::",
1649            stringify!(goalRadius)
1650        )
1651    );
1652    assert_eq!(
1653        unsafe { ::std::ptr::addr_of!((*ptr).ret_approximatePathLength) as usize - ptr as usize },
1654        24usize,
1655        concat!(
1656            "Offset of field: ",
1657            stringify!(SGetApproximateLengthPathCommand),
1658            "::",
1659            stringify!(ret_approximatePathLength)
1660        )
1661    );
1662}
1663#[repr(C)]
1664#[derive(Debug, Copy, Clone)]
1665pub struct SGetNextWaypointPathCommand {
1666    pub pathId: ::std::os::raw::c_int,
1667    pub ret_nextWaypoint_posF3_out: *mut f32,
1668}
1669#[test]
1670fn bindgen_test_layout_SGetNextWaypointPathCommand() {
1671    const UNINIT: ::std::mem::MaybeUninit<SGetNextWaypointPathCommand> =
1672        ::std::mem::MaybeUninit::uninit();
1673    let ptr = UNINIT.as_ptr();
1674    assert_eq!(
1675        ::std::mem::size_of::<SGetNextWaypointPathCommand>(),
1676        16usize,
1677        concat!("Size of: ", stringify!(SGetNextWaypointPathCommand))
1678    );
1679    assert_eq!(
1680        ::std::mem::align_of::<SGetNextWaypointPathCommand>(),
1681        8usize,
1682        concat!("Alignment of ", stringify!(SGetNextWaypointPathCommand))
1683    );
1684    assert_eq!(
1685        unsafe { ::std::ptr::addr_of!((*ptr).pathId) as usize - ptr as usize },
1686        0usize,
1687        concat!(
1688            "Offset of field: ",
1689            stringify!(SGetNextWaypointPathCommand),
1690            "::",
1691            stringify!(pathId)
1692        )
1693    );
1694    assert_eq!(
1695        unsafe { ::std::ptr::addr_of!((*ptr).ret_nextWaypoint_posF3_out) as usize - ptr as usize },
1696        8usize,
1697        concat!(
1698            "Offset of field: ",
1699            stringify!(SGetNextWaypointPathCommand),
1700            "::",
1701            stringify!(ret_nextWaypoint_posF3_out)
1702        )
1703    );
1704}
1705#[repr(C)]
1706#[derive(Debug, Copy, Clone)]
1707pub struct SFreePathCommand {
1708    pub pathId: ::std::os::raw::c_int,
1709}
1710#[test]
1711fn bindgen_test_layout_SFreePathCommand() {
1712    const UNINIT: ::std::mem::MaybeUninit<SFreePathCommand> = ::std::mem::MaybeUninit::uninit();
1713    let ptr = UNINIT.as_ptr();
1714    assert_eq!(
1715        ::std::mem::size_of::<SFreePathCommand>(),
1716        4usize,
1717        concat!("Size of: ", stringify!(SFreePathCommand))
1718    );
1719    assert_eq!(
1720        ::std::mem::align_of::<SFreePathCommand>(),
1721        4usize,
1722        concat!("Alignment of ", stringify!(SFreePathCommand))
1723    );
1724    assert_eq!(
1725        unsafe { ::std::ptr::addr_of!((*ptr).pathId) as usize - ptr as usize },
1726        0usize,
1727        concat!(
1728            "Offset of field: ",
1729            stringify!(SFreePathCommand),
1730            "::",
1731            stringify!(pathId)
1732        )
1733    );
1734}
1735#[repr(C)]
1736#[derive(Debug, Copy, Clone)]
1737pub struct SCallLuaRulesCommand {
1738    #[doc = " Can be set to NULL to skip passing in a string"]
1739    pub inData: *const ::std::os::raw::c_char,
1740    #[doc = " If this is less than 0, the data size is calculated using strlen()"]
1741    pub inSize: ::std::os::raw::c_int,
1742    #[doc = " Buffer for response, must be const size of MAX_RESPONSE_SIZE bytes"]
1743    pub ret_outData: *mut ::std::os::raw::c_char,
1744}
1745#[test]
1746fn bindgen_test_layout_SCallLuaRulesCommand() {
1747    const UNINIT: ::std::mem::MaybeUninit<SCallLuaRulesCommand> = ::std::mem::MaybeUninit::uninit();
1748    let ptr = UNINIT.as_ptr();
1749    assert_eq!(
1750        ::std::mem::size_of::<SCallLuaRulesCommand>(),
1751        24usize,
1752        concat!("Size of: ", stringify!(SCallLuaRulesCommand))
1753    );
1754    assert_eq!(
1755        ::std::mem::align_of::<SCallLuaRulesCommand>(),
1756        8usize,
1757        concat!("Alignment of ", stringify!(SCallLuaRulesCommand))
1758    );
1759    assert_eq!(
1760        unsafe { ::std::ptr::addr_of!((*ptr).inData) as usize - ptr as usize },
1761        0usize,
1762        concat!(
1763            "Offset of field: ",
1764            stringify!(SCallLuaRulesCommand),
1765            "::",
1766            stringify!(inData)
1767        )
1768    );
1769    assert_eq!(
1770        unsafe { ::std::ptr::addr_of!((*ptr).inSize) as usize - ptr as usize },
1771        8usize,
1772        concat!(
1773            "Offset of field: ",
1774            stringify!(SCallLuaRulesCommand),
1775            "::",
1776            stringify!(inSize)
1777        )
1778    );
1779    assert_eq!(
1780        unsafe { ::std::ptr::addr_of!((*ptr).ret_outData) as usize - ptr as usize },
1781        16usize,
1782        concat!(
1783            "Offset of field: ",
1784            stringify!(SCallLuaRulesCommand),
1785            "::",
1786            stringify!(ret_outData)
1787        )
1788    );
1789}
1790#[repr(C)]
1791#[derive(Debug, Copy, Clone)]
1792pub struct SCallLuaUICommand {
1793    #[doc = " Can be set to NULL to skip passing in a string"]
1794    pub inData: *const ::std::os::raw::c_char,
1795    #[doc = " If this is less than 0, the data size is calculated using strlen()"]
1796    pub inSize: ::std::os::raw::c_int,
1797    #[doc = " Buffer for response, must be const size of MAX_RESPONSE_SIZE bytes"]
1798    pub ret_outData: *mut ::std::os::raw::c_char,
1799}
1800#[test]
1801fn bindgen_test_layout_SCallLuaUICommand() {
1802    const UNINIT: ::std::mem::MaybeUninit<SCallLuaUICommand> = ::std::mem::MaybeUninit::uninit();
1803    let ptr = UNINIT.as_ptr();
1804    assert_eq!(
1805        ::std::mem::size_of::<SCallLuaUICommand>(),
1806        24usize,
1807        concat!("Size of: ", stringify!(SCallLuaUICommand))
1808    );
1809    assert_eq!(
1810        ::std::mem::align_of::<SCallLuaUICommand>(),
1811        8usize,
1812        concat!("Alignment of ", stringify!(SCallLuaUICommand))
1813    );
1814    assert_eq!(
1815        unsafe { ::std::ptr::addr_of!((*ptr).inData) as usize - ptr as usize },
1816        0usize,
1817        concat!(
1818            "Offset of field: ",
1819            stringify!(SCallLuaUICommand),
1820            "::",
1821            stringify!(inData)
1822        )
1823    );
1824    assert_eq!(
1825        unsafe { ::std::ptr::addr_of!((*ptr).inSize) as usize - ptr as usize },
1826        8usize,
1827        concat!(
1828            "Offset of field: ",
1829            stringify!(SCallLuaUICommand),
1830            "::",
1831            stringify!(inSize)
1832        )
1833    );
1834    assert_eq!(
1835        unsafe { ::std::ptr::addr_of!((*ptr).ret_outData) as usize - ptr as usize },
1836        16usize,
1837        concat!(
1838            "Offset of field: ",
1839            stringify!(SCallLuaUICommand),
1840            "::",
1841            stringify!(ret_outData)
1842        )
1843    );
1844}
1845#[repr(C)]
1846#[derive(Debug, Copy, Clone)]
1847pub struct SSendStartPosCommand {
1848    pub ready: bool,
1849    #[doc = " on this position, only x and z matter"]
1850    pub pos_posF3: *mut f32,
1851}
1852#[test]
1853fn bindgen_test_layout_SSendStartPosCommand() {
1854    const UNINIT: ::std::mem::MaybeUninit<SSendStartPosCommand> = ::std::mem::MaybeUninit::uninit();
1855    let ptr = UNINIT.as_ptr();
1856    assert_eq!(
1857        ::std::mem::size_of::<SSendStartPosCommand>(),
1858        16usize,
1859        concat!("Size of: ", stringify!(SSendStartPosCommand))
1860    );
1861    assert_eq!(
1862        ::std::mem::align_of::<SSendStartPosCommand>(),
1863        8usize,
1864        concat!("Alignment of ", stringify!(SSendStartPosCommand))
1865    );
1866    assert_eq!(
1867        unsafe { ::std::ptr::addr_of!((*ptr).ready) as usize - ptr as usize },
1868        0usize,
1869        concat!(
1870            "Offset of field: ",
1871            stringify!(SSendStartPosCommand),
1872            "::",
1873            stringify!(ready)
1874        )
1875    );
1876    assert_eq!(
1877        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
1878        8usize,
1879        concat!(
1880            "Offset of field: ",
1881            stringify!(SSendStartPosCommand),
1882            "::",
1883            stringify!(pos_posF3)
1884        )
1885    );
1886}
1887#[repr(C)]
1888#[derive(Debug, Copy, Clone)]
1889pub struct SAddNotificationDrawerCommand {
1890    #[doc = " on this position, only x and z matter"]
1891    pub pos_posF3: *mut f32,
1892    pub color_colorS3: *mut ::std::os::raw::c_short,
1893    pub alpha: ::std::os::raw::c_short,
1894}
1895#[test]
1896fn bindgen_test_layout_SAddNotificationDrawerCommand() {
1897    const UNINIT: ::std::mem::MaybeUninit<SAddNotificationDrawerCommand> =
1898        ::std::mem::MaybeUninit::uninit();
1899    let ptr = UNINIT.as_ptr();
1900    assert_eq!(
1901        ::std::mem::size_of::<SAddNotificationDrawerCommand>(),
1902        24usize,
1903        concat!("Size of: ", stringify!(SAddNotificationDrawerCommand))
1904    );
1905    assert_eq!(
1906        ::std::mem::align_of::<SAddNotificationDrawerCommand>(),
1907        8usize,
1908        concat!("Alignment of ", stringify!(SAddNotificationDrawerCommand))
1909    );
1910    assert_eq!(
1911        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
1912        0usize,
1913        concat!(
1914            "Offset of field: ",
1915            stringify!(SAddNotificationDrawerCommand),
1916            "::",
1917            stringify!(pos_posF3)
1918        )
1919    );
1920    assert_eq!(
1921        unsafe { ::std::ptr::addr_of!((*ptr).color_colorS3) as usize - ptr as usize },
1922        8usize,
1923        concat!(
1924            "Offset of field: ",
1925            stringify!(SAddNotificationDrawerCommand),
1926            "::",
1927            stringify!(color_colorS3)
1928        )
1929    );
1930    assert_eq!(
1931        unsafe { ::std::ptr::addr_of!((*ptr).alpha) as usize - ptr as usize },
1932        16usize,
1933        concat!(
1934            "Offset of field: ",
1935            stringify!(SAddNotificationDrawerCommand),
1936            "::",
1937            stringify!(alpha)
1938        )
1939    );
1940}
1941#[repr(C)]
1942#[derive(Debug, Copy, Clone)]
1943pub struct SAddPointDrawCommand {
1944    #[doc = " on this position, only x and z matter"]
1945    pub pos_posF3: *mut f32,
1946    #[doc = " create this text on pos in my team color"]
1947    pub label: *const ::std::os::raw::c_char,
1948}
1949#[test]
1950fn bindgen_test_layout_SAddPointDrawCommand() {
1951    const UNINIT: ::std::mem::MaybeUninit<SAddPointDrawCommand> = ::std::mem::MaybeUninit::uninit();
1952    let ptr = UNINIT.as_ptr();
1953    assert_eq!(
1954        ::std::mem::size_of::<SAddPointDrawCommand>(),
1955        16usize,
1956        concat!("Size of: ", stringify!(SAddPointDrawCommand))
1957    );
1958    assert_eq!(
1959        ::std::mem::align_of::<SAddPointDrawCommand>(),
1960        8usize,
1961        concat!("Alignment of ", stringify!(SAddPointDrawCommand))
1962    );
1963    assert_eq!(
1964        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
1965        0usize,
1966        concat!(
1967            "Offset of field: ",
1968            stringify!(SAddPointDrawCommand),
1969            "::",
1970            stringify!(pos_posF3)
1971        )
1972    );
1973    assert_eq!(
1974        unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize },
1975        8usize,
1976        concat!(
1977            "Offset of field: ",
1978            stringify!(SAddPointDrawCommand),
1979            "::",
1980            stringify!(label)
1981        )
1982    );
1983}
1984#[repr(C)]
1985#[derive(Debug, Copy, Clone)]
1986pub struct SRemovePointDrawCommand {
1987    #[doc = " remove map points and lines near this point (100 distance)"]
1988    pub pos_posF3: *mut f32,
1989}
1990#[test]
1991fn bindgen_test_layout_SRemovePointDrawCommand() {
1992    const UNINIT: ::std::mem::MaybeUninit<SRemovePointDrawCommand> =
1993        ::std::mem::MaybeUninit::uninit();
1994    let ptr = UNINIT.as_ptr();
1995    assert_eq!(
1996        ::std::mem::size_of::<SRemovePointDrawCommand>(),
1997        8usize,
1998        concat!("Size of: ", stringify!(SRemovePointDrawCommand))
1999    );
2000    assert_eq!(
2001        ::std::mem::align_of::<SRemovePointDrawCommand>(),
2002        8usize,
2003        concat!("Alignment of ", stringify!(SRemovePointDrawCommand))
2004    );
2005    assert_eq!(
2006        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
2007        0usize,
2008        concat!(
2009            "Offset of field: ",
2010            stringify!(SRemovePointDrawCommand),
2011            "::",
2012            stringify!(pos_posF3)
2013        )
2014    );
2015}
2016#[repr(C)]
2017#[derive(Debug, Copy, Clone)]
2018pub struct SAddLineDrawCommand {
2019    #[doc = " draw line from this pos"]
2020    pub posFrom_posF3: *mut f32,
2021    #[doc = " to this pos, again only x and z matter"]
2022    pub posTo_posF3: *mut f32,
2023}
2024#[test]
2025fn bindgen_test_layout_SAddLineDrawCommand() {
2026    const UNINIT: ::std::mem::MaybeUninit<SAddLineDrawCommand> = ::std::mem::MaybeUninit::uninit();
2027    let ptr = UNINIT.as_ptr();
2028    assert_eq!(
2029        ::std::mem::size_of::<SAddLineDrawCommand>(),
2030        16usize,
2031        concat!("Size of: ", stringify!(SAddLineDrawCommand))
2032    );
2033    assert_eq!(
2034        ::std::mem::align_of::<SAddLineDrawCommand>(),
2035        8usize,
2036        concat!("Alignment of ", stringify!(SAddLineDrawCommand))
2037    );
2038    assert_eq!(
2039        unsafe { ::std::ptr::addr_of!((*ptr).posFrom_posF3) as usize - ptr as usize },
2040        0usize,
2041        concat!(
2042            "Offset of field: ",
2043            stringify!(SAddLineDrawCommand),
2044            "::",
2045            stringify!(posFrom_posF3)
2046        )
2047    );
2048    assert_eq!(
2049        unsafe { ::std::ptr::addr_of!((*ptr).posTo_posF3) as usize - ptr as usize },
2050        8usize,
2051        concat!(
2052            "Offset of field: ",
2053            stringify!(SAddLineDrawCommand),
2054            "::",
2055            stringify!(posTo_posF3)
2056        )
2057    );
2058}
2059#[repr(C)]
2060#[derive(Debug, Copy, Clone)]
2061pub struct SStartPathDrawerCommand {
2062    pub pos_posF3: *mut f32,
2063    pub color_colorS3: *mut ::std::os::raw::c_short,
2064    pub alpha: ::std::os::raw::c_short,
2065}
2066#[test]
2067fn bindgen_test_layout_SStartPathDrawerCommand() {
2068    const UNINIT: ::std::mem::MaybeUninit<SStartPathDrawerCommand> =
2069        ::std::mem::MaybeUninit::uninit();
2070    let ptr = UNINIT.as_ptr();
2071    assert_eq!(
2072        ::std::mem::size_of::<SStartPathDrawerCommand>(),
2073        24usize,
2074        concat!("Size of: ", stringify!(SStartPathDrawerCommand))
2075    );
2076    assert_eq!(
2077        ::std::mem::align_of::<SStartPathDrawerCommand>(),
2078        8usize,
2079        concat!("Alignment of ", stringify!(SStartPathDrawerCommand))
2080    );
2081    assert_eq!(
2082        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
2083        0usize,
2084        concat!(
2085            "Offset of field: ",
2086            stringify!(SStartPathDrawerCommand),
2087            "::",
2088            stringify!(pos_posF3)
2089        )
2090    );
2091    assert_eq!(
2092        unsafe { ::std::ptr::addr_of!((*ptr).color_colorS3) as usize - ptr as usize },
2093        8usize,
2094        concat!(
2095            "Offset of field: ",
2096            stringify!(SStartPathDrawerCommand),
2097            "::",
2098            stringify!(color_colorS3)
2099        )
2100    );
2101    assert_eq!(
2102        unsafe { ::std::ptr::addr_of!((*ptr).alpha) as usize - ptr as usize },
2103        16usize,
2104        concat!(
2105            "Offset of field: ",
2106            stringify!(SStartPathDrawerCommand),
2107            "::",
2108            stringify!(alpha)
2109        )
2110    );
2111}
2112#[repr(C)]
2113#[derive(Debug, Copy, Clone)]
2114pub struct SFinishPathDrawerCommand {
2115    pub iAmUseless: bool,
2116}
2117#[test]
2118fn bindgen_test_layout_SFinishPathDrawerCommand() {
2119    const UNINIT: ::std::mem::MaybeUninit<SFinishPathDrawerCommand> =
2120        ::std::mem::MaybeUninit::uninit();
2121    let ptr = UNINIT.as_ptr();
2122    assert_eq!(
2123        ::std::mem::size_of::<SFinishPathDrawerCommand>(),
2124        1usize,
2125        concat!("Size of: ", stringify!(SFinishPathDrawerCommand))
2126    );
2127    assert_eq!(
2128        ::std::mem::align_of::<SFinishPathDrawerCommand>(),
2129        1usize,
2130        concat!("Alignment of ", stringify!(SFinishPathDrawerCommand))
2131    );
2132    assert_eq!(
2133        unsafe { ::std::ptr::addr_of!((*ptr).iAmUseless) as usize - ptr as usize },
2134        0usize,
2135        concat!(
2136            "Offset of field: ",
2137            stringify!(SFinishPathDrawerCommand),
2138            "::",
2139            stringify!(iAmUseless)
2140        )
2141    );
2142}
2143#[repr(C)]
2144#[derive(Debug, Copy, Clone)]
2145pub struct SDrawLinePathDrawerCommand {
2146    pub endPos_posF3: *mut f32,
2147    pub color_colorS3: *mut ::std::os::raw::c_short,
2148    pub alpha: ::std::os::raw::c_short,
2149}
2150#[test]
2151fn bindgen_test_layout_SDrawLinePathDrawerCommand() {
2152    const UNINIT: ::std::mem::MaybeUninit<SDrawLinePathDrawerCommand> =
2153        ::std::mem::MaybeUninit::uninit();
2154    let ptr = UNINIT.as_ptr();
2155    assert_eq!(
2156        ::std::mem::size_of::<SDrawLinePathDrawerCommand>(),
2157        24usize,
2158        concat!("Size of: ", stringify!(SDrawLinePathDrawerCommand))
2159    );
2160    assert_eq!(
2161        ::std::mem::align_of::<SDrawLinePathDrawerCommand>(),
2162        8usize,
2163        concat!("Alignment of ", stringify!(SDrawLinePathDrawerCommand))
2164    );
2165    assert_eq!(
2166        unsafe { ::std::ptr::addr_of!((*ptr).endPos_posF3) as usize - ptr as usize },
2167        0usize,
2168        concat!(
2169            "Offset of field: ",
2170            stringify!(SDrawLinePathDrawerCommand),
2171            "::",
2172            stringify!(endPos_posF3)
2173        )
2174    );
2175    assert_eq!(
2176        unsafe { ::std::ptr::addr_of!((*ptr).color_colorS3) as usize - ptr as usize },
2177        8usize,
2178        concat!(
2179            "Offset of field: ",
2180            stringify!(SDrawLinePathDrawerCommand),
2181            "::",
2182            stringify!(color_colorS3)
2183        )
2184    );
2185    assert_eq!(
2186        unsafe { ::std::ptr::addr_of!((*ptr).alpha) as usize - ptr as usize },
2187        16usize,
2188        concat!(
2189            "Offset of field: ",
2190            stringify!(SDrawLinePathDrawerCommand),
2191            "::",
2192            stringify!(alpha)
2193        )
2194    );
2195}
2196#[repr(C)]
2197#[derive(Debug, Copy, Clone)]
2198pub struct SDrawLineAndIconPathDrawerCommand {
2199    pub cmdId: ::std::os::raw::c_int,
2200    pub endPos_posF3: *mut f32,
2201    pub color_colorS3: *mut ::std::os::raw::c_short,
2202    pub alpha: ::std::os::raw::c_short,
2203}
2204#[test]
2205fn bindgen_test_layout_SDrawLineAndIconPathDrawerCommand() {
2206    const UNINIT: ::std::mem::MaybeUninit<SDrawLineAndIconPathDrawerCommand> =
2207        ::std::mem::MaybeUninit::uninit();
2208    let ptr = UNINIT.as_ptr();
2209    assert_eq!(
2210        ::std::mem::size_of::<SDrawLineAndIconPathDrawerCommand>(),
2211        32usize,
2212        concat!("Size of: ", stringify!(SDrawLineAndIconPathDrawerCommand))
2213    );
2214    assert_eq!(
2215        ::std::mem::align_of::<SDrawLineAndIconPathDrawerCommand>(),
2216        8usize,
2217        concat!(
2218            "Alignment of ",
2219            stringify!(SDrawLineAndIconPathDrawerCommand)
2220        )
2221    );
2222    assert_eq!(
2223        unsafe { ::std::ptr::addr_of!((*ptr).cmdId) as usize - ptr as usize },
2224        0usize,
2225        concat!(
2226            "Offset of field: ",
2227            stringify!(SDrawLineAndIconPathDrawerCommand),
2228            "::",
2229            stringify!(cmdId)
2230        )
2231    );
2232    assert_eq!(
2233        unsafe { ::std::ptr::addr_of!((*ptr).endPos_posF3) as usize - ptr as usize },
2234        8usize,
2235        concat!(
2236            "Offset of field: ",
2237            stringify!(SDrawLineAndIconPathDrawerCommand),
2238            "::",
2239            stringify!(endPos_posF3)
2240        )
2241    );
2242    assert_eq!(
2243        unsafe { ::std::ptr::addr_of!((*ptr).color_colorS3) as usize - ptr as usize },
2244        16usize,
2245        concat!(
2246            "Offset of field: ",
2247            stringify!(SDrawLineAndIconPathDrawerCommand),
2248            "::",
2249            stringify!(color_colorS3)
2250        )
2251    );
2252    assert_eq!(
2253        unsafe { ::std::ptr::addr_of!((*ptr).alpha) as usize - ptr as usize },
2254        24usize,
2255        concat!(
2256            "Offset of field: ",
2257            stringify!(SDrawLineAndIconPathDrawerCommand),
2258            "::",
2259            stringify!(alpha)
2260        )
2261    );
2262}
2263#[repr(C)]
2264#[derive(Debug, Copy, Clone)]
2265pub struct SDrawIconAtLastPosPathDrawerCommand {
2266    pub cmdId: ::std::os::raw::c_int,
2267}
2268#[test]
2269fn bindgen_test_layout_SDrawIconAtLastPosPathDrawerCommand() {
2270    const UNINIT: ::std::mem::MaybeUninit<SDrawIconAtLastPosPathDrawerCommand> =
2271        ::std::mem::MaybeUninit::uninit();
2272    let ptr = UNINIT.as_ptr();
2273    assert_eq!(
2274        ::std::mem::size_of::<SDrawIconAtLastPosPathDrawerCommand>(),
2275        4usize,
2276        concat!("Size of: ", stringify!(SDrawIconAtLastPosPathDrawerCommand))
2277    );
2278    assert_eq!(
2279        ::std::mem::align_of::<SDrawIconAtLastPosPathDrawerCommand>(),
2280        4usize,
2281        concat!(
2282            "Alignment of ",
2283            stringify!(SDrawIconAtLastPosPathDrawerCommand)
2284        )
2285    );
2286    assert_eq!(
2287        unsafe { ::std::ptr::addr_of!((*ptr).cmdId) as usize - ptr as usize },
2288        0usize,
2289        concat!(
2290            "Offset of field: ",
2291            stringify!(SDrawIconAtLastPosPathDrawerCommand),
2292            "::",
2293            stringify!(cmdId)
2294        )
2295    );
2296}
2297#[repr(C)]
2298#[derive(Debug, Copy, Clone)]
2299pub struct SBreakPathDrawerCommand {
2300    pub endPos_posF3: *mut f32,
2301    pub color_colorS3: *mut ::std::os::raw::c_short,
2302    pub alpha: ::std::os::raw::c_short,
2303}
2304#[test]
2305fn bindgen_test_layout_SBreakPathDrawerCommand() {
2306    const UNINIT: ::std::mem::MaybeUninit<SBreakPathDrawerCommand> =
2307        ::std::mem::MaybeUninit::uninit();
2308    let ptr = UNINIT.as_ptr();
2309    assert_eq!(
2310        ::std::mem::size_of::<SBreakPathDrawerCommand>(),
2311        24usize,
2312        concat!("Size of: ", stringify!(SBreakPathDrawerCommand))
2313    );
2314    assert_eq!(
2315        ::std::mem::align_of::<SBreakPathDrawerCommand>(),
2316        8usize,
2317        concat!("Alignment of ", stringify!(SBreakPathDrawerCommand))
2318    );
2319    assert_eq!(
2320        unsafe { ::std::ptr::addr_of!((*ptr).endPos_posF3) as usize - ptr as usize },
2321        0usize,
2322        concat!(
2323            "Offset of field: ",
2324            stringify!(SBreakPathDrawerCommand),
2325            "::",
2326            stringify!(endPos_posF3)
2327        )
2328    );
2329    assert_eq!(
2330        unsafe { ::std::ptr::addr_of!((*ptr).color_colorS3) as usize - ptr as usize },
2331        8usize,
2332        concat!(
2333            "Offset of field: ",
2334            stringify!(SBreakPathDrawerCommand),
2335            "::",
2336            stringify!(color_colorS3)
2337        )
2338    );
2339    assert_eq!(
2340        unsafe { ::std::ptr::addr_of!((*ptr).alpha) as usize - ptr as usize },
2341        16usize,
2342        concat!(
2343            "Offset of field: ",
2344            stringify!(SBreakPathDrawerCommand),
2345            "::",
2346            stringify!(alpha)
2347        )
2348    );
2349}
2350#[repr(C)]
2351#[derive(Debug, Copy, Clone)]
2352pub struct SRestartPathDrawerCommand {
2353    pub sameColor: bool,
2354}
2355#[test]
2356fn bindgen_test_layout_SRestartPathDrawerCommand() {
2357    const UNINIT: ::std::mem::MaybeUninit<SRestartPathDrawerCommand> =
2358        ::std::mem::MaybeUninit::uninit();
2359    let ptr = UNINIT.as_ptr();
2360    assert_eq!(
2361        ::std::mem::size_of::<SRestartPathDrawerCommand>(),
2362        1usize,
2363        concat!("Size of: ", stringify!(SRestartPathDrawerCommand))
2364    );
2365    assert_eq!(
2366        ::std::mem::align_of::<SRestartPathDrawerCommand>(),
2367        1usize,
2368        concat!("Alignment of ", stringify!(SRestartPathDrawerCommand))
2369    );
2370    assert_eq!(
2371        unsafe { ::std::ptr::addr_of!((*ptr).sameColor) as usize - ptr as usize },
2372        0usize,
2373        concat!(
2374            "Offset of field: ",
2375            stringify!(SRestartPathDrawerCommand),
2376            "::",
2377            stringify!(sameColor)
2378        )
2379    );
2380}
2381#[doc = " @brief Creates a cubic Bezier spline figure\n Creates a cubic Bezier spline figure from pos1 to pos4,\n with control points pos2 and pos3.\n\n - Each figure is part of a figure group\n - When creating figures, use 0 as \\<figureGroupId\\> to create\n   a new figure group.\n   The id of this figure group is returned in \\<ret_newFigureGroupId\\>\n - \\<lifeTime\\> specifies how many frames a figure should live\n   before being auto-removed; 0 means no removal\n - \\<arrow\\> == true means that the figure will get an arrow at the end"]
2382#[repr(C)]
2383#[derive(Debug, Copy, Clone)]
2384pub struct SCreateSplineFigureDrawerCommand {
2385    pub pos1_posF3: *mut f32,
2386    pub pos2_posF3: *mut f32,
2387    pub pos3_posF3: *mut f32,
2388    pub pos4_posF3: *mut f32,
2389    pub width: f32,
2390    #[doc = " true: means that the figure will get an arrow at the end"]
2391    pub arrow: bool,
2392    #[doc = " how many frames a figure should live before being autoremoved, 0 means no removal"]
2393    pub lifeTime: ::std::os::raw::c_int,
2394    #[doc = " use 0 to get a new group"]
2395    pub figureGroupId: ::std::os::raw::c_int,
2396    #[doc = " the new group"]
2397    pub ret_newFigureGroupId: ::std::os::raw::c_int,
2398}
2399#[test]
2400fn bindgen_test_layout_SCreateSplineFigureDrawerCommand() {
2401    const UNINIT: ::std::mem::MaybeUninit<SCreateSplineFigureDrawerCommand> =
2402        ::std::mem::MaybeUninit::uninit();
2403    let ptr = UNINIT.as_ptr();
2404    assert_eq!(
2405        ::std::mem::size_of::<SCreateSplineFigureDrawerCommand>(),
2406        56usize,
2407        concat!("Size of: ", stringify!(SCreateSplineFigureDrawerCommand))
2408    );
2409    assert_eq!(
2410        ::std::mem::align_of::<SCreateSplineFigureDrawerCommand>(),
2411        8usize,
2412        concat!(
2413            "Alignment of ",
2414            stringify!(SCreateSplineFigureDrawerCommand)
2415        )
2416    );
2417    assert_eq!(
2418        unsafe { ::std::ptr::addr_of!((*ptr).pos1_posF3) as usize - ptr as usize },
2419        0usize,
2420        concat!(
2421            "Offset of field: ",
2422            stringify!(SCreateSplineFigureDrawerCommand),
2423            "::",
2424            stringify!(pos1_posF3)
2425        )
2426    );
2427    assert_eq!(
2428        unsafe { ::std::ptr::addr_of!((*ptr).pos2_posF3) as usize - ptr as usize },
2429        8usize,
2430        concat!(
2431            "Offset of field: ",
2432            stringify!(SCreateSplineFigureDrawerCommand),
2433            "::",
2434            stringify!(pos2_posF3)
2435        )
2436    );
2437    assert_eq!(
2438        unsafe { ::std::ptr::addr_of!((*ptr).pos3_posF3) as usize - ptr as usize },
2439        16usize,
2440        concat!(
2441            "Offset of field: ",
2442            stringify!(SCreateSplineFigureDrawerCommand),
2443            "::",
2444            stringify!(pos3_posF3)
2445        )
2446    );
2447    assert_eq!(
2448        unsafe { ::std::ptr::addr_of!((*ptr).pos4_posF3) as usize - ptr as usize },
2449        24usize,
2450        concat!(
2451            "Offset of field: ",
2452            stringify!(SCreateSplineFigureDrawerCommand),
2453            "::",
2454            stringify!(pos4_posF3)
2455        )
2456    );
2457    assert_eq!(
2458        unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
2459        32usize,
2460        concat!(
2461            "Offset of field: ",
2462            stringify!(SCreateSplineFigureDrawerCommand),
2463            "::",
2464            stringify!(width)
2465        )
2466    );
2467    assert_eq!(
2468        unsafe { ::std::ptr::addr_of!((*ptr).arrow) as usize - ptr as usize },
2469        36usize,
2470        concat!(
2471            "Offset of field: ",
2472            stringify!(SCreateSplineFigureDrawerCommand),
2473            "::",
2474            stringify!(arrow)
2475        )
2476    );
2477    assert_eq!(
2478        unsafe { ::std::ptr::addr_of!((*ptr).lifeTime) as usize - ptr as usize },
2479        40usize,
2480        concat!(
2481            "Offset of field: ",
2482            stringify!(SCreateSplineFigureDrawerCommand),
2483            "::",
2484            stringify!(lifeTime)
2485        )
2486    );
2487    assert_eq!(
2488        unsafe { ::std::ptr::addr_of!((*ptr).figureGroupId) as usize - ptr as usize },
2489        44usize,
2490        concat!(
2491            "Offset of field: ",
2492            stringify!(SCreateSplineFigureDrawerCommand),
2493            "::",
2494            stringify!(figureGroupId)
2495        )
2496    );
2497    assert_eq!(
2498        unsafe { ::std::ptr::addr_of!((*ptr).ret_newFigureGroupId) as usize - ptr as usize },
2499        48usize,
2500        concat!(
2501            "Offset of field: ",
2502            stringify!(SCreateSplineFigureDrawerCommand),
2503            "::",
2504            stringify!(ret_newFigureGroupId)
2505        )
2506    );
2507}
2508#[doc = " @brief Creates a straight line\n Creates a straight line from pos1 to pos2.\n\n - Each figure is part of a figure group\n - When creating figures, use 0 as \\<figureGroupId\\> to create a new figure group.\n   The id of this figure group is returned in \\<ret_newFigureGroupId\\>\n @param lifeTime specifies how many frames a figure should live before being auto-removed;\n                 0 means no removal\n @param arrow true means that the figure will get an arrow at the end"]
2509#[repr(C)]
2510#[derive(Debug, Copy, Clone)]
2511pub struct SCreateLineFigureDrawerCommand {
2512    pub pos1_posF3: *mut f32,
2513    pub pos2_posF3: *mut f32,
2514    pub width: f32,
2515    #[doc = " true: means that the figure will get an arrow at the end"]
2516    pub arrow: bool,
2517    #[doc = " how many frames a figure should live before being autoremoved, 0 means no removal"]
2518    pub lifeTime: ::std::os::raw::c_int,
2519    #[doc = " use 0 to get a new group"]
2520    pub figureGroupId: ::std::os::raw::c_int,
2521    #[doc = " the new group"]
2522    pub ret_newFigureGroupId: ::std::os::raw::c_int,
2523}
2524#[test]
2525fn bindgen_test_layout_SCreateLineFigureDrawerCommand() {
2526    const UNINIT: ::std::mem::MaybeUninit<SCreateLineFigureDrawerCommand> =
2527        ::std::mem::MaybeUninit::uninit();
2528    let ptr = UNINIT.as_ptr();
2529    assert_eq!(
2530        ::std::mem::size_of::<SCreateLineFigureDrawerCommand>(),
2531        40usize,
2532        concat!("Size of: ", stringify!(SCreateLineFigureDrawerCommand))
2533    );
2534    assert_eq!(
2535        ::std::mem::align_of::<SCreateLineFigureDrawerCommand>(),
2536        8usize,
2537        concat!("Alignment of ", stringify!(SCreateLineFigureDrawerCommand))
2538    );
2539    assert_eq!(
2540        unsafe { ::std::ptr::addr_of!((*ptr).pos1_posF3) as usize - ptr as usize },
2541        0usize,
2542        concat!(
2543            "Offset of field: ",
2544            stringify!(SCreateLineFigureDrawerCommand),
2545            "::",
2546            stringify!(pos1_posF3)
2547        )
2548    );
2549    assert_eq!(
2550        unsafe { ::std::ptr::addr_of!((*ptr).pos2_posF3) as usize - ptr as usize },
2551        8usize,
2552        concat!(
2553            "Offset of field: ",
2554            stringify!(SCreateLineFigureDrawerCommand),
2555            "::",
2556            stringify!(pos2_posF3)
2557        )
2558    );
2559    assert_eq!(
2560        unsafe { ::std::ptr::addr_of!((*ptr).width) as usize - ptr as usize },
2561        16usize,
2562        concat!(
2563            "Offset of field: ",
2564            stringify!(SCreateLineFigureDrawerCommand),
2565            "::",
2566            stringify!(width)
2567        )
2568    );
2569    assert_eq!(
2570        unsafe { ::std::ptr::addr_of!((*ptr).arrow) as usize - ptr as usize },
2571        20usize,
2572        concat!(
2573            "Offset of field: ",
2574            stringify!(SCreateLineFigureDrawerCommand),
2575            "::",
2576            stringify!(arrow)
2577        )
2578    );
2579    assert_eq!(
2580        unsafe { ::std::ptr::addr_of!((*ptr).lifeTime) as usize - ptr as usize },
2581        24usize,
2582        concat!(
2583            "Offset of field: ",
2584            stringify!(SCreateLineFigureDrawerCommand),
2585            "::",
2586            stringify!(lifeTime)
2587        )
2588    );
2589    assert_eq!(
2590        unsafe { ::std::ptr::addr_of!((*ptr).figureGroupId) as usize - ptr as usize },
2591        28usize,
2592        concat!(
2593            "Offset of field: ",
2594            stringify!(SCreateLineFigureDrawerCommand),
2595            "::",
2596            stringify!(figureGroupId)
2597        )
2598    );
2599    assert_eq!(
2600        unsafe { ::std::ptr::addr_of!((*ptr).ret_newFigureGroupId) as usize - ptr as usize },
2601        32usize,
2602        concat!(
2603            "Offset of field: ",
2604            stringify!(SCreateLineFigureDrawerCommand),
2605            "::",
2606            stringify!(ret_newFigureGroupId)
2607        )
2608    );
2609}
2610#[doc = " Sets the color used to draw all lines of figures in a figure group."]
2611#[repr(C)]
2612#[derive(Debug, Copy, Clone)]
2613pub struct SSetColorFigureDrawerCommand {
2614    pub figureGroupId: ::std::os::raw::c_int,
2615    #[doc = " (x, y, z) -> (red, green, blue)"]
2616    pub color_colorS3: *mut ::std::os::raw::c_short,
2617    pub alpha: ::std::os::raw::c_short,
2618}
2619#[test]
2620fn bindgen_test_layout_SSetColorFigureDrawerCommand() {
2621    const UNINIT: ::std::mem::MaybeUninit<SSetColorFigureDrawerCommand> =
2622        ::std::mem::MaybeUninit::uninit();
2623    let ptr = UNINIT.as_ptr();
2624    assert_eq!(
2625        ::std::mem::size_of::<SSetColorFigureDrawerCommand>(),
2626        24usize,
2627        concat!("Size of: ", stringify!(SSetColorFigureDrawerCommand))
2628    );
2629    assert_eq!(
2630        ::std::mem::align_of::<SSetColorFigureDrawerCommand>(),
2631        8usize,
2632        concat!("Alignment of ", stringify!(SSetColorFigureDrawerCommand))
2633    );
2634    assert_eq!(
2635        unsafe { ::std::ptr::addr_of!((*ptr).figureGroupId) as usize - ptr as usize },
2636        0usize,
2637        concat!(
2638            "Offset of field: ",
2639            stringify!(SSetColorFigureDrawerCommand),
2640            "::",
2641            stringify!(figureGroupId)
2642        )
2643    );
2644    assert_eq!(
2645        unsafe { ::std::ptr::addr_of!((*ptr).color_colorS3) as usize - ptr as usize },
2646        8usize,
2647        concat!(
2648            "Offset of field: ",
2649            stringify!(SSetColorFigureDrawerCommand),
2650            "::",
2651            stringify!(color_colorS3)
2652        )
2653    );
2654    assert_eq!(
2655        unsafe { ::std::ptr::addr_of!((*ptr).alpha) as usize - ptr as usize },
2656        16usize,
2657        concat!(
2658            "Offset of field: ",
2659            stringify!(SSetColorFigureDrawerCommand),
2660            "::",
2661            stringify!(alpha)
2662        )
2663    );
2664}
2665#[doc = " Removes a figure group, which means it will not be drawn anymore."]
2666#[repr(C)]
2667#[derive(Debug, Copy, Clone)]
2668pub struct SDeleteFigureDrawerCommand {
2669    pub figureGroupId: ::std::os::raw::c_int,
2670}
2671#[test]
2672fn bindgen_test_layout_SDeleteFigureDrawerCommand() {
2673    const UNINIT: ::std::mem::MaybeUninit<SDeleteFigureDrawerCommand> =
2674        ::std::mem::MaybeUninit::uninit();
2675    let ptr = UNINIT.as_ptr();
2676    assert_eq!(
2677        ::std::mem::size_of::<SDeleteFigureDrawerCommand>(),
2678        4usize,
2679        concat!("Size of: ", stringify!(SDeleteFigureDrawerCommand))
2680    );
2681    assert_eq!(
2682        ::std::mem::align_of::<SDeleteFigureDrawerCommand>(),
2683        4usize,
2684        concat!("Alignment of ", stringify!(SDeleteFigureDrawerCommand))
2685    );
2686    assert_eq!(
2687        unsafe { ::std::ptr::addr_of!((*ptr).figureGroupId) as usize - ptr as usize },
2688        0usize,
2689        concat!(
2690            "Offset of field: ",
2691            stringify!(SDeleteFigureDrawerCommand),
2692            "::",
2693            stringify!(figureGroupId)
2694        )
2695    );
2696}
2697#[doc = " This function allows you to draw units onto the map.\n - they only show up on the local player's screen\n - they will be drawn in the \"standard pose\" (as if before any COB scripts are run)"]
2698#[repr(C)]
2699#[derive(Debug, Copy, Clone)]
2700pub struct SDrawUnitDrawerCommand {
2701    pub toDrawUnitDefId: ::std::os::raw::c_int,
2702    pub pos_posF3: *mut f32,
2703    #[doc = " in radians"]
2704    pub rotation: f32,
2705    #[doc = " specifies how many frames a figure should live before being auto-removed; 0 means no removal"]
2706    pub lifeTime: ::std::os::raw::c_int,
2707    #[doc = " teamId affects the color of the unit"]
2708    pub teamId: ::std::os::raw::c_int,
2709    pub transparent: bool,
2710    pub drawBorder: bool,
2711    pub facing: ::std::os::raw::c_int,
2712}
2713#[test]
2714fn bindgen_test_layout_SDrawUnitDrawerCommand() {
2715    const UNINIT: ::std::mem::MaybeUninit<SDrawUnitDrawerCommand> =
2716        ::std::mem::MaybeUninit::uninit();
2717    let ptr = UNINIT.as_ptr();
2718    assert_eq!(
2719        ::std::mem::size_of::<SDrawUnitDrawerCommand>(),
2720        40usize,
2721        concat!("Size of: ", stringify!(SDrawUnitDrawerCommand))
2722    );
2723    assert_eq!(
2724        ::std::mem::align_of::<SDrawUnitDrawerCommand>(),
2725        8usize,
2726        concat!("Alignment of ", stringify!(SDrawUnitDrawerCommand))
2727    );
2728    assert_eq!(
2729        unsafe { ::std::ptr::addr_of!((*ptr).toDrawUnitDefId) as usize - ptr as usize },
2730        0usize,
2731        concat!(
2732            "Offset of field: ",
2733            stringify!(SDrawUnitDrawerCommand),
2734            "::",
2735            stringify!(toDrawUnitDefId)
2736        )
2737    );
2738    assert_eq!(
2739        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
2740        8usize,
2741        concat!(
2742            "Offset of field: ",
2743            stringify!(SDrawUnitDrawerCommand),
2744            "::",
2745            stringify!(pos_posF3)
2746        )
2747    );
2748    assert_eq!(
2749        unsafe { ::std::ptr::addr_of!((*ptr).rotation) as usize - ptr as usize },
2750        16usize,
2751        concat!(
2752            "Offset of field: ",
2753            stringify!(SDrawUnitDrawerCommand),
2754            "::",
2755            stringify!(rotation)
2756        )
2757    );
2758    assert_eq!(
2759        unsafe { ::std::ptr::addr_of!((*ptr).lifeTime) as usize - ptr as usize },
2760        20usize,
2761        concat!(
2762            "Offset of field: ",
2763            stringify!(SDrawUnitDrawerCommand),
2764            "::",
2765            stringify!(lifeTime)
2766        )
2767    );
2768    assert_eq!(
2769        unsafe { ::std::ptr::addr_of!((*ptr).teamId) as usize - ptr as usize },
2770        24usize,
2771        concat!(
2772            "Offset of field: ",
2773            stringify!(SDrawUnitDrawerCommand),
2774            "::",
2775            stringify!(teamId)
2776        )
2777    );
2778    assert_eq!(
2779        unsafe { ::std::ptr::addr_of!((*ptr).transparent) as usize - ptr as usize },
2780        28usize,
2781        concat!(
2782            "Offset of field: ",
2783            stringify!(SDrawUnitDrawerCommand),
2784            "::",
2785            stringify!(transparent)
2786        )
2787    );
2788    assert_eq!(
2789        unsafe { ::std::ptr::addr_of!((*ptr).drawBorder) as usize - ptr as usize },
2790        29usize,
2791        concat!(
2792            "Offset of field: ",
2793            stringify!(SDrawUnitDrawerCommand),
2794            "::",
2795            stringify!(drawBorder)
2796        )
2797    );
2798    assert_eq!(
2799        unsafe { ::std::ptr::addr_of!((*ptr).facing) as usize - ptr as usize },
2800        32usize,
2801        concat!(
2802            "Offset of field: ",
2803            stringify!(SDrawUnitDrawerCommand),
2804            "::",
2805            stringify!(facing)
2806        )
2807    );
2808}
2809#[repr(C)]
2810#[derive(Debug, Copy, Clone)]
2811pub struct SBuildUnitCommand {
2812    pub unitId: ::std::os::raw::c_int,
2813    pub groupId: ::std::os::raw::c_int,
2814    #[doc = " see enum UnitCommandOptions"]
2815    pub options: ::std::os::raw::c_short,
2816    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
2817    pub timeOut: ::std::os::raw::c_int,
2818    pub toBuildUnitDefId: ::std::os::raw::c_int,
2819    pub buildPos_posF3: *mut f32,
2820    #[doc = " set it to UNIT_COMMAND_BUILD_NO_FACING, if you do not want to specify a certain facing"]
2821    pub facing: ::std::os::raw::c_int,
2822}
2823#[test]
2824fn bindgen_test_layout_SBuildUnitCommand() {
2825    const UNINIT: ::std::mem::MaybeUninit<SBuildUnitCommand> = ::std::mem::MaybeUninit::uninit();
2826    let ptr = UNINIT.as_ptr();
2827    assert_eq!(
2828        ::std::mem::size_of::<SBuildUnitCommand>(),
2829        40usize,
2830        concat!("Size of: ", stringify!(SBuildUnitCommand))
2831    );
2832    assert_eq!(
2833        ::std::mem::align_of::<SBuildUnitCommand>(),
2834        8usize,
2835        concat!("Alignment of ", stringify!(SBuildUnitCommand))
2836    );
2837    assert_eq!(
2838        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
2839        0usize,
2840        concat!(
2841            "Offset of field: ",
2842            stringify!(SBuildUnitCommand),
2843            "::",
2844            stringify!(unitId)
2845        )
2846    );
2847    assert_eq!(
2848        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
2849        4usize,
2850        concat!(
2851            "Offset of field: ",
2852            stringify!(SBuildUnitCommand),
2853            "::",
2854            stringify!(groupId)
2855        )
2856    );
2857    assert_eq!(
2858        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
2859        8usize,
2860        concat!(
2861            "Offset of field: ",
2862            stringify!(SBuildUnitCommand),
2863            "::",
2864            stringify!(options)
2865        )
2866    );
2867    assert_eq!(
2868        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
2869        12usize,
2870        concat!(
2871            "Offset of field: ",
2872            stringify!(SBuildUnitCommand),
2873            "::",
2874            stringify!(timeOut)
2875        )
2876    );
2877    assert_eq!(
2878        unsafe { ::std::ptr::addr_of!((*ptr).toBuildUnitDefId) as usize - ptr as usize },
2879        16usize,
2880        concat!(
2881            "Offset of field: ",
2882            stringify!(SBuildUnitCommand),
2883            "::",
2884            stringify!(toBuildUnitDefId)
2885        )
2886    );
2887    assert_eq!(
2888        unsafe { ::std::ptr::addr_of!((*ptr).buildPos_posF3) as usize - ptr as usize },
2889        24usize,
2890        concat!(
2891            "Offset of field: ",
2892            stringify!(SBuildUnitCommand),
2893            "::",
2894            stringify!(buildPos_posF3)
2895        )
2896    );
2897    assert_eq!(
2898        unsafe { ::std::ptr::addr_of!((*ptr).facing) as usize - ptr as usize },
2899        32usize,
2900        concat!(
2901            "Offset of field: ",
2902            stringify!(SBuildUnitCommand),
2903            "::",
2904            stringify!(facing)
2905        )
2906    );
2907}
2908#[repr(C)]
2909#[derive(Debug, Copy, Clone)]
2910pub struct SStopUnitCommand {
2911    pub unitId: ::std::os::raw::c_int,
2912    pub groupId: ::std::os::raw::c_int,
2913    #[doc = " see enum UnitCommandOptions"]
2914    pub options: ::std::os::raw::c_short,
2915    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
2916    pub timeOut: ::std::os::raw::c_int,
2917}
2918#[test]
2919fn bindgen_test_layout_SStopUnitCommand() {
2920    const UNINIT: ::std::mem::MaybeUninit<SStopUnitCommand> = ::std::mem::MaybeUninit::uninit();
2921    let ptr = UNINIT.as_ptr();
2922    assert_eq!(
2923        ::std::mem::size_of::<SStopUnitCommand>(),
2924        16usize,
2925        concat!("Size of: ", stringify!(SStopUnitCommand))
2926    );
2927    assert_eq!(
2928        ::std::mem::align_of::<SStopUnitCommand>(),
2929        4usize,
2930        concat!("Alignment of ", stringify!(SStopUnitCommand))
2931    );
2932    assert_eq!(
2933        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
2934        0usize,
2935        concat!(
2936            "Offset of field: ",
2937            stringify!(SStopUnitCommand),
2938            "::",
2939            stringify!(unitId)
2940        )
2941    );
2942    assert_eq!(
2943        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
2944        4usize,
2945        concat!(
2946            "Offset of field: ",
2947            stringify!(SStopUnitCommand),
2948            "::",
2949            stringify!(groupId)
2950        )
2951    );
2952    assert_eq!(
2953        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
2954        8usize,
2955        concat!(
2956            "Offset of field: ",
2957            stringify!(SStopUnitCommand),
2958            "::",
2959            stringify!(options)
2960        )
2961    );
2962    assert_eq!(
2963        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
2964        12usize,
2965        concat!(
2966            "Offset of field: ",
2967            stringify!(SStopUnitCommand),
2968            "::",
2969            stringify!(timeOut)
2970        )
2971    );
2972}
2973#[repr(C)]
2974#[derive(Debug, Copy, Clone)]
2975pub struct SWaitUnitCommand {
2976    pub unitId: ::std::os::raw::c_int,
2977    pub groupId: ::std::os::raw::c_int,
2978    #[doc = " see enum UnitCommandOptions"]
2979    pub options: ::std::os::raw::c_short,
2980    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
2981    pub timeOut: ::std::os::raw::c_int,
2982}
2983#[test]
2984fn bindgen_test_layout_SWaitUnitCommand() {
2985    const UNINIT: ::std::mem::MaybeUninit<SWaitUnitCommand> = ::std::mem::MaybeUninit::uninit();
2986    let ptr = UNINIT.as_ptr();
2987    assert_eq!(
2988        ::std::mem::size_of::<SWaitUnitCommand>(),
2989        16usize,
2990        concat!("Size of: ", stringify!(SWaitUnitCommand))
2991    );
2992    assert_eq!(
2993        ::std::mem::align_of::<SWaitUnitCommand>(),
2994        4usize,
2995        concat!("Alignment of ", stringify!(SWaitUnitCommand))
2996    );
2997    assert_eq!(
2998        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
2999        0usize,
3000        concat!(
3001            "Offset of field: ",
3002            stringify!(SWaitUnitCommand),
3003            "::",
3004            stringify!(unitId)
3005        )
3006    );
3007    assert_eq!(
3008        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3009        4usize,
3010        concat!(
3011            "Offset of field: ",
3012            stringify!(SWaitUnitCommand),
3013            "::",
3014            stringify!(groupId)
3015        )
3016    );
3017    assert_eq!(
3018        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3019        8usize,
3020        concat!(
3021            "Offset of field: ",
3022            stringify!(SWaitUnitCommand),
3023            "::",
3024            stringify!(options)
3025        )
3026    );
3027    assert_eq!(
3028        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3029        12usize,
3030        concat!(
3031            "Offset of field: ",
3032            stringify!(SWaitUnitCommand),
3033            "::",
3034            stringify!(timeOut)
3035        )
3036    );
3037}
3038#[repr(C)]
3039#[derive(Debug, Copy, Clone)]
3040pub struct STimeWaitUnitCommand {
3041    pub unitId: ::std::os::raw::c_int,
3042    pub groupId: ::std::os::raw::c_int,
3043    #[doc = " see enum UnitCommandOptions"]
3044    pub options: ::std::os::raw::c_short,
3045    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3046    pub timeOut: ::std::os::raw::c_int,
3047    #[doc = " the time in seconds to wait"]
3048    pub time: ::std::os::raw::c_int,
3049}
3050#[test]
3051fn bindgen_test_layout_STimeWaitUnitCommand() {
3052    const UNINIT: ::std::mem::MaybeUninit<STimeWaitUnitCommand> = ::std::mem::MaybeUninit::uninit();
3053    let ptr = UNINIT.as_ptr();
3054    assert_eq!(
3055        ::std::mem::size_of::<STimeWaitUnitCommand>(),
3056        20usize,
3057        concat!("Size of: ", stringify!(STimeWaitUnitCommand))
3058    );
3059    assert_eq!(
3060        ::std::mem::align_of::<STimeWaitUnitCommand>(),
3061        4usize,
3062        concat!("Alignment of ", stringify!(STimeWaitUnitCommand))
3063    );
3064    assert_eq!(
3065        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3066        0usize,
3067        concat!(
3068            "Offset of field: ",
3069            stringify!(STimeWaitUnitCommand),
3070            "::",
3071            stringify!(unitId)
3072        )
3073    );
3074    assert_eq!(
3075        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3076        4usize,
3077        concat!(
3078            "Offset of field: ",
3079            stringify!(STimeWaitUnitCommand),
3080            "::",
3081            stringify!(groupId)
3082        )
3083    );
3084    assert_eq!(
3085        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3086        8usize,
3087        concat!(
3088            "Offset of field: ",
3089            stringify!(STimeWaitUnitCommand),
3090            "::",
3091            stringify!(options)
3092        )
3093    );
3094    assert_eq!(
3095        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3096        12usize,
3097        concat!(
3098            "Offset of field: ",
3099            stringify!(STimeWaitUnitCommand),
3100            "::",
3101            stringify!(timeOut)
3102        )
3103    );
3104    assert_eq!(
3105        unsafe { ::std::ptr::addr_of!((*ptr).time) as usize - ptr as usize },
3106        16usize,
3107        concat!(
3108            "Offset of field: ",
3109            stringify!(STimeWaitUnitCommand),
3110            "::",
3111            stringify!(time)
3112        )
3113    );
3114}
3115#[doc = " Wait until another unit is dead, units will not wait on themselves.\n Example:\n A group of aircrafts waits for an enemy's anti-air defenses to die,\n before passing over their ruins to attack."]
3116#[repr(C)]
3117#[derive(Debug, Copy, Clone)]
3118pub struct SDeathWaitUnitCommand {
3119    pub unitId: ::std::os::raw::c_int,
3120    pub groupId: ::std::os::raw::c_int,
3121    #[doc = " see enum UnitCommandOptions"]
3122    pub options: ::std::os::raw::c_short,
3123    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3124    pub timeOut: ::std::os::raw::c_int,
3125    #[doc = " wait until this unit is dead"]
3126    pub toDieUnitId: ::std::os::raw::c_int,
3127}
3128#[test]
3129fn bindgen_test_layout_SDeathWaitUnitCommand() {
3130    const UNINIT: ::std::mem::MaybeUninit<SDeathWaitUnitCommand> =
3131        ::std::mem::MaybeUninit::uninit();
3132    let ptr = UNINIT.as_ptr();
3133    assert_eq!(
3134        ::std::mem::size_of::<SDeathWaitUnitCommand>(),
3135        20usize,
3136        concat!("Size of: ", stringify!(SDeathWaitUnitCommand))
3137    );
3138    assert_eq!(
3139        ::std::mem::align_of::<SDeathWaitUnitCommand>(),
3140        4usize,
3141        concat!("Alignment of ", stringify!(SDeathWaitUnitCommand))
3142    );
3143    assert_eq!(
3144        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3145        0usize,
3146        concat!(
3147            "Offset of field: ",
3148            stringify!(SDeathWaitUnitCommand),
3149            "::",
3150            stringify!(unitId)
3151        )
3152    );
3153    assert_eq!(
3154        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3155        4usize,
3156        concat!(
3157            "Offset of field: ",
3158            stringify!(SDeathWaitUnitCommand),
3159            "::",
3160            stringify!(groupId)
3161        )
3162    );
3163    assert_eq!(
3164        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3165        8usize,
3166        concat!(
3167            "Offset of field: ",
3168            stringify!(SDeathWaitUnitCommand),
3169            "::",
3170            stringify!(options)
3171        )
3172    );
3173    assert_eq!(
3174        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3175        12usize,
3176        concat!(
3177            "Offset of field: ",
3178            stringify!(SDeathWaitUnitCommand),
3179            "::",
3180            stringify!(timeOut)
3181        )
3182    );
3183    assert_eq!(
3184        unsafe { ::std::ptr::addr_of!((*ptr).toDieUnitId) as usize - ptr as usize },
3185        16usize,
3186        concat!(
3187            "Offset of field: ",
3188            stringify!(SDeathWaitUnitCommand),
3189            "::",
3190            stringify!(toDieUnitId)
3191        )
3192    );
3193}
3194#[doc = " Wait for a specific ammount of units.\n Usually used with factories, but does work on groups without a factory too.\n Example:\n Pick a factory and give it a rallypoint, then add a SquadWait command\n with the number of units you want in your squads.\n Units will wait at the initial rally point until enough of them\n have arrived to make up a squad, then they will continue along their queue."]
3195#[repr(C)]
3196#[derive(Debug, Copy, Clone)]
3197pub struct SSquadWaitUnitCommand {
3198    pub unitId: ::std::os::raw::c_int,
3199    pub groupId: ::std::os::raw::c_int,
3200    #[doc = " see enum UnitCommandOptions"]
3201    pub options: ::std::os::raw::c_short,
3202    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3203    pub timeOut: ::std::os::raw::c_int,
3204    pub numUnits: ::std::os::raw::c_int,
3205}
3206#[test]
3207fn bindgen_test_layout_SSquadWaitUnitCommand() {
3208    const UNINIT: ::std::mem::MaybeUninit<SSquadWaitUnitCommand> =
3209        ::std::mem::MaybeUninit::uninit();
3210    let ptr = UNINIT.as_ptr();
3211    assert_eq!(
3212        ::std::mem::size_of::<SSquadWaitUnitCommand>(),
3213        20usize,
3214        concat!("Size of: ", stringify!(SSquadWaitUnitCommand))
3215    );
3216    assert_eq!(
3217        ::std::mem::align_of::<SSquadWaitUnitCommand>(),
3218        4usize,
3219        concat!("Alignment of ", stringify!(SSquadWaitUnitCommand))
3220    );
3221    assert_eq!(
3222        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3223        0usize,
3224        concat!(
3225            "Offset of field: ",
3226            stringify!(SSquadWaitUnitCommand),
3227            "::",
3228            stringify!(unitId)
3229        )
3230    );
3231    assert_eq!(
3232        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3233        4usize,
3234        concat!(
3235            "Offset of field: ",
3236            stringify!(SSquadWaitUnitCommand),
3237            "::",
3238            stringify!(groupId)
3239        )
3240    );
3241    assert_eq!(
3242        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3243        8usize,
3244        concat!(
3245            "Offset of field: ",
3246            stringify!(SSquadWaitUnitCommand),
3247            "::",
3248            stringify!(options)
3249        )
3250    );
3251    assert_eq!(
3252        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3253        12usize,
3254        concat!(
3255            "Offset of field: ",
3256            stringify!(SSquadWaitUnitCommand),
3257            "::",
3258            stringify!(timeOut)
3259        )
3260    );
3261    assert_eq!(
3262        unsafe { ::std::ptr::addr_of!((*ptr).numUnits) as usize - ptr as usize },
3263        16usize,
3264        concat!(
3265            "Offset of field: ",
3266            stringify!(SSquadWaitUnitCommand),
3267            "::",
3268            stringify!(numUnits)
3269        )
3270    );
3271}
3272#[doc = " Wait for the arrival of all units included in the command.\n Only makes sense for a group of units.\n Use it after a movement command of some sort (move / fight).\n Units will wait until all members of the GatherWait command have arrived\n at their destinations before continuing."]
3273#[repr(C)]
3274#[derive(Debug, Copy, Clone)]
3275pub struct SGatherWaitUnitCommand {
3276    pub unitId: ::std::os::raw::c_int,
3277    pub groupId: ::std::os::raw::c_int,
3278    #[doc = " see enum UnitCommandOptions"]
3279    pub options: ::std::os::raw::c_short,
3280    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3281    pub timeOut: ::std::os::raw::c_int,
3282}
3283#[test]
3284fn bindgen_test_layout_SGatherWaitUnitCommand() {
3285    const UNINIT: ::std::mem::MaybeUninit<SGatherWaitUnitCommand> =
3286        ::std::mem::MaybeUninit::uninit();
3287    let ptr = UNINIT.as_ptr();
3288    assert_eq!(
3289        ::std::mem::size_of::<SGatherWaitUnitCommand>(),
3290        16usize,
3291        concat!("Size of: ", stringify!(SGatherWaitUnitCommand))
3292    );
3293    assert_eq!(
3294        ::std::mem::align_of::<SGatherWaitUnitCommand>(),
3295        4usize,
3296        concat!("Alignment of ", stringify!(SGatherWaitUnitCommand))
3297    );
3298    assert_eq!(
3299        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3300        0usize,
3301        concat!(
3302            "Offset of field: ",
3303            stringify!(SGatherWaitUnitCommand),
3304            "::",
3305            stringify!(unitId)
3306        )
3307    );
3308    assert_eq!(
3309        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3310        4usize,
3311        concat!(
3312            "Offset of field: ",
3313            stringify!(SGatherWaitUnitCommand),
3314            "::",
3315            stringify!(groupId)
3316        )
3317    );
3318    assert_eq!(
3319        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3320        8usize,
3321        concat!(
3322            "Offset of field: ",
3323            stringify!(SGatherWaitUnitCommand),
3324            "::",
3325            stringify!(options)
3326        )
3327    );
3328    assert_eq!(
3329        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3330        12usize,
3331        concat!(
3332            "Offset of field: ",
3333            stringify!(SGatherWaitUnitCommand),
3334            "::",
3335            stringify!(timeOut)
3336        )
3337    );
3338}
3339#[repr(C)]
3340#[derive(Debug, Copy, Clone)]
3341pub struct SMoveUnitCommand {
3342    pub unitId: ::std::os::raw::c_int,
3343    pub groupId: ::std::os::raw::c_int,
3344    #[doc = " see enum UnitCommandOptions"]
3345    pub options: ::std::os::raw::c_short,
3346    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3347    pub timeOut: ::std::os::raw::c_int,
3348    pub toPos_posF3: *mut f32,
3349}
3350#[test]
3351fn bindgen_test_layout_SMoveUnitCommand() {
3352    const UNINIT: ::std::mem::MaybeUninit<SMoveUnitCommand> = ::std::mem::MaybeUninit::uninit();
3353    let ptr = UNINIT.as_ptr();
3354    assert_eq!(
3355        ::std::mem::size_of::<SMoveUnitCommand>(),
3356        24usize,
3357        concat!("Size of: ", stringify!(SMoveUnitCommand))
3358    );
3359    assert_eq!(
3360        ::std::mem::align_of::<SMoveUnitCommand>(),
3361        8usize,
3362        concat!("Alignment of ", stringify!(SMoveUnitCommand))
3363    );
3364    assert_eq!(
3365        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3366        0usize,
3367        concat!(
3368            "Offset of field: ",
3369            stringify!(SMoveUnitCommand),
3370            "::",
3371            stringify!(unitId)
3372        )
3373    );
3374    assert_eq!(
3375        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3376        4usize,
3377        concat!(
3378            "Offset of field: ",
3379            stringify!(SMoveUnitCommand),
3380            "::",
3381            stringify!(groupId)
3382        )
3383    );
3384    assert_eq!(
3385        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3386        8usize,
3387        concat!(
3388            "Offset of field: ",
3389            stringify!(SMoveUnitCommand),
3390            "::",
3391            stringify!(options)
3392        )
3393    );
3394    assert_eq!(
3395        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3396        12usize,
3397        concat!(
3398            "Offset of field: ",
3399            stringify!(SMoveUnitCommand),
3400            "::",
3401            stringify!(timeOut)
3402        )
3403    );
3404    assert_eq!(
3405        unsafe { ::std::ptr::addr_of!((*ptr).toPos_posF3) as usize - ptr as usize },
3406        16usize,
3407        concat!(
3408            "Offset of field: ",
3409            stringify!(SMoveUnitCommand),
3410            "::",
3411            stringify!(toPos_posF3)
3412        )
3413    );
3414}
3415#[repr(C)]
3416#[derive(Debug, Copy, Clone)]
3417pub struct SPatrolUnitCommand {
3418    pub unitId: ::std::os::raw::c_int,
3419    pub groupId: ::std::os::raw::c_int,
3420    #[doc = " see enum UnitCommandOptions"]
3421    pub options: ::std::os::raw::c_short,
3422    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3423    pub timeOut: ::std::os::raw::c_int,
3424    pub toPos_posF3: *mut f32,
3425}
3426#[test]
3427fn bindgen_test_layout_SPatrolUnitCommand() {
3428    const UNINIT: ::std::mem::MaybeUninit<SPatrolUnitCommand> = ::std::mem::MaybeUninit::uninit();
3429    let ptr = UNINIT.as_ptr();
3430    assert_eq!(
3431        ::std::mem::size_of::<SPatrolUnitCommand>(),
3432        24usize,
3433        concat!("Size of: ", stringify!(SPatrolUnitCommand))
3434    );
3435    assert_eq!(
3436        ::std::mem::align_of::<SPatrolUnitCommand>(),
3437        8usize,
3438        concat!("Alignment of ", stringify!(SPatrolUnitCommand))
3439    );
3440    assert_eq!(
3441        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3442        0usize,
3443        concat!(
3444            "Offset of field: ",
3445            stringify!(SPatrolUnitCommand),
3446            "::",
3447            stringify!(unitId)
3448        )
3449    );
3450    assert_eq!(
3451        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3452        4usize,
3453        concat!(
3454            "Offset of field: ",
3455            stringify!(SPatrolUnitCommand),
3456            "::",
3457            stringify!(groupId)
3458        )
3459    );
3460    assert_eq!(
3461        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3462        8usize,
3463        concat!(
3464            "Offset of field: ",
3465            stringify!(SPatrolUnitCommand),
3466            "::",
3467            stringify!(options)
3468        )
3469    );
3470    assert_eq!(
3471        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3472        12usize,
3473        concat!(
3474            "Offset of field: ",
3475            stringify!(SPatrolUnitCommand),
3476            "::",
3477            stringify!(timeOut)
3478        )
3479    );
3480    assert_eq!(
3481        unsafe { ::std::ptr::addr_of!((*ptr).toPos_posF3) as usize - ptr as usize },
3482        16usize,
3483        concat!(
3484            "Offset of field: ",
3485            stringify!(SPatrolUnitCommand),
3486            "::",
3487            stringify!(toPos_posF3)
3488        )
3489    );
3490}
3491#[repr(C)]
3492#[derive(Debug, Copy, Clone)]
3493pub struct SFightUnitCommand {
3494    pub unitId: ::std::os::raw::c_int,
3495    pub groupId: ::std::os::raw::c_int,
3496    #[doc = " see enum UnitCommandOptions"]
3497    pub options: ::std::os::raw::c_short,
3498    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3499    pub timeOut: ::std::os::raw::c_int,
3500    pub toPos_posF3: *mut f32,
3501}
3502#[test]
3503fn bindgen_test_layout_SFightUnitCommand() {
3504    const UNINIT: ::std::mem::MaybeUninit<SFightUnitCommand> = ::std::mem::MaybeUninit::uninit();
3505    let ptr = UNINIT.as_ptr();
3506    assert_eq!(
3507        ::std::mem::size_of::<SFightUnitCommand>(),
3508        24usize,
3509        concat!("Size of: ", stringify!(SFightUnitCommand))
3510    );
3511    assert_eq!(
3512        ::std::mem::align_of::<SFightUnitCommand>(),
3513        8usize,
3514        concat!("Alignment of ", stringify!(SFightUnitCommand))
3515    );
3516    assert_eq!(
3517        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3518        0usize,
3519        concat!(
3520            "Offset of field: ",
3521            stringify!(SFightUnitCommand),
3522            "::",
3523            stringify!(unitId)
3524        )
3525    );
3526    assert_eq!(
3527        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3528        4usize,
3529        concat!(
3530            "Offset of field: ",
3531            stringify!(SFightUnitCommand),
3532            "::",
3533            stringify!(groupId)
3534        )
3535    );
3536    assert_eq!(
3537        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3538        8usize,
3539        concat!(
3540            "Offset of field: ",
3541            stringify!(SFightUnitCommand),
3542            "::",
3543            stringify!(options)
3544        )
3545    );
3546    assert_eq!(
3547        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3548        12usize,
3549        concat!(
3550            "Offset of field: ",
3551            stringify!(SFightUnitCommand),
3552            "::",
3553            stringify!(timeOut)
3554        )
3555    );
3556    assert_eq!(
3557        unsafe { ::std::ptr::addr_of!((*ptr).toPos_posF3) as usize - ptr as usize },
3558        16usize,
3559        concat!(
3560            "Offset of field: ",
3561            stringify!(SFightUnitCommand),
3562            "::",
3563            stringify!(toPos_posF3)
3564        )
3565    );
3566}
3567#[repr(C)]
3568#[derive(Debug, Copy, Clone)]
3569pub struct SAttackUnitCommand {
3570    pub unitId: ::std::os::raw::c_int,
3571    pub groupId: ::std::os::raw::c_int,
3572    #[doc = " see enum UnitCommandOptions"]
3573    pub options: ::std::os::raw::c_short,
3574    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3575    pub timeOut: ::std::os::raw::c_int,
3576    pub toAttackUnitId: ::std::os::raw::c_int,
3577}
3578#[test]
3579fn bindgen_test_layout_SAttackUnitCommand() {
3580    const UNINIT: ::std::mem::MaybeUninit<SAttackUnitCommand> = ::std::mem::MaybeUninit::uninit();
3581    let ptr = UNINIT.as_ptr();
3582    assert_eq!(
3583        ::std::mem::size_of::<SAttackUnitCommand>(),
3584        20usize,
3585        concat!("Size of: ", stringify!(SAttackUnitCommand))
3586    );
3587    assert_eq!(
3588        ::std::mem::align_of::<SAttackUnitCommand>(),
3589        4usize,
3590        concat!("Alignment of ", stringify!(SAttackUnitCommand))
3591    );
3592    assert_eq!(
3593        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3594        0usize,
3595        concat!(
3596            "Offset of field: ",
3597            stringify!(SAttackUnitCommand),
3598            "::",
3599            stringify!(unitId)
3600        )
3601    );
3602    assert_eq!(
3603        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3604        4usize,
3605        concat!(
3606            "Offset of field: ",
3607            stringify!(SAttackUnitCommand),
3608            "::",
3609            stringify!(groupId)
3610        )
3611    );
3612    assert_eq!(
3613        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3614        8usize,
3615        concat!(
3616            "Offset of field: ",
3617            stringify!(SAttackUnitCommand),
3618            "::",
3619            stringify!(options)
3620        )
3621    );
3622    assert_eq!(
3623        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3624        12usize,
3625        concat!(
3626            "Offset of field: ",
3627            stringify!(SAttackUnitCommand),
3628            "::",
3629            stringify!(timeOut)
3630        )
3631    );
3632    assert_eq!(
3633        unsafe { ::std::ptr::addr_of!((*ptr).toAttackUnitId) as usize - ptr as usize },
3634        16usize,
3635        concat!(
3636            "Offset of field: ",
3637            stringify!(SAttackUnitCommand),
3638            "::",
3639            stringify!(toAttackUnitId)
3640        )
3641    );
3642}
3643#[repr(C)]
3644#[derive(Debug, Copy, Clone)]
3645pub struct SAttackAreaUnitCommand {
3646    pub unitId: ::std::os::raw::c_int,
3647    pub groupId: ::std::os::raw::c_int,
3648    #[doc = " see enum UnitCommandOptions"]
3649    pub options: ::std::os::raw::c_short,
3650    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3651    pub timeOut: ::std::os::raw::c_int,
3652    pub toAttackPos_posF3: *mut f32,
3653    pub radius: f32,
3654}
3655#[test]
3656fn bindgen_test_layout_SAttackAreaUnitCommand() {
3657    const UNINIT: ::std::mem::MaybeUninit<SAttackAreaUnitCommand> =
3658        ::std::mem::MaybeUninit::uninit();
3659    let ptr = UNINIT.as_ptr();
3660    assert_eq!(
3661        ::std::mem::size_of::<SAttackAreaUnitCommand>(),
3662        32usize,
3663        concat!("Size of: ", stringify!(SAttackAreaUnitCommand))
3664    );
3665    assert_eq!(
3666        ::std::mem::align_of::<SAttackAreaUnitCommand>(),
3667        8usize,
3668        concat!("Alignment of ", stringify!(SAttackAreaUnitCommand))
3669    );
3670    assert_eq!(
3671        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3672        0usize,
3673        concat!(
3674            "Offset of field: ",
3675            stringify!(SAttackAreaUnitCommand),
3676            "::",
3677            stringify!(unitId)
3678        )
3679    );
3680    assert_eq!(
3681        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3682        4usize,
3683        concat!(
3684            "Offset of field: ",
3685            stringify!(SAttackAreaUnitCommand),
3686            "::",
3687            stringify!(groupId)
3688        )
3689    );
3690    assert_eq!(
3691        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3692        8usize,
3693        concat!(
3694            "Offset of field: ",
3695            stringify!(SAttackAreaUnitCommand),
3696            "::",
3697            stringify!(options)
3698        )
3699    );
3700    assert_eq!(
3701        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3702        12usize,
3703        concat!(
3704            "Offset of field: ",
3705            stringify!(SAttackAreaUnitCommand),
3706            "::",
3707            stringify!(timeOut)
3708        )
3709    );
3710    assert_eq!(
3711        unsafe { ::std::ptr::addr_of!((*ptr).toAttackPos_posF3) as usize - ptr as usize },
3712        16usize,
3713        concat!(
3714            "Offset of field: ",
3715            stringify!(SAttackAreaUnitCommand),
3716            "::",
3717            stringify!(toAttackPos_posF3)
3718        )
3719    );
3720    assert_eq!(
3721        unsafe { ::std::ptr::addr_of!((*ptr).radius) as usize - ptr as usize },
3722        24usize,
3723        concat!(
3724            "Offset of field: ",
3725            stringify!(SAttackAreaUnitCommand),
3726            "::",
3727            stringify!(radius)
3728        )
3729    );
3730}
3731#[repr(C)]
3732#[derive(Debug, Copy, Clone)]
3733pub struct SGuardUnitCommand {
3734    pub unitId: ::std::os::raw::c_int,
3735    pub groupId: ::std::os::raw::c_int,
3736    #[doc = " see enum UnitCommandOptions"]
3737    pub options: ::std::os::raw::c_short,
3738    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3739    pub timeOut: ::std::os::raw::c_int,
3740    pub toGuardUnitId: ::std::os::raw::c_int,
3741}
3742#[test]
3743fn bindgen_test_layout_SGuardUnitCommand() {
3744    const UNINIT: ::std::mem::MaybeUninit<SGuardUnitCommand> = ::std::mem::MaybeUninit::uninit();
3745    let ptr = UNINIT.as_ptr();
3746    assert_eq!(
3747        ::std::mem::size_of::<SGuardUnitCommand>(),
3748        20usize,
3749        concat!("Size of: ", stringify!(SGuardUnitCommand))
3750    );
3751    assert_eq!(
3752        ::std::mem::align_of::<SGuardUnitCommand>(),
3753        4usize,
3754        concat!("Alignment of ", stringify!(SGuardUnitCommand))
3755    );
3756    assert_eq!(
3757        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3758        0usize,
3759        concat!(
3760            "Offset of field: ",
3761            stringify!(SGuardUnitCommand),
3762            "::",
3763            stringify!(unitId)
3764        )
3765    );
3766    assert_eq!(
3767        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3768        4usize,
3769        concat!(
3770            "Offset of field: ",
3771            stringify!(SGuardUnitCommand),
3772            "::",
3773            stringify!(groupId)
3774        )
3775    );
3776    assert_eq!(
3777        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3778        8usize,
3779        concat!(
3780            "Offset of field: ",
3781            stringify!(SGuardUnitCommand),
3782            "::",
3783            stringify!(options)
3784        )
3785    );
3786    assert_eq!(
3787        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3788        12usize,
3789        concat!(
3790            "Offset of field: ",
3791            stringify!(SGuardUnitCommand),
3792            "::",
3793            stringify!(timeOut)
3794        )
3795    );
3796    assert_eq!(
3797        unsafe { ::std::ptr::addr_of!((*ptr).toGuardUnitId) as usize - ptr as usize },
3798        16usize,
3799        concat!(
3800            "Offset of field: ",
3801            stringify!(SGuardUnitCommand),
3802            "::",
3803            stringify!(toGuardUnitId)
3804        )
3805    );
3806}
3807#[repr(C)]
3808#[derive(Debug, Copy, Clone)]
3809pub struct SAiSelectUnitCommand {
3810    pub unitId: ::std::os::raw::c_int,
3811    pub groupId: ::std::os::raw::c_int,
3812    #[doc = " see enum UnitCommandOptions"]
3813    pub options: ::std::os::raw::c_short,
3814    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3815    pub timeOut: ::std::os::raw::c_int,
3816}
3817#[test]
3818fn bindgen_test_layout_SAiSelectUnitCommand() {
3819    const UNINIT: ::std::mem::MaybeUninit<SAiSelectUnitCommand> = ::std::mem::MaybeUninit::uninit();
3820    let ptr = UNINIT.as_ptr();
3821    assert_eq!(
3822        ::std::mem::size_of::<SAiSelectUnitCommand>(),
3823        16usize,
3824        concat!("Size of: ", stringify!(SAiSelectUnitCommand))
3825    );
3826    assert_eq!(
3827        ::std::mem::align_of::<SAiSelectUnitCommand>(),
3828        4usize,
3829        concat!("Alignment of ", stringify!(SAiSelectUnitCommand))
3830    );
3831    assert_eq!(
3832        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3833        0usize,
3834        concat!(
3835            "Offset of field: ",
3836            stringify!(SAiSelectUnitCommand),
3837            "::",
3838            stringify!(unitId)
3839        )
3840    );
3841    assert_eq!(
3842        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3843        4usize,
3844        concat!(
3845            "Offset of field: ",
3846            stringify!(SAiSelectUnitCommand),
3847            "::",
3848            stringify!(groupId)
3849        )
3850    );
3851    assert_eq!(
3852        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3853        8usize,
3854        concat!(
3855            "Offset of field: ",
3856            stringify!(SAiSelectUnitCommand),
3857            "::",
3858            stringify!(options)
3859        )
3860    );
3861    assert_eq!(
3862        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3863        12usize,
3864        concat!(
3865            "Offset of field: ",
3866            stringify!(SAiSelectUnitCommand),
3867            "::",
3868            stringify!(timeOut)
3869        )
3870    );
3871}
3872#[repr(C)]
3873#[derive(Debug, Copy, Clone)]
3874pub struct SGroupAddUnitCommand {
3875    pub unitId: ::std::os::raw::c_int,
3876    pub groupId: ::std::os::raw::c_int,
3877    #[doc = " see enum UnitCommandOptions"]
3878    pub options: ::std::os::raw::c_short,
3879    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3880    pub timeOut: ::std::os::raw::c_int,
3881    pub toGroupId: ::std::os::raw::c_int,
3882}
3883#[test]
3884fn bindgen_test_layout_SGroupAddUnitCommand() {
3885    const UNINIT: ::std::mem::MaybeUninit<SGroupAddUnitCommand> = ::std::mem::MaybeUninit::uninit();
3886    let ptr = UNINIT.as_ptr();
3887    assert_eq!(
3888        ::std::mem::size_of::<SGroupAddUnitCommand>(),
3889        20usize,
3890        concat!("Size of: ", stringify!(SGroupAddUnitCommand))
3891    );
3892    assert_eq!(
3893        ::std::mem::align_of::<SGroupAddUnitCommand>(),
3894        4usize,
3895        concat!("Alignment of ", stringify!(SGroupAddUnitCommand))
3896    );
3897    assert_eq!(
3898        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3899        0usize,
3900        concat!(
3901            "Offset of field: ",
3902            stringify!(SGroupAddUnitCommand),
3903            "::",
3904            stringify!(unitId)
3905        )
3906    );
3907    assert_eq!(
3908        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3909        4usize,
3910        concat!(
3911            "Offset of field: ",
3912            stringify!(SGroupAddUnitCommand),
3913            "::",
3914            stringify!(groupId)
3915        )
3916    );
3917    assert_eq!(
3918        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3919        8usize,
3920        concat!(
3921            "Offset of field: ",
3922            stringify!(SGroupAddUnitCommand),
3923            "::",
3924            stringify!(options)
3925        )
3926    );
3927    assert_eq!(
3928        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
3929        12usize,
3930        concat!(
3931            "Offset of field: ",
3932            stringify!(SGroupAddUnitCommand),
3933            "::",
3934            stringify!(timeOut)
3935        )
3936    );
3937    assert_eq!(
3938        unsafe { ::std::ptr::addr_of!((*ptr).toGroupId) as usize - ptr as usize },
3939        16usize,
3940        concat!(
3941            "Offset of field: ",
3942            stringify!(SGroupAddUnitCommand),
3943            "::",
3944            stringify!(toGroupId)
3945        )
3946    );
3947}
3948#[repr(C)]
3949#[derive(Debug, Copy, Clone)]
3950pub struct SGroupClearUnitCommand {
3951    pub unitId: ::std::os::raw::c_int,
3952    pub groupId: ::std::os::raw::c_int,
3953    #[doc = " see enum UnitCommandOptions"]
3954    pub options: ::std::os::raw::c_short,
3955    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
3956    pub timeOut: ::std::os::raw::c_int,
3957}
3958#[test]
3959fn bindgen_test_layout_SGroupClearUnitCommand() {
3960    const UNINIT: ::std::mem::MaybeUninit<SGroupClearUnitCommand> =
3961        ::std::mem::MaybeUninit::uninit();
3962    let ptr = UNINIT.as_ptr();
3963    assert_eq!(
3964        ::std::mem::size_of::<SGroupClearUnitCommand>(),
3965        16usize,
3966        concat!("Size of: ", stringify!(SGroupClearUnitCommand))
3967    );
3968    assert_eq!(
3969        ::std::mem::align_of::<SGroupClearUnitCommand>(),
3970        4usize,
3971        concat!("Alignment of ", stringify!(SGroupClearUnitCommand))
3972    );
3973    assert_eq!(
3974        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
3975        0usize,
3976        concat!(
3977            "Offset of field: ",
3978            stringify!(SGroupClearUnitCommand),
3979            "::",
3980            stringify!(unitId)
3981        )
3982    );
3983    assert_eq!(
3984        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
3985        4usize,
3986        concat!(
3987            "Offset of field: ",
3988            stringify!(SGroupClearUnitCommand),
3989            "::",
3990            stringify!(groupId)
3991        )
3992    );
3993    assert_eq!(
3994        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
3995        8usize,
3996        concat!(
3997            "Offset of field: ",
3998            stringify!(SGroupClearUnitCommand),
3999            "::",
4000            stringify!(options)
4001        )
4002    );
4003    assert_eq!(
4004        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4005        12usize,
4006        concat!(
4007            "Offset of field: ",
4008            stringify!(SGroupClearUnitCommand),
4009            "::",
4010            stringify!(timeOut)
4011        )
4012    );
4013}
4014#[repr(C)]
4015#[derive(Debug, Copy, Clone)]
4016pub struct SRepairUnitCommand {
4017    pub unitId: ::std::os::raw::c_int,
4018    pub groupId: ::std::os::raw::c_int,
4019    #[doc = " see enum UnitCommandOptions"]
4020    pub options: ::std::os::raw::c_short,
4021    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4022    pub timeOut: ::std::os::raw::c_int,
4023    pub toRepairUnitId: ::std::os::raw::c_int,
4024}
4025#[test]
4026fn bindgen_test_layout_SRepairUnitCommand() {
4027    const UNINIT: ::std::mem::MaybeUninit<SRepairUnitCommand> = ::std::mem::MaybeUninit::uninit();
4028    let ptr = UNINIT.as_ptr();
4029    assert_eq!(
4030        ::std::mem::size_of::<SRepairUnitCommand>(),
4031        20usize,
4032        concat!("Size of: ", stringify!(SRepairUnitCommand))
4033    );
4034    assert_eq!(
4035        ::std::mem::align_of::<SRepairUnitCommand>(),
4036        4usize,
4037        concat!("Alignment of ", stringify!(SRepairUnitCommand))
4038    );
4039    assert_eq!(
4040        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4041        0usize,
4042        concat!(
4043            "Offset of field: ",
4044            stringify!(SRepairUnitCommand),
4045            "::",
4046            stringify!(unitId)
4047        )
4048    );
4049    assert_eq!(
4050        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4051        4usize,
4052        concat!(
4053            "Offset of field: ",
4054            stringify!(SRepairUnitCommand),
4055            "::",
4056            stringify!(groupId)
4057        )
4058    );
4059    assert_eq!(
4060        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4061        8usize,
4062        concat!(
4063            "Offset of field: ",
4064            stringify!(SRepairUnitCommand),
4065            "::",
4066            stringify!(options)
4067        )
4068    );
4069    assert_eq!(
4070        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4071        12usize,
4072        concat!(
4073            "Offset of field: ",
4074            stringify!(SRepairUnitCommand),
4075            "::",
4076            stringify!(timeOut)
4077        )
4078    );
4079    assert_eq!(
4080        unsafe { ::std::ptr::addr_of!((*ptr).toRepairUnitId) as usize - ptr as usize },
4081        16usize,
4082        concat!(
4083            "Offset of field: ",
4084            stringify!(SRepairUnitCommand),
4085            "::",
4086            stringify!(toRepairUnitId)
4087        )
4088    );
4089}
4090#[repr(C)]
4091#[derive(Debug, Copy, Clone)]
4092pub struct SSetFireStateUnitCommand {
4093    pub unitId: ::std::os::raw::c_int,
4094    pub groupId: ::std::os::raw::c_int,
4095    #[doc = " see enum UnitCommandOptions"]
4096    pub options: ::std::os::raw::c_short,
4097    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4098    pub timeOut: ::std::os::raw::c_int,
4099    #[doc = " can be: 0=hold fire, 1=return fire, 2=fire at will"]
4100    pub fireState: ::std::os::raw::c_int,
4101}
4102#[test]
4103fn bindgen_test_layout_SSetFireStateUnitCommand() {
4104    const UNINIT: ::std::mem::MaybeUninit<SSetFireStateUnitCommand> =
4105        ::std::mem::MaybeUninit::uninit();
4106    let ptr = UNINIT.as_ptr();
4107    assert_eq!(
4108        ::std::mem::size_of::<SSetFireStateUnitCommand>(),
4109        20usize,
4110        concat!("Size of: ", stringify!(SSetFireStateUnitCommand))
4111    );
4112    assert_eq!(
4113        ::std::mem::align_of::<SSetFireStateUnitCommand>(),
4114        4usize,
4115        concat!("Alignment of ", stringify!(SSetFireStateUnitCommand))
4116    );
4117    assert_eq!(
4118        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4119        0usize,
4120        concat!(
4121            "Offset of field: ",
4122            stringify!(SSetFireStateUnitCommand),
4123            "::",
4124            stringify!(unitId)
4125        )
4126    );
4127    assert_eq!(
4128        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4129        4usize,
4130        concat!(
4131            "Offset of field: ",
4132            stringify!(SSetFireStateUnitCommand),
4133            "::",
4134            stringify!(groupId)
4135        )
4136    );
4137    assert_eq!(
4138        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4139        8usize,
4140        concat!(
4141            "Offset of field: ",
4142            stringify!(SSetFireStateUnitCommand),
4143            "::",
4144            stringify!(options)
4145        )
4146    );
4147    assert_eq!(
4148        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4149        12usize,
4150        concat!(
4151            "Offset of field: ",
4152            stringify!(SSetFireStateUnitCommand),
4153            "::",
4154            stringify!(timeOut)
4155        )
4156    );
4157    assert_eq!(
4158        unsafe { ::std::ptr::addr_of!((*ptr).fireState) as usize - ptr as usize },
4159        16usize,
4160        concat!(
4161            "Offset of field: ",
4162            stringify!(SSetFireStateUnitCommand),
4163            "::",
4164            stringify!(fireState)
4165        )
4166    );
4167}
4168#[repr(C)]
4169#[derive(Debug, Copy, Clone)]
4170pub struct SSetMoveStateUnitCommand {
4171    pub unitId: ::std::os::raw::c_int,
4172    pub groupId: ::std::os::raw::c_int,
4173    #[doc = " see enum UnitCommandOptions"]
4174    pub options: ::std::os::raw::c_short,
4175    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4176    pub timeOut: ::std::os::raw::c_int,
4177    #[doc = " 0=hold pos, 1=maneuvre, 2=roam"]
4178    pub moveState: ::std::os::raw::c_int,
4179}
4180#[test]
4181fn bindgen_test_layout_SSetMoveStateUnitCommand() {
4182    const UNINIT: ::std::mem::MaybeUninit<SSetMoveStateUnitCommand> =
4183        ::std::mem::MaybeUninit::uninit();
4184    let ptr = UNINIT.as_ptr();
4185    assert_eq!(
4186        ::std::mem::size_of::<SSetMoveStateUnitCommand>(),
4187        20usize,
4188        concat!("Size of: ", stringify!(SSetMoveStateUnitCommand))
4189    );
4190    assert_eq!(
4191        ::std::mem::align_of::<SSetMoveStateUnitCommand>(),
4192        4usize,
4193        concat!("Alignment of ", stringify!(SSetMoveStateUnitCommand))
4194    );
4195    assert_eq!(
4196        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4197        0usize,
4198        concat!(
4199            "Offset of field: ",
4200            stringify!(SSetMoveStateUnitCommand),
4201            "::",
4202            stringify!(unitId)
4203        )
4204    );
4205    assert_eq!(
4206        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4207        4usize,
4208        concat!(
4209            "Offset of field: ",
4210            stringify!(SSetMoveStateUnitCommand),
4211            "::",
4212            stringify!(groupId)
4213        )
4214    );
4215    assert_eq!(
4216        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4217        8usize,
4218        concat!(
4219            "Offset of field: ",
4220            stringify!(SSetMoveStateUnitCommand),
4221            "::",
4222            stringify!(options)
4223        )
4224    );
4225    assert_eq!(
4226        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4227        12usize,
4228        concat!(
4229            "Offset of field: ",
4230            stringify!(SSetMoveStateUnitCommand),
4231            "::",
4232            stringify!(timeOut)
4233        )
4234    );
4235    assert_eq!(
4236        unsafe { ::std::ptr::addr_of!((*ptr).moveState) as usize - ptr as usize },
4237        16usize,
4238        concat!(
4239            "Offset of field: ",
4240            stringify!(SSetMoveStateUnitCommand),
4241            "::",
4242            stringify!(moveState)
4243        )
4244    );
4245}
4246#[repr(C)]
4247#[derive(Debug, Copy, Clone)]
4248pub struct SSetBaseUnitCommand {
4249    pub unitId: ::std::os::raw::c_int,
4250    pub groupId: ::std::os::raw::c_int,
4251    #[doc = " see enum UnitCommandOptions"]
4252    pub options: ::std::os::raw::c_short,
4253    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4254    pub timeOut: ::std::os::raw::c_int,
4255    pub basePos_posF3: *mut f32,
4256}
4257#[test]
4258fn bindgen_test_layout_SSetBaseUnitCommand() {
4259    const UNINIT: ::std::mem::MaybeUninit<SSetBaseUnitCommand> = ::std::mem::MaybeUninit::uninit();
4260    let ptr = UNINIT.as_ptr();
4261    assert_eq!(
4262        ::std::mem::size_of::<SSetBaseUnitCommand>(),
4263        24usize,
4264        concat!("Size of: ", stringify!(SSetBaseUnitCommand))
4265    );
4266    assert_eq!(
4267        ::std::mem::align_of::<SSetBaseUnitCommand>(),
4268        8usize,
4269        concat!("Alignment of ", stringify!(SSetBaseUnitCommand))
4270    );
4271    assert_eq!(
4272        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4273        0usize,
4274        concat!(
4275            "Offset of field: ",
4276            stringify!(SSetBaseUnitCommand),
4277            "::",
4278            stringify!(unitId)
4279        )
4280    );
4281    assert_eq!(
4282        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4283        4usize,
4284        concat!(
4285            "Offset of field: ",
4286            stringify!(SSetBaseUnitCommand),
4287            "::",
4288            stringify!(groupId)
4289        )
4290    );
4291    assert_eq!(
4292        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4293        8usize,
4294        concat!(
4295            "Offset of field: ",
4296            stringify!(SSetBaseUnitCommand),
4297            "::",
4298            stringify!(options)
4299        )
4300    );
4301    assert_eq!(
4302        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4303        12usize,
4304        concat!(
4305            "Offset of field: ",
4306            stringify!(SSetBaseUnitCommand),
4307            "::",
4308            stringify!(timeOut)
4309        )
4310    );
4311    assert_eq!(
4312        unsafe { ::std::ptr::addr_of!((*ptr).basePos_posF3) as usize - ptr as usize },
4313        16usize,
4314        concat!(
4315            "Offset of field: ",
4316            stringify!(SSetBaseUnitCommand),
4317            "::",
4318            stringify!(basePos_posF3)
4319        )
4320    );
4321}
4322#[repr(C)]
4323#[derive(Debug, Copy, Clone)]
4324pub struct SSelfDestroyUnitCommand {
4325    pub unitId: ::std::os::raw::c_int,
4326    pub groupId: ::std::os::raw::c_int,
4327    #[doc = " see enum UnitCommandOptions"]
4328    pub options: ::std::os::raw::c_short,
4329    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4330    pub timeOut: ::std::os::raw::c_int,
4331}
4332#[test]
4333fn bindgen_test_layout_SSelfDestroyUnitCommand() {
4334    const UNINIT: ::std::mem::MaybeUninit<SSelfDestroyUnitCommand> =
4335        ::std::mem::MaybeUninit::uninit();
4336    let ptr = UNINIT.as_ptr();
4337    assert_eq!(
4338        ::std::mem::size_of::<SSelfDestroyUnitCommand>(),
4339        16usize,
4340        concat!("Size of: ", stringify!(SSelfDestroyUnitCommand))
4341    );
4342    assert_eq!(
4343        ::std::mem::align_of::<SSelfDestroyUnitCommand>(),
4344        4usize,
4345        concat!("Alignment of ", stringify!(SSelfDestroyUnitCommand))
4346    );
4347    assert_eq!(
4348        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4349        0usize,
4350        concat!(
4351            "Offset of field: ",
4352            stringify!(SSelfDestroyUnitCommand),
4353            "::",
4354            stringify!(unitId)
4355        )
4356    );
4357    assert_eq!(
4358        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4359        4usize,
4360        concat!(
4361            "Offset of field: ",
4362            stringify!(SSelfDestroyUnitCommand),
4363            "::",
4364            stringify!(groupId)
4365        )
4366    );
4367    assert_eq!(
4368        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4369        8usize,
4370        concat!(
4371            "Offset of field: ",
4372            stringify!(SSelfDestroyUnitCommand),
4373            "::",
4374            stringify!(options)
4375        )
4376    );
4377    assert_eq!(
4378        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4379        12usize,
4380        concat!(
4381            "Offset of field: ",
4382            stringify!(SSelfDestroyUnitCommand),
4383            "::",
4384            stringify!(timeOut)
4385        )
4386    );
4387}
4388#[repr(C)]
4389#[derive(Debug, Copy, Clone)]
4390pub struct SLoadUnitsUnitCommand {
4391    pub unitId: ::std::os::raw::c_int,
4392    pub groupId: ::std::os::raw::c_int,
4393    #[doc = " see enum UnitCommandOptions"]
4394    pub options: ::std::os::raw::c_short,
4395    pub timeOut: ::std::os::raw::c_int,
4396    pub toLoadUnitIds: *mut ::std::os::raw::c_int,
4397    pub toLoadUnitIds_size: ::std::os::raw::c_int,
4398}
4399#[test]
4400fn bindgen_test_layout_SLoadUnitsUnitCommand() {
4401    const UNINIT: ::std::mem::MaybeUninit<SLoadUnitsUnitCommand> =
4402        ::std::mem::MaybeUninit::uninit();
4403    let ptr = UNINIT.as_ptr();
4404    assert_eq!(
4405        ::std::mem::size_of::<SLoadUnitsUnitCommand>(),
4406        32usize,
4407        concat!("Size of: ", stringify!(SLoadUnitsUnitCommand))
4408    );
4409    assert_eq!(
4410        ::std::mem::align_of::<SLoadUnitsUnitCommand>(),
4411        8usize,
4412        concat!("Alignment of ", stringify!(SLoadUnitsUnitCommand))
4413    );
4414    assert_eq!(
4415        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4416        0usize,
4417        concat!(
4418            "Offset of field: ",
4419            stringify!(SLoadUnitsUnitCommand),
4420            "::",
4421            stringify!(unitId)
4422        )
4423    );
4424    assert_eq!(
4425        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4426        4usize,
4427        concat!(
4428            "Offset of field: ",
4429            stringify!(SLoadUnitsUnitCommand),
4430            "::",
4431            stringify!(groupId)
4432        )
4433    );
4434    assert_eq!(
4435        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4436        8usize,
4437        concat!(
4438            "Offset of field: ",
4439            stringify!(SLoadUnitsUnitCommand),
4440            "::",
4441            stringify!(options)
4442        )
4443    );
4444    assert_eq!(
4445        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4446        12usize,
4447        concat!(
4448            "Offset of field: ",
4449            stringify!(SLoadUnitsUnitCommand),
4450            "::",
4451            stringify!(timeOut)
4452        )
4453    );
4454    assert_eq!(
4455        unsafe { ::std::ptr::addr_of!((*ptr).toLoadUnitIds) as usize - ptr as usize },
4456        16usize,
4457        concat!(
4458            "Offset of field: ",
4459            stringify!(SLoadUnitsUnitCommand),
4460            "::",
4461            stringify!(toLoadUnitIds)
4462        )
4463    );
4464    assert_eq!(
4465        unsafe { ::std::ptr::addr_of!((*ptr).toLoadUnitIds_size) as usize - ptr as usize },
4466        24usize,
4467        concat!(
4468            "Offset of field: ",
4469            stringify!(SLoadUnitsUnitCommand),
4470            "::",
4471            stringify!(toLoadUnitIds_size)
4472        )
4473    );
4474}
4475#[repr(C)]
4476#[derive(Debug, Copy, Clone)]
4477pub struct SLoadUnitsAreaUnitCommand {
4478    pub unitId: ::std::os::raw::c_int,
4479    pub groupId: ::std::os::raw::c_int,
4480    #[doc = " see enum UnitCommandOptions"]
4481    pub options: ::std::os::raw::c_short,
4482    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4483    pub timeOut: ::std::os::raw::c_int,
4484    pub pos_posF3: *mut f32,
4485    pub radius: f32,
4486}
4487#[test]
4488fn bindgen_test_layout_SLoadUnitsAreaUnitCommand() {
4489    const UNINIT: ::std::mem::MaybeUninit<SLoadUnitsAreaUnitCommand> =
4490        ::std::mem::MaybeUninit::uninit();
4491    let ptr = UNINIT.as_ptr();
4492    assert_eq!(
4493        ::std::mem::size_of::<SLoadUnitsAreaUnitCommand>(),
4494        32usize,
4495        concat!("Size of: ", stringify!(SLoadUnitsAreaUnitCommand))
4496    );
4497    assert_eq!(
4498        ::std::mem::align_of::<SLoadUnitsAreaUnitCommand>(),
4499        8usize,
4500        concat!("Alignment of ", stringify!(SLoadUnitsAreaUnitCommand))
4501    );
4502    assert_eq!(
4503        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4504        0usize,
4505        concat!(
4506            "Offset of field: ",
4507            stringify!(SLoadUnitsAreaUnitCommand),
4508            "::",
4509            stringify!(unitId)
4510        )
4511    );
4512    assert_eq!(
4513        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4514        4usize,
4515        concat!(
4516            "Offset of field: ",
4517            stringify!(SLoadUnitsAreaUnitCommand),
4518            "::",
4519            stringify!(groupId)
4520        )
4521    );
4522    assert_eq!(
4523        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4524        8usize,
4525        concat!(
4526            "Offset of field: ",
4527            stringify!(SLoadUnitsAreaUnitCommand),
4528            "::",
4529            stringify!(options)
4530        )
4531    );
4532    assert_eq!(
4533        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4534        12usize,
4535        concat!(
4536            "Offset of field: ",
4537            stringify!(SLoadUnitsAreaUnitCommand),
4538            "::",
4539            stringify!(timeOut)
4540        )
4541    );
4542    assert_eq!(
4543        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
4544        16usize,
4545        concat!(
4546            "Offset of field: ",
4547            stringify!(SLoadUnitsAreaUnitCommand),
4548            "::",
4549            stringify!(pos_posF3)
4550        )
4551    );
4552    assert_eq!(
4553        unsafe { ::std::ptr::addr_of!((*ptr).radius) as usize - ptr as usize },
4554        24usize,
4555        concat!(
4556            "Offset of field: ",
4557            stringify!(SLoadUnitsAreaUnitCommand),
4558            "::",
4559            stringify!(radius)
4560        )
4561    );
4562}
4563#[repr(C)]
4564#[derive(Debug, Copy, Clone)]
4565pub struct SLoadOntoUnitCommand {
4566    pub unitId: ::std::os::raw::c_int,
4567    pub groupId: ::std::os::raw::c_int,
4568    #[doc = " see enum UnitCommandOptions"]
4569    pub options: ::std::os::raw::c_short,
4570    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4571    pub timeOut: ::std::os::raw::c_int,
4572    pub transporterUnitId: ::std::os::raw::c_int,
4573}
4574#[test]
4575fn bindgen_test_layout_SLoadOntoUnitCommand() {
4576    const UNINIT: ::std::mem::MaybeUninit<SLoadOntoUnitCommand> = ::std::mem::MaybeUninit::uninit();
4577    let ptr = UNINIT.as_ptr();
4578    assert_eq!(
4579        ::std::mem::size_of::<SLoadOntoUnitCommand>(),
4580        20usize,
4581        concat!("Size of: ", stringify!(SLoadOntoUnitCommand))
4582    );
4583    assert_eq!(
4584        ::std::mem::align_of::<SLoadOntoUnitCommand>(),
4585        4usize,
4586        concat!("Alignment of ", stringify!(SLoadOntoUnitCommand))
4587    );
4588    assert_eq!(
4589        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4590        0usize,
4591        concat!(
4592            "Offset of field: ",
4593            stringify!(SLoadOntoUnitCommand),
4594            "::",
4595            stringify!(unitId)
4596        )
4597    );
4598    assert_eq!(
4599        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4600        4usize,
4601        concat!(
4602            "Offset of field: ",
4603            stringify!(SLoadOntoUnitCommand),
4604            "::",
4605            stringify!(groupId)
4606        )
4607    );
4608    assert_eq!(
4609        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4610        8usize,
4611        concat!(
4612            "Offset of field: ",
4613            stringify!(SLoadOntoUnitCommand),
4614            "::",
4615            stringify!(options)
4616        )
4617    );
4618    assert_eq!(
4619        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4620        12usize,
4621        concat!(
4622            "Offset of field: ",
4623            stringify!(SLoadOntoUnitCommand),
4624            "::",
4625            stringify!(timeOut)
4626        )
4627    );
4628    assert_eq!(
4629        unsafe { ::std::ptr::addr_of!((*ptr).transporterUnitId) as usize - ptr as usize },
4630        16usize,
4631        concat!(
4632            "Offset of field: ",
4633            stringify!(SLoadOntoUnitCommand),
4634            "::",
4635            stringify!(transporterUnitId)
4636        )
4637    );
4638}
4639#[repr(C)]
4640#[derive(Debug, Copy, Clone)]
4641pub struct SUnloadUnitCommand {
4642    pub unitId: ::std::os::raw::c_int,
4643    pub groupId: ::std::os::raw::c_int,
4644    #[doc = " see enum UnitCommandOptions"]
4645    pub options: ::std::os::raw::c_short,
4646    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4647    pub timeOut: ::std::os::raw::c_int,
4648    pub toPos_posF3: *mut f32,
4649    pub toUnloadUnitId: ::std::os::raw::c_int,
4650}
4651#[test]
4652fn bindgen_test_layout_SUnloadUnitCommand() {
4653    const UNINIT: ::std::mem::MaybeUninit<SUnloadUnitCommand> = ::std::mem::MaybeUninit::uninit();
4654    let ptr = UNINIT.as_ptr();
4655    assert_eq!(
4656        ::std::mem::size_of::<SUnloadUnitCommand>(),
4657        32usize,
4658        concat!("Size of: ", stringify!(SUnloadUnitCommand))
4659    );
4660    assert_eq!(
4661        ::std::mem::align_of::<SUnloadUnitCommand>(),
4662        8usize,
4663        concat!("Alignment of ", stringify!(SUnloadUnitCommand))
4664    );
4665    assert_eq!(
4666        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4667        0usize,
4668        concat!(
4669            "Offset of field: ",
4670            stringify!(SUnloadUnitCommand),
4671            "::",
4672            stringify!(unitId)
4673        )
4674    );
4675    assert_eq!(
4676        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4677        4usize,
4678        concat!(
4679            "Offset of field: ",
4680            stringify!(SUnloadUnitCommand),
4681            "::",
4682            stringify!(groupId)
4683        )
4684    );
4685    assert_eq!(
4686        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4687        8usize,
4688        concat!(
4689            "Offset of field: ",
4690            stringify!(SUnloadUnitCommand),
4691            "::",
4692            stringify!(options)
4693        )
4694    );
4695    assert_eq!(
4696        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4697        12usize,
4698        concat!(
4699            "Offset of field: ",
4700            stringify!(SUnloadUnitCommand),
4701            "::",
4702            stringify!(timeOut)
4703        )
4704    );
4705    assert_eq!(
4706        unsafe { ::std::ptr::addr_of!((*ptr).toPos_posF3) as usize - ptr as usize },
4707        16usize,
4708        concat!(
4709            "Offset of field: ",
4710            stringify!(SUnloadUnitCommand),
4711            "::",
4712            stringify!(toPos_posF3)
4713        )
4714    );
4715    assert_eq!(
4716        unsafe { ::std::ptr::addr_of!((*ptr).toUnloadUnitId) as usize - ptr as usize },
4717        24usize,
4718        concat!(
4719            "Offset of field: ",
4720            stringify!(SUnloadUnitCommand),
4721            "::",
4722            stringify!(toUnloadUnitId)
4723        )
4724    );
4725}
4726#[repr(C)]
4727#[derive(Debug, Copy, Clone)]
4728pub struct SUnloadUnitsAreaUnitCommand {
4729    pub unitId: ::std::os::raw::c_int,
4730    pub groupId: ::std::os::raw::c_int,
4731    #[doc = " see enum UnitCommandOptions"]
4732    pub options: ::std::os::raw::c_short,
4733    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4734    pub timeOut: ::std::os::raw::c_int,
4735    pub toPos_posF3: *mut f32,
4736    pub radius: f32,
4737}
4738#[test]
4739fn bindgen_test_layout_SUnloadUnitsAreaUnitCommand() {
4740    const UNINIT: ::std::mem::MaybeUninit<SUnloadUnitsAreaUnitCommand> =
4741        ::std::mem::MaybeUninit::uninit();
4742    let ptr = UNINIT.as_ptr();
4743    assert_eq!(
4744        ::std::mem::size_of::<SUnloadUnitsAreaUnitCommand>(),
4745        32usize,
4746        concat!("Size of: ", stringify!(SUnloadUnitsAreaUnitCommand))
4747    );
4748    assert_eq!(
4749        ::std::mem::align_of::<SUnloadUnitsAreaUnitCommand>(),
4750        8usize,
4751        concat!("Alignment of ", stringify!(SUnloadUnitsAreaUnitCommand))
4752    );
4753    assert_eq!(
4754        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4755        0usize,
4756        concat!(
4757            "Offset of field: ",
4758            stringify!(SUnloadUnitsAreaUnitCommand),
4759            "::",
4760            stringify!(unitId)
4761        )
4762    );
4763    assert_eq!(
4764        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4765        4usize,
4766        concat!(
4767            "Offset of field: ",
4768            stringify!(SUnloadUnitsAreaUnitCommand),
4769            "::",
4770            stringify!(groupId)
4771        )
4772    );
4773    assert_eq!(
4774        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4775        8usize,
4776        concat!(
4777            "Offset of field: ",
4778            stringify!(SUnloadUnitsAreaUnitCommand),
4779            "::",
4780            stringify!(options)
4781        )
4782    );
4783    assert_eq!(
4784        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4785        12usize,
4786        concat!(
4787            "Offset of field: ",
4788            stringify!(SUnloadUnitsAreaUnitCommand),
4789            "::",
4790            stringify!(timeOut)
4791        )
4792    );
4793    assert_eq!(
4794        unsafe { ::std::ptr::addr_of!((*ptr).toPos_posF3) as usize - ptr as usize },
4795        16usize,
4796        concat!(
4797            "Offset of field: ",
4798            stringify!(SUnloadUnitsAreaUnitCommand),
4799            "::",
4800            stringify!(toPos_posF3)
4801        )
4802    );
4803    assert_eq!(
4804        unsafe { ::std::ptr::addr_of!((*ptr).radius) as usize - ptr as usize },
4805        24usize,
4806        concat!(
4807            "Offset of field: ",
4808            stringify!(SUnloadUnitsAreaUnitCommand),
4809            "::",
4810            stringify!(radius)
4811        )
4812    );
4813}
4814#[repr(C)]
4815#[derive(Debug, Copy, Clone)]
4816pub struct SSetOnOffUnitCommand {
4817    pub unitId: ::std::os::raw::c_int,
4818    pub groupId: ::std::os::raw::c_int,
4819    #[doc = " see enum UnitCommandOptions"]
4820    pub options: ::std::os::raw::c_short,
4821    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4822    pub timeOut: ::std::os::raw::c_int,
4823    pub on: bool,
4824}
4825#[test]
4826fn bindgen_test_layout_SSetOnOffUnitCommand() {
4827    const UNINIT: ::std::mem::MaybeUninit<SSetOnOffUnitCommand> = ::std::mem::MaybeUninit::uninit();
4828    let ptr = UNINIT.as_ptr();
4829    assert_eq!(
4830        ::std::mem::size_of::<SSetOnOffUnitCommand>(),
4831        20usize,
4832        concat!("Size of: ", stringify!(SSetOnOffUnitCommand))
4833    );
4834    assert_eq!(
4835        ::std::mem::align_of::<SSetOnOffUnitCommand>(),
4836        4usize,
4837        concat!("Alignment of ", stringify!(SSetOnOffUnitCommand))
4838    );
4839    assert_eq!(
4840        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4841        0usize,
4842        concat!(
4843            "Offset of field: ",
4844            stringify!(SSetOnOffUnitCommand),
4845            "::",
4846            stringify!(unitId)
4847        )
4848    );
4849    assert_eq!(
4850        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4851        4usize,
4852        concat!(
4853            "Offset of field: ",
4854            stringify!(SSetOnOffUnitCommand),
4855            "::",
4856            stringify!(groupId)
4857        )
4858    );
4859    assert_eq!(
4860        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4861        8usize,
4862        concat!(
4863            "Offset of field: ",
4864            stringify!(SSetOnOffUnitCommand),
4865            "::",
4866            stringify!(options)
4867        )
4868    );
4869    assert_eq!(
4870        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4871        12usize,
4872        concat!(
4873            "Offset of field: ",
4874            stringify!(SSetOnOffUnitCommand),
4875            "::",
4876            stringify!(timeOut)
4877        )
4878    );
4879    assert_eq!(
4880        unsafe { ::std::ptr::addr_of!((*ptr).on) as usize - ptr as usize },
4881        16usize,
4882        concat!(
4883            "Offset of field: ",
4884            stringify!(SSetOnOffUnitCommand),
4885            "::",
4886            stringify!(on)
4887        )
4888    );
4889}
4890#[repr(C)]
4891#[derive(Debug, Copy, Clone)]
4892pub struct SReclaimUnitUnitCommand {
4893    pub unitId: ::std::os::raw::c_int,
4894    pub groupId: ::std::os::raw::c_int,
4895    #[doc = " see enum UnitCommandOptions"]
4896    pub options: ::std::os::raw::c_short,
4897    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4898    pub timeOut: ::std::os::raw::c_int,
4899    pub toReclaimUnitId: ::std::os::raw::c_int,
4900}
4901#[test]
4902fn bindgen_test_layout_SReclaimUnitUnitCommand() {
4903    const UNINIT: ::std::mem::MaybeUninit<SReclaimUnitUnitCommand> =
4904        ::std::mem::MaybeUninit::uninit();
4905    let ptr = UNINIT.as_ptr();
4906    assert_eq!(
4907        ::std::mem::size_of::<SReclaimUnitUnitCommand>(),
4908        20usize,
4909        concat!("Size of: ", stringify!(SReclaimUnitUnitCommand))
4910    );
4911    assert_eq!(
4912        ::std::mem::align_of::<SReclaimUnitUnitCommand>(),
4913        4usize,
4914        concat!("Alignment of ", stringify!(SReclaimUnitUnitCommand))
4915    );
4916    assert_eq!(
4917        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4918        0usize,
4919        concat!(
4920            "Offset of field: ",
4921            stringify!(SReclaimUnitUnitCommand),
4922            "::",
4923            stringify!(unitId)
4924        )
4925    );
4926    assert_eq!(
4927        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
4928        4usize,
4929        concat!(
4930            "Offset of field: ",
4931            stringify!(SReclaimUnitUnitCommand),
4932            "::",
4933            stringify!(groupId)
4934        )
4935    );
4936    assert_eq!(
4937        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
4938        8usize,
4939        concat!(
4940            "Offset of field: ",
4941            stringify!(SReclaimUnitUnitCommand),
4942            "::",
4943            stringify!(options)
4944        )
4945    );
4946    assert_eq!(
4947        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
4948        12usize,
4949        concat!(
4950            "Offset of field: ",
4951            stringify!(SReclaimUnitUnitCommand),
4952            "::",
4953            stringify!(timeOut)
4954        )
4955    );
4956    assert_eq!(
4957        unsafe { ::std::ptr::addr_of!((*ptr).toReclaimUnitId) as usize - ptr as usize },
4958        16usize,
4959        concat!(
4960            "Offset of field: ",
4961            stringify!(SReclaimUnitUnitCommand),
4962            "::",
4963            stringify!(toReclaimUnitId)
4964        )
4965    );
4966}
4967#[repr(C)]
4968#[derive(Debug, Copy, Clone)]
4969pub struct SReclaimFeatureUnitCommand {
4970    pub unitId: ::std::os::raw::c_int,
4971    pub groupId: ::std::os::raw::c_int,
4972    #[doc = " see enum UnitCommandOptions"]
4973    pub options: ::std::os::raw::c_short,
4974    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
4975    pub timeOut: ::std::os::raw::c_int,
4976    pub toReclaimFeatureId: ::std::os::raw::c_int,
4977}
4978#[test]
4979fn bindgen_test_layout_SReclaimFeatureUnitCommand() {
4980    const UNINIT: ::std::mem::MaybeUninit<SReclaimFeatureUnitCommand> =
4981        ::std::mem::MaybeUninit::uninit();
4982    let ptr = UNINIT.as_ptr();
4983    assert_eq!(
4984        ::std::mem::size_of::<SReclaimFeatureUnitCommand>(),
4985        20usize,
4986        concat!("Size of: ", stringify!(SReclaimFeatureUnitCommand))
4987    );
4988    assert_eq!(
4989        ::std::mem::align_of::<SReclaimFeatureUnitCommand>(),
4990        4usize,
4991        concat!("Alignment of ", stringify!(SReclaimFeatureUnitCommand))
4992    );
4993    assert_eq!(
4994        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
4995        0usize,
4996        concat!(
4997            "Offset of field: ",
4998            stringify!(SReclaimFeatureUnitCommand),
4999            "::",
5000            stringify!(unitId)
5001        )
5002    );
5003    assert_eq!(
5004        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5005        4usize,
5006        concat!(
5007            "Offset of field: ",
5008            stringify!(SReclaimFeatureUnitCommand),
5009            "::",
5010            stringify!(groupId)
5011        )
5012    );
5013    assert_eq!(
5014        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5015        8usize,
5016        concat!(
5017            "Offset of field: ",
5018            stringify!(SReclaimFeatureUnitCommand),
5019            "::",
5020            stringify!(options)
5021        )
5022    );
5023    assert_eq!(
5024        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5025        12usize,
5026        concat!(
5027            "Offset of field: ",
5028            stringify!(SReclaimFeatureUnitCommand),
5029            "::",
5030            stringify!(timeOut)
5031        )
5032    );
5033    assert_eq!(
5034        unsafe { ::std::ptr::addr_of!((*ptr).toReclaimFeatureId) as usize - ptr as usize },
5035        16usize,
5036        concat!(
5037            "Offset of field: ",
5038            stringify!(SReclaimFeatureUnitCommand),
5039            "::",
5040            stringify!(toReclaimFeatureId)
5041        )
5042    );
5043}
5044#[repr(C)]
5045#[derive(Debug, Copy, Clone)]
5046pub struct SReclaimAreaUnitCommand {
5047    pub unitId: ::std::os::raw::c_int,
5048    pub groupId: ::std::os::raw::c_int,
5049    #[doc = " see enum UnitCommandOptions"]
5050    pub options: ::std::os::raw::c_short,
5051    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5052    pub timeOut: ::std::os::raw::c_int,
5053    pub pos_posF3: *mut f32,
5054    pub radius: f32,
5055}
5056#[test]
5057fn bindgen_test_layout_SReclaimAreaUnitCommand() {
5058    const UNINIT: ::std::mem::MaybeUninit<SReclaimAreaUnitCommand> =
5059        ::std::mem::MaybeUninit::uninit();
5060    let ptr = UNINIT.as_ptr();
5061    assert_eq!(
5062        ::std::mem::size_of::<SReclaimAreaUnitCommand>(),
5063        32usize,
5064        concat!("Size of: ", stringify!(SReclaimAreaUnitCommand))
5065    );
5066    assert_eq!(
5067        ::std::mem::align_of::<SReclaimAreaUnitCommand>(),
5068        8usize,
5069        concat!("Alignment of ", stringify!(SReclaimAreaUnitCommand))
5070    );
5071    assert_eq!(
5072        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5073        0usize,
5074        concat!(
5075            "Offset of field: ",
5076            stringify!(SReclaimAreaUnitCommand),
5077            "::",
5078            stringify!(unitId)
5079        )
5080    );
5081    assert_eq!(
5082        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5083        4usize,
5084        concat!(
5085            "Offset of field: ",
5086            stringify!(SReclaimAreaUnitCommand),
5087            "::",
5088            stringify!(groupId)
5089        )
5090    );
5091    assert_eq!(
5092        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5093        8usize,
5094        concat!(
5095            "Offset of field: ",
5096            stringify!(SReclaimAreaUnitCommand),
5097            "::",
5098            stringify!(options)
5099        )
5100    );
5101    assert_eq!(
5102        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5103        12usize,
5104        concat!(
5105            "Offset of field: ",
5106            stringify!(SReclaimAreaUnitCommand),
5107            "::",
5108            stringify!(timeOut)
5109        )
5110    );
5111    assert_eq!(
5112        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
5113        16usize,
5114        concat!(
5115            "Offset of field: ",
5116            stringify!(SReclaimAreaUnitCommand),
5117            "::",
5118            stringify!(pos_posF3)
5119        )
5120    );
5121    assert_eq!(
5122        unsafe { ::std::ptr::addr_of!((*ptr).radius) as usize - ptr as usize },
5123        24usize,
5124        concat!(
5125            "Offset of field: ",
5126            stringify!(SReclaimAreaUnitCommand),
5127            "::",
5128            stringify!(radius)
5129        )
5130    );
5131}
5132#[repr(C)]
5133#[derive(Debug, Copy, Clone)]
5134pub struct SCloakUnitCommand {
5135    pub unitId: ::std::os::raw::c_int,
5136    pub groupId: ::std::os::raw::c_int,
5137    #[doc = " see enum UnitCommandOptions"]
5138    pub options: ::std::os::raw::c_short,
5139    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5140    pub timeOut: ::std::os::raw::c_int,
5141    pub cloak: bool,
5142}
5143#[test]
5144fn bindgen_test_layout_SCloakUnitCommand() {
5145    const UNINIT: ::std::mem::MaybeUninit<SCloakUnitCommand> = ::std::mem::MaybeUninit::uninit();
5146    let ptr = UNINIT.as_ptr();
5147    assert_eq!(
5148        ::std::mem::size_of::<SCloakUnitCommand>(),
5149        20usize,
5150        concat!("Size of: ", stringify!(SCloakUnitCommand))
5151    );
5152    assert_eq!(
5153        ::std::mem::align_of::<SCloakUnitCommand>(),
5154        4usize,
5155        concat!("Alignment of ", stringify!(SCloakUnitCommand))
5156    );
5157    assert_eq!(
5158        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5159        0usize,
5160        concat!(
5161            "Offset of field: ",
5162            stringify!(SCloakUnitCommand),
5163            "::",
5164            stringify!(unitId)
5165        )
5166    );
5167    assert_eq!(
5168        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5169        4usize,
5170        concat!(
5171            "Offset of field: ",
5172            stringify!(SCloakUnitCommand),
5173            "::",
5174            stringify!(groupId)
5175        )
5176    );
5177    assert_eq!(
5178        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5179        8usize,
5180        concat!(
5181            "Offset of field: ",
5182            stringify!(SCloakUnitCommand),
5183            "::",
5184            stringify!(options)
5185        )
5186    );
5187    assert_eq!(
5188        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5189        12usize,
5190        concat!(
5191            "Offset of field: ",
5192            stringify!(SCloakUnitCommand),
5193            "::",
5194            stringify!(timeOut)
5195        )
5196    );
5197    assert_eq!(
5198        unsafe { ::std::ptr::addr_of!((*ptr).cloak) as usize - ptr as usize },
5199        16usize,
5200        concat!(
5201            "Offset of field: ",
5202            stringify!(SCloakUnitCommand),
5203            "::",
5204            stringify!(cloak)
5205        )
5206    );
5207}
5208#[repr(C)]
5209#[derive(Debug, Copy, Clone)]
5210pub struct SStockpileUnitCommand {
5211    pub unitId: ::std::os::raw::c_int,
5212    pub groupId: ::std::os::raw::c_int,
5213    #[doc = " see enum UnitCommandOptions"]
5214    pub options: ::std::os::raw::c_short,
5215    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5216    pub timeOut: ::std::os::raw::c_int,
5217}
5218#[test]
5219fn bindgen_test_layout_SStockpileUnitCommand() {
5220    const UNINIT: ::std::mem::MaybeUninit<SStockpileUnitCommand> =
5221        ::std::mem::MaybeUninit::uninit();
5222    let ptr = UNINIT.as_ptr();
5223    assert_eq!(
5224        ::std::mem::size_of::<SStockpileUnitCommand>(),
5225        16usize,
5226        concat!("Size of: ", stringify!(SStockpileUnitCommand))
5227    );
5228    assert_eq!(
5229        ::std::mem::align_of::<SStockpileUnitCommand>(),
5230        4usize,
5231        concat!("Alignment of ", stringify!(SStockpileUnitCommand))
5232    );
5233    assert_eq!(
5234        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5235        0usize,
5236        concat!(
5237            "Offset of field: ",
5238            stringify!(SStockpileUnitCommand),
5239            "::",
5240            stringify!(unitId)
5241        )
5242    );
5243    assert_eq!(
5244        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5245        4usize,
5246        concat!(
5247            "Offset of field: ",
5248            stringify!(SStockpileUnitCommand),
5249            "::",
5250            stringify!(groupId)
5251        )
5252    );
5253    assert_eq!(
5254        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5255        8usize,
5256        concat!(
5257            "Offset of field: ",
5258            stringify!(SStockpileUnitCommand),
5259            "::",
5260            stringify!(options)
5261        )
5262    );
5263    assert_eq!(
5264        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5265        12usize,
5266        concat!(
5267            "Offset of field: ",
5268            stringify!(SStockpileUnitCommand),
5269            "::",
5270            stringify!(timeOut)
5271        )
5272    );
5273}
5274#[repr(C)]
5275#[derive(Debug, Copy, Clone)]
5276pub struct SDGunUnitCommand {
5277    pub unitId: ::std::os::raw::c_int,
5278    pub groupId: ::std::os::raw::c_int,
5279    #[doc = " see enum UnitCommandOptions"]
5280    pub options: ::std::os::raw::c_short,
5281    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5282    pub timeOut: ::std::os::raw::c_int,
5283    pub toAttackUnitId: ::std::os::raw::c_int,
5284}
5285#[test]
5286fn bindgen_test_layout_SDGunUnitCommand() {
5287    const UNINIT: ::std::mem::MaybeUninit<SDGunUnitCommand> = ::std::mem::MaybeUninit::uninit();
5288    let ptr = UNINIT.as_ptr();
5289    assert_eq!(
5290        ::std::mem::size_of::<SDGunUnitCommand>(),
5291        20usize,
5292        concat!("Size of: ", stringify!(SDGunUnitCommand))
5293    );
5294    assert_eq!(
5295        ::std::mem::align_of::<SDGunUnitCommand>(),
5296        4usize,
5297        concat!("Alignment of ", stringify!(SDGunUnitCommand))
5298    );
5299    assert_eq!(
5300        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5301        0usize,
5302        concat!(
5303            "Offset of field: ",
5304            stringify!(SDGunUnitCommand),
5305            "::",
5306            stringify!(unitId)
5307        )
5308    );
5309    assert_eq!(
5310        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5311        4usize,
5312        concat!(
5313            "Offset of field: ",
5314            stringify!(SDGunUnitCommand),
5315            "::",
5316            stringify!(groupId)
5317        )
5318    );
5319    assert_eq!(
5320        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5321        8usize,
5322        concat!(
5323            "Offset of field: ",
5324            stringify!(SDGunUnitCommand),
5325            "::",
5326            stringify!(options)
5327        )
5328    );
5329    assert_eq!(
5330        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5331        12usize,
5332        concat!(
5333            "Offset of field: ",
5334            stringify!(SDGunUnitCommand),
5335            "::",
5336            stringify!(timeOut)
5337        )
5338    );
5339    assert_eq!(
5340        unsafe { ::std::ptr::addr_of!((*ptr).toAttackUnitId) as usize - ptr as usize },
5341        16usize,
5342        concat!(
5343            "Offset of field: ",
5344            stringify!(SDGunUnitCommand),
5345            "::",
5346            stringify!(toAttackUnitId)
5347        )
5348    );
5349}
5350#[repr(C)]
5351#[derive(Debug, Copy, Clone)]
5352pub struct SDGunPosUnitCommand {
5353    pub unitId: ::std::os::raw::c_int,
5354    pub groupId: ::std::os::raw::c_int,
5355    #[doc = " see enum UnitCommandOptions"]
5356    pub options: ::std::os::raw::c_short,
5357    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5358    pub timeOut: ::std::os::raw::c_int,
5359    pub pos_posF3: *mut f32,
5360}
5361#[test]
5362fn bindgen_test_layout_SDGunPosUnitCommand() {
5363    const UNINIT: ::std::mem::MaybeUninit<SDGunPosUnitCommand> = ::std::mem::MaybeUninit::uninit();
5364    let ptr = UNINIT.as_ptr();
5365    assert_eq!(
5366        ::std::mem::size_of::<SDGunPosUnitCommand>(),
5367        24usize,
5368        concat!("Size of: ", stringify!(SDGunPosUnitCommand))
5369    );
5370    assert_eq!(
5371        ::std::mem::align_of::<SDGunPosUnitCommand>(),
5372        8usize,
5373        concat!("Alignment of ", stringify!(SDGunPosUnitCommand))
5374    );
5375    assert_eq!(
5376        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5377        0usize,
5378        concat!(
5379            "Offset of field: ",
5380            stringify!(SDGunPosUnitCommand),
5381            "::",
5382            stringify!(unitId)
5383        )
5384    );
5385    assert_eq!(
5386        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5387        4usize,
5388        concat!(
5389            "Offset of field: ",
5390            stringify!(SDGunPosUnitCommand),
5391            "::",
5392            stringify!(groupId)
5393        )
5394    );
5395    assert_eq!(
5396        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5397        8usize,
5398        concat!(
5399            "Offset of field: ",
5400            stringify!(SDGunPosUnitCommand),
5401            "::",
5402            stringify!(options)
5403        )
5404    );
5405    assert_eq!(
5406        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5407        12usize,
5408        concat!(
5409            "Offset of field: ",
5410            stringify!(SDGunPosUnitCommand),
5411            "::",
5412            stringify!(timeOut)
5413        )
5414    );
5415    assert_eq!(
5416        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
5417        16usize,
5418        concat!(
5419            "Offset of field: ",
5420            stringify!(SDGunPosUnitCommand),
5421            "::",
5422            stringify!(pos_posF3)
5423        )
5424    );
5425}
5426#[repr(C)]
5427#[derive(Debug, Copy, Clone)]
5428pub struct SRestoreAreaUnitCommand {
5429    pub unitId: ::std::os::raw::c_int,
5430    pub groupId: ::std::os::raw::c_int,
5431    #[doc = " see enum UnitCommandOptions"]
5432    pub options: ::std::os::raw::c_short,
5433    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5434    pub timeOut: ::std::os::raw::c_int,
5435    pub pos_posF3: *mut f32,
5436    pub radius: f32,
5437}
5438#[test]
5439fn bindgen_test_layout_SRestoreAreaUnitCommand() {
5440    const UNINIT: ::std::mem::MaybeUninit<SRestoreAreaUnitCommand> =
5441        ::std::mem::MaybeUninit::uninit();
5442    let ptr = UNINIT.as_ptr();
5443    assert_eq!(
5444        ::std::mem::size_of::<SRestoreAreaUnitCommand>(),
5445        32usize,
5446        concat!("Size of: ", stringify!(SRestoreAreaUnitCommand))
5447    );
5448    assert_eq!(
5449        ::std::mem::align_of::<SRestoreAreaUnitCommand>(),
5450        8usize,
5451        concat!("Alignment of ", stringify!(SRestoreAreaUnitCommand))
5452    );
5453    assert_eq!(
5454        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5455        0usize,
5456        concat!(
5457            "Offset of field: ",
5458            stringify!(SRestoreAreaUnitCommand),
5459            "::",
5460            stringify!(unitId)
5461        )
5462    );
5463    assert_eq!(
5464        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5465        4usize,
5466        concat!(
5467            "Offset of field: ",
5468            stringify!(SRestoreAreaUnitCommand),
5469            "::",
5470            stringify!(groupId)
5471        )
5472    );
5473    assert_eq!(
5474        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5475        8usize,
5476        concat!(
5477            "Offset of field: ",
5478            stringify!(SRestoreAreaUnitCommand),
5479            "::",
5480            stringify!(options)
5481        )
5482    );
5483    assert_eq!(
5484        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5485        12usize,
5486        concat!(
5487            "Offset of field: ",
5488            stringify!(SRestoreAreaUnitCommand),
5489            "::",
5490            stringify!(timeOut)
5491        )
5492    );
5493    assert_eq!(
5494        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
5495        16usize,
5496        concat!(
5497            "Offset of field: ",
5498            stringify!(SRestoreAreaUnitCommand),
5499            "::",
5500            stringify!(pos_posF3)
5501        )
5502    );
5503    assert_eq!(
5504        unsafe { ::std::ptr::addr_of!((*ptr).radius) as usize - ptr as usize },
5505        24usize,
5506        concat!(
5507            "Offset of field: ",
5508            stringify!(SRestoreAreaUnitCommand),
5509            "::",
5510            stringify!(radius)
5511        )
5512    );
5513}
5514#[repr(C)]
5515#[derive(Debug, Copy, Clone)]
5516pub struct SSetRepeatUnitCommand {
5517    pub unitId: ::std::os::raw::c_int,
5518    pub groupId: ::std::os::raw::c_int,
5519    #[doc = " see enum UnitCommandOptions"]
5520    pub options: ::std::os::raw::c_short,
5521    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5522    pub timeOut: ::std::os::raw::c_int,
5523    pub repeat: bool,
5524}
5525#[test]
5526fn bindgen_test_layout_SSetRepeatUnitCommand() {
5527    const UNINIT: ::std::mem::MaybeUninit<SSetRepeatUnitCommand> =
5528        ::std::mem::MaybeUninit::uninit();
5529    let ptr = UNINIT.as_ptr();
5530    assert_eq!(
5531        ::std::mem::size_of::<SSetRepeatUnitCommand>(),
5532        20usize,
5533        concat!("Size of: ", stringify!(SSetRepeatUnitCommand))
5534    );
5535    assert_eq!(
5536        ::std::mem::align_of::<SSetRepeatUnitCommand>(),
5537        4usize,
5538        concat!("Alignment of ", stringify!(SSetRepeatUnitCommand))
5539    );
5540    assert_eq!(
5541        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5542        0usize,
5543        concat!(
5544            "Offset of field: ",
5545            stringify!(SSetRepeatUnitCommand),
5546            "::",
5547            stringify!(unitId)
5548        )
5549    );
5550    assert_eq!(
5551        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5552        4usize,
5553        concat!(
5554            "Offset of field: ",
5555            stringify!(SSetRepeatUnitCommand),
5556            "::",
5557            stringify!(groupId)
5558        )
5559    );
5560    assert_eq!(
5561        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5562        8usize,
5563        concat!(
5564            "Offset of field: ",
5565            stringify!(SSetRepeatUnitCommand),
5566            "::",
5567            stringify!(options)
5568        )
5569    );
5570    assert_eq!(
5571        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5572        12usize,
5573        concat!(
5574            "Offset of field: ",
5575            stringify!(SSetRepeatUnitCommand),
5576            "::",
5577            stringify!(timeOut)
5578        )
5579    );
5580    assert_eq!(
5581        unsafe { ::std::ptr::addr_of!((*ptr).repeat) as usize - ptr as usize },
5582        16usize,
5583        concat!(
5584            "Offset of field: ",
5585            stringify!(SSetRepeatUnitCommand),
5586            "::",
5587            stringify!(repeat)
5588        )
5589    );
5590}
5591#[doc = " Tells weapons that support it to try to use a high trajectory"]
5592#[repr(C)]
5593#[derive(Debug, Copy, Clone)]
5594pub struct SSetTrajectoryUnitCommand {
5595    pub unitId: ::std::os::raw::c_int,
5596    pub groupId: ::std::os::raw::c_int,
5597    #[doc = " see enum UnitCommandOptions"]
5598    pub options: ::std::os::raw::c_short,
5599    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5600    pub timeOut: ::std::os::raw::c_int,
5601    #[doc = " 0: low-trajectory, 1: high-trajectory"]
5602    pub trajectory: ::std::os::raw::c_int,
5603}
5604#[test]
5605fn bindgen_test_layout_SSetTrajectoryUnitCommand() {
5606    const UNINIT: ::std::mem::MaybeUninit<SSetTrajectoryUnitCommand> =
5607        ::std::mem::MaybeUninit::uninit();
5608    let ptr = UNINIT.as_ptr();
5609    assert_eq!(
5610        ::std::mem::size_of::<SSetTrajectoryUnitCommand>(),
5611        20usize,
5612        concat!("Size of: ", stringify!(SSetTrajectoryUnitCommand))
5613    );
5614    assert_eq!(
5615        ::std::mem::align_of::<SSetTrajectoryUnitCommand>(),
5616        4usize,
5617        concat!("Alignment of ", stringify!(SSetTrajectoryUnitCommand))
5618    );
5619    assert_eq!(
5620        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5621        0usize,
5622        concat!(
5623            "Offset of field: ",
5624            stringify!(SSetTrajectoryUnitCommand),
5625            "::",
5626            stringify!(unitId)
5627        )
5628    );
5629    assert_eq!(
5630        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5631        4usize,
5632        concat!(
5633            "Offset of field: ",
5634            stringify!(SSetTrajectoryUnitCommand),
5635            "::",
5636            stringify!(groupId)
5637        )
5638    );
5639    assert_eq!(
5640        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5641        8usize,
5642        concat!(
5643            "Offset of field: ",
5644            stringify!(SSetTrajectoryUnitCommand),
5645            "::",
5646            stringify!(options)
5647        )
5648    );
5649    assert_eq!(
5650        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5651        12usize,
5652        concat!(
5653            "Offset of field: ",
5654            stringify!(SSetTrajectoryUnitCommand),
5655            "::",
5656            stringify!(timeOut)
5657        )
5658    );
5659    assert_eq!(
5660        unsafe { ::std::ptr::addr_of!((*ptr).trajectory) as usize - ptr as usize },
5661        16usize,
5662        concat!(
5663            "Offset of field: ",
5664            stringify!(SSetTrajectoryUnitCommand),
5665            "::",
5666            stringify!(trajectory)
5667        )
5668    );
5669}
5670#[repr(C)]
5671#[derive(Debug, Copy, Clone)]
5672pub struct SResurrectUnitCommand {
5673    pub unitId: ::std::os::raw::c_int,
5674    pub groupId: ::std::os::raw::c_int,
5675    #[doc = " see enum UnitCommandOptions"]
5676    pub options: ::std::os::raw::c_short,
5677    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5678    pub timeOut: ::std::os::raw::c_int,
5679    pub toResurrectFeatureId: ::std::os::raw::c_int,
5680}
5681#[test]
5682fn bindgen_test_layout_SResurrectUnitCommand() {
5683    const UNINIT: ::std::mem::MaybeUninit<SResurrectUnitCommand> =
5684        ::std::mem::MaybeUninit::uninit();
5685    let ptr = UNINIT.as_ptr();
5686    assert_eq!(
5687        ::std::mem::size_of::<SResurrectUnitCommand>(),
5688        20usize,
5689        concat!("Size of: ", stringify!(SResurrectUnitCommand))
5690    );
5691    assert_eq!(
5692        ::std::mem::align_of::<SResurrectUnitCommand>(),
5693        4usize,
5694        concat!("Alignment of ", stringify!(SResurrectUnitCommand))
5695    );
5696    assert_eq!(
5697        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5698        0usize,
5699        concat!(
5700            "Offset of field: ",
5701            stringify!(SResurrectUnitCommand),
5702            "::",
5703            stringify!(unitId)
5704        )
5705    );
5706    assert_eq!(
5707        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5708        4usize,
5709        concat!(
5710            "Offset of field: ",
5711            stringify!(SResurrectUnitCommand),
5712            "::",
5713            stringify!(groupId)
5714        )
5715    );
5716    assert_eq!(
5717        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5718        8usize,
5719        concat!(
5720            "Offset of field: ",
5721            stringify!(SResurrectUnitCommand),
5722            "::",
5723            stringify!(options)
5724        )
5725    );
5726    assert_eq!(
5727        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5728        12usize,
5729        concat!(
5730            "Offset of field: ",
5731            stringify!(SResurrectUnitCommand),
5732            "::",
5733            stringify!(timeOut)
5734        )
5735    );
5736    assert_eq!(
5737        unsafe { ::std::ptr::addr_of!((*ptr).toResurrectFeatureId) as usize - ptr as usize },
5738        16usize,
5739        concat!(
5740            "Offset of field: ",
5741            stringify!(SResurrectUnitCommand),
5742            "::",
5743            stringify!(toResurrectFeatureId)
5744        )
5745    );
5746}
5747#[repr(C)]
5748#[derive(Debug, Copy, Clone)]
5749pub struct SResurrectAreaUnitCommand {
5750    pub unitId: ::std::os::raw::c_int,
5751    pub groupId: ::std::os::raw::c_int,
5752    #[doc = " see enum UnitCommandOptions"]
5753    pub options: ::std::os::raw::c_short,
5754    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5755    pub timeOut: ::std::os::raw::c_int,
5756    pub pos_posF3: *mut f32,
5757    pub radius: f32,
5758}
5759#[test]
5760fn bindgen_test_layout_SResurrectAreaUnitCommand() {
5761    const UNINIT: ::std::mem::MaybeUninit<SResurrectAreaUnitCommand> =
5762        ::std::mem::MaybeUninit::uninit();
5763    let ptr = UNINIT.as_ptr();
5764    assert_eq!(
5765        ::std::mem::size_of::<SResurrectAreaUnitCommand>(),
5766        32usize,
5767        concat!("Size of: ", stringify!(SResurrectAreaUnitCommand))
5768    );
5769    assert_eq!(
5770        ::std::mem::align_of::<SResurrectAreaUnitCommand>(),
5771        8usize,
5772        concat!("Alignment of ", stringify!(SResurrectAreaUnitCommand))
5773    );
5774    assert_eq!(
5775        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5776        0usize,
5777        concat!(
5778            "Offset of field: ",
5779            stringify!(SResurrectAreaUnitCommand),
5780            "::",
5781            stringify!(unitId)
5782        )
5783    );
5784    assert_eq!(
5785        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5786        4usize,
5787        concat!(
5788            "Offset of field: ",
5789            stringify!(SResurrectAreaUnitCommand),
5790            "::",
5791            stringify!(groupId)
5792        )
5793    );
5794    assert_eq!(
5795        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5796        8usize,
5797        concat!(
5798            "Offset of field: ",
5799            stringify!(SResurrectAreaUnitCommand),
5800            "::",
5801            stringify!(options)
5802        )
5803    );
5804    assert_eq!(
5805        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5806        12usize,
5807        concat!(
5808            "Offset of field: ",
5809            stringify!(SResurrectAreaUnitCommand),
5810            "::",
5811            stringify!(timeOut)
5812        )
5813    );
5814    assert_eq!(
5815        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
5816        16usize,
5817        concat!(
5818            "Offset of field: ",
5819            stringify!(SResurrectAreaUnitCommand),
5820            "::",
5821            stringify!(pos_posF3)
5822        )
5823    );
5824    assert_eq!(
5825        unsafe { ::std::ptr::addr_of!((*ptr).radius) as usize - ptr as usize },
5826        24usize,
5827        concat!(
5828            "Offset of field: ",
5829            stringify!(SResurrectAreaUnitCommand),
5830            "::",
5831            stringify!(radius)
5832        )
5833    );
5834}
5835#[repr(C)]
5836#[derive(Debug, Copy, Clone)]
5837pub struct SCaptureUnitCommand {
5838    pub unitId: ::std::os::raw::c_int,
5839    pub groupId: ::std::os::raw::c_int,
5840    #[doc = " see enum UnitCommandOptions"]
5841    pub options: ::std::os::raw::c_short,
5842    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5843    pub timeOut: ::std::os::raw::c_int,
5844    pub toCaptureUnitId: ::std::os::raw::c_int,
5845}
5846#[test]
5847fn bindgen_test_layout_SCaptureUnitCommand() {
5848    const UNINIT: ::std::mem::MaybeUninit<SCaptureUnitCommand> = ::std::mem::MaybeUninit::uninit();
5849    let ptr = UNINIT.as_ptr();
5850    assert_eq!(
5851        ::std::mem::size_of::<SCaptureUnitCommand>(),
5852        20usize,
5853        concat!("Size of: ", stringify!(SCaptureUnitCommand))
5854    );
5855    assert_eq!(
5856        ::std::mem::align_of::<SCaptureUnitCommand>(),
5857        4usize,
5858        concat!("Alignment of ", stringify!(SCaptureUnitCommand))
5859    );
5860    assert_eq!(
5861        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5862        0usize,
5863        concat!(
5864            "Offset of field: ",
5865            stringify!(SCaptureUnitCommand),
5866            "::",
5867            stringify!(unitId)
5868        )
5869    );
5870    assert_eq!(
5871        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5872        4usize,
5873        concat!(
5874            "Offset of field: ",
5875            stringify!(SCaptureUnitCommand),
5876            "::",
5877            stringify!(groupId)
5878        )
5879    );
5880    assert_eq!(
5881        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5882        8usize,
5883        concat!(
5884            "Offset of field: ",
5885            stringify!(SCaptureUnitCommand),
5886            "::",
5887            stringify!(options)
5888        )
5889    );
5890    assert_eq!(
5891        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5892        12usize,
5893        concat!(
5894            "Offset of field: ",
5895            stringify!(SCaptureUnitCommand),
5896            "::",
5897            stringify!(timeOut)
5898        )
5899    );
5900    assert_eq!(
5901        unsafe { ::std::ptr::addr_of!((*ptr).toCaptureUnitId) as usize - ptr as usize },
5902        16usize,
5903        concat!(
5904            "Offset of field: ",
5905            stringify!(SCaptureUnitCommand),
5906            "::",
5907            stringify!(toCaptureUnitId)
5908        )
5909    );
5910}
5911#[repr(C)]
5912#[derive(Debug, Copy, Clone)]
5913pub struct SCaptureAreaUnitCommand {
5914    pub unitId: ::std::os::raw::c_int,
5915    pub groupId: ::std::os::raw::c_int,
5916    #[doc = " see enum UnitCommandOptions"]
5917    pub options: ::std::os::raw::c_short,
5918    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
5919    pub timeOut: ::std::os::raw::c_int,
5920    pub pos_posF3: *mut f32,
5921    pub radius: f32,
5922}
5923#[test]
5924fn bindgen_test_layout_SCaptureAreaUnitCommand() {
5925    const UNINIT: ::std::mem::MaybeUninit<SCaptureAreaUnitCommand> =
5926        ::std::mem::MaybeUninit::uninit();
5927    let ptr = UNINIT.as_ptr();
5928    assert_eq!(
5929        ::std::mem::size_of::<SCaptureAreaUnitCommand>(),
5930        32usize,
5931        concat!("Size of: ", stringify!(SCaptureAreaUnitCommand))
5932    );
5933    assert_eq!(
5934        ::std::mem::align_of::<SCaptureAreaUnitCommand>(),
5935        8usize,
5936        concat!("Alignment of ", stringify!(SCaptureAreaUnitCommand))
5937    );
5938    assert_eq!(
5939        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
5940        0usize,
5941        concat!(
5942            "Offset of field: ",
5943            stringify!(SCaptureAreaUnitCommand),
5944            "::",
5945            stringify!(unitId)
5946        )
5947    );
5948    assert_eq!(
5949        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
5950        4usize,
5951        concat!(
5952            "Offset of field: ",
5953            stringify!(SCaptureAreaUnitCommand),
5954            "::",
5955            stringify!(groupId)
5956        )
5957    );
5958    assert_eq!(
5959        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
5960        8usize,
5961        concat!(
5962            "Offset of field: ",
5963            stringify!(SCaptureAreaUnitCommand),
5964            "::",
5965            stringify!(options)
5966        )
5967    );
5968    assert_eq!(
5969        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
5970        12usize,
5971        concat!(
5972            "Offset of field: ",
5973            stringify!(SCaptureAreaUnitCommand),
5974            "::",
5975            stringify!(timeOut)
5976        )
5977    );
5978    assert_eq!(
5979        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
5980        16usize,
5981        concat!(
5982            "Offset of field: ",
5983            stringify!(SCaptureAreaUnitCommand),
5984            "::",
5985            stringify!(pos_posF3)
5986        )
5987    );
5988    assert_eq!(
5989        unsafe { ::std::ptr::addr_of!((*ptr).radius) as usize - ptr as usize },
5990        24usize,
5991        concat!(
5992            "Offset of field: ",
5993            stringify!(SCaptureAreaUnitCommand),
5994            "::",
5995            stringify!(radius)
5996        )
5997    );
5998}
5999#[doc = " Set the percentage of health at which a unit will return to a save place.\n This only works for a few units so far, mainly aircraft."]
6000#[repr(C)]
6001#[derive(Debug, Copy, Clone)]
6002pub struct SSetAutoRepairLevelUnitCommand {
6003    pub unitId: ::std::os::raw::c_int,
6004    pub groupId: ::std::os::raw::c_int,
6005    #[doc = " see enum UnitCommandOptions"]
6006    pub options: ::std::os::raw::c_short,
6007    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
6008    pub timeOut: ::std::os::raw::c_int,
6009    #[doc = " 0: 0%, 1: 30%, 2: 50%, 3: 80%"]
6010    pub autoRepairLevel: ::std::os::raw::c_int,
6011}
6012#[test]
6013fn bindgen_test_layout_SSetAutoRepairLevelUnitCommand() {
6014    const UNINIT: ::std::mem::MaybeUninit<SSetAutoRepairLevelUnitCommand> =
6015        ::std::mem::MaybeUninit::uninit();
6016    let ptr = UNINIT.as_ptr();
6017    assert_eq!(
6018        ::std::mem::size_of::<SSetAutoRepairLevelUnitCommand>(),
6019        20usize,
6020        concat!("Size of: ", stringify!(SSetAutoRepairLevelUnitCommand))
6021    );
6022    assert_eq!(
6023        ::std::mem::align_of::<SSetAutoRepairLevelUnitCommand>(),
6024        4usize,
6025        concat!("Alignment of ", stringify!(SSetAutoRepairLevelUnitCommand))
6026    );
6027    assert_eq!(
6028        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
6029        0usize,
6030        concat!(
6031            "Offset of field: ",
6032            stringify!(SSetAutoRepairLevelUnitCommand),
6033            "::",
6034            stringify!(unitId)
6035        )
6036    );
6037    assert_eq!(
6038        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
6039        4usize,
6040        concat!(
6041            "Offset of field: ",
6042            stringify!(SSetAutoRepairLevelUnitCommand),
6043            "::",
6044            stringify!(groupId)
6045        )
6046    );
6047    assert_eq!(
6048        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
6049        8usize,
6050        concat!(
6051            "Offset of field: ",
6052            stringify!(SSetAutoRepairLevelUnitCommand),
6053            "::",
6054            stringify!(options)
6055        )
6056    );
6057    assert_eq!(
6058        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
6059        12usize,
6060        concat!(
6061            "Offset of field: ",
6062            stringify!(SSetAutoRepairLevelUnitCommand),
6063            "::",
6064            stringify!(timeOut)
6065        )
6066    );
6067    assert_eq!(
6068        unsafe { ::std::ptr::addr_of!((*ptr).autoRepairLevel) as usize - ptr as usize },
6069        16usize,
6070        concat!(
6071            "Offset of field: ",
6072            stringify!(SSetAutoRepairLevelUnitCommand),
6073            "::",
6074            stringify!(autoRepairLevel)
6075        )
6076    );
6077}
6078#[doc = " Set what a unit should do when it is idle.\n This only works for a few units so far, mainly aircraft."]
6079#[repr(C)]
6080#[derive(Debug, Copy, Clone)]
6081pub struct SSetIdleModeUnitCommand {
6082    pub unitId: ::std::os::raw::c_int,
6083    pub groupId: ::std::os::raw::c_int,
6084    #[doc = " see enum UnitCommandOptions"]
6085    pub options: ::std::os::raw::c_short,
6086    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
6087    pub timeOut: ::std::os::raw::c_int,
6088    #[doc = " 0: fly, 1: land"]
6089    pub idleMode: ::std::os::raw::c_int,
6090}
6091#[test]
6092fn bindgen_test_layout_SSetIdleModeUnitCommand() {
6093    const UNINIT: ::std::mem::MaybeUninit<SSetIdleModeUnitCommand> =
6094        ::std::mem::MaybeUninit::uninit();
6095    let ptr = UNINIT.as_ptr();
6096    assert_eq!(
6097        ::std::mem::size_of::<SSetIdleModeUnitCommand>(),
6098        20usize,
6099        concat!("Size of: ", stringify!(SSetIdleModeUnitCommand))
6100    );
6101    assert_eq!(
6102        ::std::mem::align_of::<SSetIdleModeUnitCommand>(),
6103        4usize,
6104        concat!("Alignment of ", stringify!(SSetIdleModeUnitCommand))
6105    );
6106    assert_eq!(
6107        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
6108        0usize,
6109        concat!(
6110            "Offset of field: ",
6111            stringify!(SSetIdleModeUnitCommand),
6112            "::",
6113            stringify!(unitId)
6114        )
6115    );
6116    assert_eq!(
6117        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
6118        4usize,
6119        concat!(
6120            "Offset of field: ",
6121            stringify!(SSetIdleModeUnitCommand),
6122            "::",
6123            stringify!(groupId)
6124        )
6125    );
6126    assert_eq!(
6127        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
6128        8usize,
6129        concat!(
6130            "Offset of field: ",
6131            stringify!(SSetIdleModeUnitCommand),
6132            "::",
6133            stringify!(options)
6134        )
6135    );
6136    assert_eq!(
6137        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
6138        12usize,
6139        concat!(
6140            "Offset of field: ",
6141            stringify!(SSetIdleModeUnitCommand),
6142            "::",
6143            stringify!(timeOut)
6144        )
6145    );
6146    assert_eq!(
6147        unsafe { ::std::ptr::addr_of!((*ptr).idleMode) as usize - ptr as usize },
6148        16usize,
6149        concat!(
6150            "Offset of field: ",
6151            stringify!(SSetIdleModeUnitCommand),
6152            "::",
6153            stringify!(idleMode)
6154        )
6155    );
6156}
6157#[repr(C)]
6158#[derive(Debug, Copy, Clone)]
6159pub struct SCustomUnitCommand {
6160    pub unitId: ::std::os::raw::c_int,
6161    pub groupId: ::std::os::raw::c_int,
6162    #[doc = " see enum UnitCommandOptions"]
6163    pub options: ::std::os::raw::c_short,
6164    #[doc = " At which frame the command will time-out and consequently be removed,\n if execution of it has not yet begun.\n Can only be set locally, is not sent over the network, and is used\n for temporary orders.\n default: MAX_INT (-> do not time-out)\n example: currentFrame + 15"]
6165    pub timeOut: ::std::os::raw::c_int,
6166    pub cmdId: ::std::os::raw::c_int,
6167    pub params: *mut f32,
6168    pub params_size: ::std::os::raw::c_int,
6169}
6170#[test]
6171fn bindgen_test_layout_SCustomUnitCommand() {
6172    const UNINIT: ::std::mem::MaybeUninit<SCustomUnitCommand> = ::std::mem::MaybeUninit::uninit();
6173    let ptr = UNINIT.as_ptr();
6174    assert_eq!(
6175        ::std::mem::size_of::<SCustomUnitCommand>(),
6176        40usize,
6177        concat!("Size of: ", stringify!(SCustomUnitCommand))
6178    );
6179    assert_eq!(
6180        ::std::mem::align_of::<SCustomUnitCommand>(),
6181        8usize,
6182        concat!("Alignment of ", stringify!(SCustomUnitCommand))
6183    );
6184    assert_eq!(
6185        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
6186        0usize,
6187        concat!(
6188            "Offset of field: ",
6189            stringify!(SCustomUnitCommand),
6190            "::",
6191            stringify!(unitId)
6192        )
6193    );
6194    assert_eq!(
6195        unsafe { ::std::ptr::addr_of!((*ptr).groupId) as usize - ptr as usize },
6196        4usize,
6197        concat!(
6198            "Offset of field: ",
6199            stringify!(SCustomUnitCommand),
6200            "::",
6201            stringify!(groupId)
6202        )
6203    );
6204    assert_eq!(
6205        unsafe { ::std::ptr::addr_of!((*ptr).options) as usize - ptr as usize },
6206        8usize,
6207        concat!(
6208            "Offset of field: ",
6209            stringify!(SCustomUnitCommand),
6210            "::",
6211            stringify!(options)
6212        )
6213    );
6214    assert_eq!(
6215        unsafe { ::std::ptr::addr_of!((*ptr).timeOut) as usize - ptr as usize },
6216        12usize,
6217        concat!(
6218            "Offset of field: ",
6219            stringify!(SCustomUnitCommand),
6220            "::",
6221            stringify!(timeOut)
6222        )
6223    );
6224    assert_eq!(
6225        unsafe { ::std::ptr::addr_of!((*ptr).cmdId) as usize - ptr as usize },
6226        16usize,
6227        concat!(
6228            "Offset of field: ",
6229            stringify!(SCustomUnitCommand),
6230            "::",
6231            stringify!(cmdId)
6232        )
6233    );
6234    assert_eq!(
6235        unsafe { ::std::ptr::addr_of!((*ptr).params) as usize - ptr as usize },
6236        24usize,
6237        concat!(
6238            "Offset of field: ",
6239            stringify!(SCustomUnitCommand),
6240            "::",
6241            stringify!(params)
6242        )
6243    );
6244    assert_eq!(
6245        unsafe { ::std::ptr::addr_of!((*ptr).params_size) as usize - ptr as usize },
6246        32usize,
6247        concat!(
6248            "Offset of field: ",
6249            stringify!(SCustomUnitCommand),
6250            "::",
6251            stringify!(params_size)
6252        )
6253    );
6254}
6255#[repr(C)]
6256#[derive(Debug, Copy, Clone)]
6257pub struct STraceRayCommand {
6258    pub rayPos_posF3: *mut f32,
6259    pub rayDir_posF3: *mut f32,
6260    pub rayLen: f32,
6261    pub srcUnitId: ::std::os::raw::c_int,
6262    pub ret_hitUnitId: ::std::os::raw::c_int,
6263    pub flags: ::std::os::raw::c_int,
6264}
6265#[test]
6266fn bindgen_test_layout_STraceRayCommand() {
6267    const UNINIT: ::std::mem::MaybeUninit<STraceRayCommand> = ::std::mem::MaybeUninit::uninit();
6268    let ptr = UNINIT.as_ptr();
6269    assert_eq!(
6270        ::std::mem::size_of::<STraceRayCommand>(),
6271        32usize,
6272        concat!("Size of: ", stringify!(STraceRayCommand))
6273    );
6274    assert_eq!(
6275        ::std::mem::align_of::<STraceRayCommand>(),
6276        8usize,
6277        concat!("Alignment of ", stringify!(STraceRayCommand))
6278    );
6279    assert_eq!(
6280        unsafe { ::std::ptr::addr_of!((*ptr).rayPos_posF3) as usize - ptr as usize },
6281        0usize,
6282        concat!(
6283            "Offset of field: ",
6284            stringify!(STraceRayCommand),
6285            "::",
6286            stringify!(rayPos_posF3)
6287        )
6288    );
6289    assert_eq!(
6290        unsafe { ::std::ptr::addr_of!((*ptr).rayDir_posF3) as usize - ptr as usize },
6291        8usize,
6292        concat!(
6293            "Offset of field: ",
6294            stringify!(STraceRayCommand),
6295            "::",
6296            stringify!(rayDir_posF3)
6297        )
6298    );
6299    assert_eq!(
6300        unsafe { ::std::ptr::addr_of!((*ptr).rayLen) as usize - ptr as usize },
6301        16usize,
6302        concat!(
6303            "Offset of field: ",
6304            stringify!(STraceRayCommand),
6305            "::",
6306            stringify!(rayLen)
6307        )
6308    );
6309    assert_eq!(
6310        unsafe { ::std::ptr::addr_of!((*ptr).srcUnitId) as usize - ptr as usize },
6311        20usize,
6312        concat!(
6313            "Offset of field: ",
6314            stringify!(STraceRayCommand),
6315            "::",
6316            stringify!(srcUnitId)
6317        )
6318    );
6319    assert_eq!(
6320        unsafe { ::std::ptr::addr_of!((*ptr).ret_hitUnitId) as usize - ptr as usize },
6321        24usize,
6322        concat!(
6323            "Offset of field: ",
6324            stringify!(STraceRayCommand),
6325            "::",
6326            stringify!(ret_hitUnitId)
6327        )
6328    );
6329    assert_eq!(
6330        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
6331        28usize,
6332        concat!(
6333            "Offset of field: ",
6334            stringify!(STraceRayCommand),
6335            "::",
6336            stringify!(flags)
6337        )
6338    );
6339}
6340#[repr(C)]
6341#[derive(Debug, Copy, Clone)]
6342pub struct SFeatureTraceRayCommand {
6343    pub rayPos_posF3: *mut f32,
6344    pub rayDir_posF3: *mut f32,
6345    pub rayLen: f32,
6346    pub srcUnitId: ::std::os::raw::c_int,
6347    pub ret_hitFeatureId: ::std::os::raw::c_int,
6348    pub flags: ::std::os::raw::c_int,
6349}
6350#[test]
6351fn bindgen_test_layout_SFeatureTraceRayCommand() {
6352    const UNINIT: ::std::mem::MaybeUninit<SFeatureTraceRayCommand> =
6353        ::std::mem::MaybeUninit::uninit();
6354    let ptr = UNINIT.as_ptr();
6355    assert_eq!(
6356        ::std::mem::size_of::<SFeatureTraceRayCommand>(),
6357        32usize,
6358        concat!("Size of: ", stringify!(SFeatureTraceRayCommand))
6359    );
6360    assert_eq!(
6361        ::std::mem::align_of::<SFeatureTraceRayCommand>(),
6362        8usize,
6363        concat!("Alignment of ", stringify!(SFeatureTraceRayCommand))
6364    );
6365    assert_eq!(
6366        unsafe { ::std::ptr::addr_of!((*ptr).rayPos_posF3) as usize - ptr as usize },
6367        0usize,
6368        concat!(
6369            "Offset of field: ",
6370            stringify!(SFeatureTraceRayCommand),
6371            "::",
6372            stringify!(rayPos_posF3)
6373        )
6374    );
6375    assert_eq!(
6376        unsafe { ::std::ptr::addr_of!((*ptr).rayDir_posF3) as usize - ptr as usize },
6377        8usize,
6378        concat!(
6379            "Offset of field: ",
6380            stringify!(SFeatureTraceRayCommand),
6381            "::",
6382            stringify!(rayDir_posF3)
6383        )
6384    );
6385    assert_eq!(
6386        unsafe { ::std::ptr::addr_of!((*ptr).rayLen) as usize - ptr as usize },
6387        16usize,
6388        concat!(
6389            "Offset of field: ",
6390            stringify!(SFeatureTraceRayCommand),
6391            "::",
6392            stringify!(rayLen)
6393        )
6394    );
6395    assert_eq!(
6396        unsafe { ::std::ptr::addr_of!((*ptr).srcUnitId) as usize - ptr as usize },
6397        20usize,
6398        concat!(
6399            "Offset of field: ",
6400            stringify!(SFeatureTraceRayCommand),
6401            "::",
6402            stringify!(srcUnitId)
6403        )
6404    );
6405    assert_eq!(
6406        unsafe { ::std::ptr::addr_of!((*ptr).ret_hitFeatureId) as usize - ptr as usize },
6407        24usize,
6408        concat!(
6409            "Offset of field: ",
6410            stringify!(SFeatureTraceRayCommand),
6411            "::",
6412            stringify!(ret_hitFeatureId)
6413        )
6414    );
6415    assert_eq!(
6416        unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
6417        28usize,
6418        concat!(
6419            "Offset of field: ",
6420            stringify!(SFeatureTraceRayCommand),
6421            "::",
6422            stringify!(flags)
6423        )
6424    );
6425}
6426#[doc = " Pause or unpauses the game.\n This is meant for debugging purposes.\n Keep in mind that pause does not happen immediately.\n It can take 1-2 frames in single- and up to 10 frames in multiplayer matches."]
6427#[repr(C)]
6428#[derive(Debug, Copy, Clone)]
6429pub struct SPauseCommand {
6430    pub enable: bool,
6431    #[doc = " reason for the (un-)pause, or NULL"]
6432    pub reason: *const ::std::os::raw::c_char,
6433}
6434#[test]
6435fn bindgen_test_layout_SPauseCommand() {
6436    const UNINIT: ::std::mem::MaybeUninit<SPauseCommand> = ::std::mem::MaybeUninit::uninit();
6437    let ptr = UNINIT.as_ptr();
6438    assert_eq!(
6439        ::std::mem::size_of::<SPauseCommand>(),
6440        16usize,
6441        concat!("Size of: ", stringify!(SPauseCommand))
6442    );
6443    assert_eq!(
6444        ::std::mem::align_of::<SPauseCommand>(),
6445        8usize,
6446        concat!("Alignment of ", stringify!(SPauseCommand))
6447    );
6448    assert_eq!(
6449        unsafe { ::std::ptr::addr_of!((*ptr).enable) as usize - ptr as usize },
6450        0usize,
6451        concat!(
6452            "Offset of field: ",
6453            stringify!(SPauseCommand),
6454            "::",
6455            stringify!(enable)
6456        )
6457    );
6458    assert_eq!(
6459        unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize },
6460        8usize,
6461        concat!(
6462            "Offset of field: ",
6463            stringify!(SPauseCommand),
6464            "::",
6465            stringify!(reason)
6466        )
6467    );
6468}
6469#[repr(C)]
6470#[derive(Debug, Copy, Clone)]
6471pub struct SSetPositionGraphDrawerDebugCommand {
6472    pub x: f32,
6473    pub y: f32,
6474}
6475#[test]
6476fn bindgen_test_layout_SSetPositionGraphDrawerDebugCommand() {
6477    const UNINIT: ::std::mem::MaybeUninit<SSetPositionGraphDrawerDebugCommand> =
6478        ::std::mem::MaybeUninit::uninit();
6479    let ptr = UNINIT.as_ptr();
6480    assert_eq!(
6481        ::std::mem::size_of::<SSetPositionGraphDrawerDebugCommand>(),
6482        8usize,
6483        concat!("Size of: ", stringify!(SSetPositionGraphDrawerDebugCommand))
6484    );
6485    assert_eq!(
6486        ::std::mem::align_of::<SSetPositionGraphDrawerDebugCommand>(),
6487        4usize,
6488        concat!(
6489            "Alignment of ",
6490            stringify!(SSetPositionGraphDrawerDebugCommand)
6491        )
6492    );
6493    assert_eq!(
6494        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
6495        0usize,
6496        concat!(
6497            "Offset of field: ",
6498            stringify!(SSetPositionGraphDrawerDebugCommand),
6499            "::",
6500            stringify!(x)
6501        )
6502    );
6503    assert_eq!(
6504        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
6505        4usize,
6506        concat!(
6507            "Offset of field: ",
6508            stringify!(SSetPositionGraphDrawerDebugCommand),
6509            "::",
6510            stringify!(y)
6511        )
6512    );
6513}
6514#[repr(C)]
6515#[derive(Debug, Copy, Clone)]
6516pub struct SSetSizeGraphDrawerDebugCommand {
6517    pub w: f32,
6518    pub h: f32,
6519}
6520#[test]
6521fn bindgen_test_layout_SSetSizeGraphDrawerDebugCommand() {
6522    const UNINIT: ::std::mem::MaybeUninit<SSetSizeGraphDrawerDebugCommand> =
6523        ::std::mem::MaybeUninit::uninit();
6524    let ptr = UNINIT.as_ptr();
6525    assert_eq!(
6526        ::std::mem::size_of::<SSetSizeGraphDrawerDebugCommand>(),
6527        8usize,
6528        concat!("Size of: ", stringify!(SSetSizeGraphDrawerDebugCommand))
6529    );
6530    assert_eq!(
6531        ::std::mem::align_of::<SSetSizeGraphDrawerDebugCommand>(),
6532        4usize,
6533        concat!("Alignment of ", stringify!(SSetSizeGraphDrawerDebugCommand))
6534    );
6535    assert_eq!(
6536        unsafe { ::std::ptr::addr_of!((*ptr).w) as usize - ptr as usize },
6537        0usize,
6538        concat!(
6539            "Offset of field: ",
6540            stringify!(SSetSizeGraphDrawerDebugCommand),
6541            "::",
6542            stringify!(w)
6543        )
6544    );
6545    assert_eq!(
6546        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
6547        4usize,
6548        concat!(
6549            "Offset of field: ",
6550            stringify!(SSetSizeGraphDrawerDebugCommand),
6551            "::",
6552            stringify!(h)
6553        )
6554    );
6555}
6556#[repr(C)]
6557#[derive(Debug, Copy, Clone)]
6558pub struct SAddPointLineGraphDrawerDebugCommand {
6559    pub lineId: ::std::os::raw::c_int,
6560    pub x: f32,
6561    pub y: f32,
6562}
6563#[test]
6564fn bindgen_test_layout_SAddPointLineGraphDrawerDebugCommand() {
6565    const UNINIT: ::std::mem::MaybeUninit<SAddPointLineGraphDrawerDebugCommand> =
6566        ::std::mem::MaybeUninit::uninit();
6567    let ptr = UNINIT.as_ptr();
6568    assert_eq!(
6569        ::std::mem::size_of::<SAddPointLineGraphDrawerDebugCommand>(),
6570        12usize,
6571        concat!(
6572            "Size of: ",
6573            stringify!(SAddPointLineGraphDrawerDebugCommand)
6574        )
6575    );
6576    assert_eq!(
6577        ::std::mem::align_of::<SAddPointLineGraphDrawerDebugCommand>(),
6578        4usize,
6579        concat!(
6580            "Alignment of ",
6581            stringify!(SAddPointLineGraphDrawerDebugCommand)
6582        )
6583    );
6584    assert_eq!(
6585        unsafe { ::std::ptr::addr_of!((*ptr).lineId) as usize - ptr as usize },
6586        0usize,
6587        concat!(
6588            "Offset of field: ",
6589            stringify!(SAddPointLineGraphDrawerDebugCommand),
6590            "::",
6591            stringify!(lineId)
6592        )
6593    );
6594    assert_eq!(
6595        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
6596        4usize,
6597        concat!(
6598            "Offset of field: ",
6599            stringify!(SAddPointLineGraphDrawerDebugCommand),
6600            "::",
6601            stringify!(x)
6602        )
6603    );
6604    assert_eq!(
6605        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
6606        8usize,
6607        concat!(
6608            "Offset of field: ",
6609            stringify!(SAddPointLineGraphDrawerDebugCommand),
6610            "::",
6611            stringify!(y)
6612        )
6613    );
6614}
6615#[repr(C)]
6616#[derive(Debug, Copy, Clone)]
6617pub struct SDeletePointsLineGraphDrawerDebugCommand {
6618    pub lineId: ::std::os::raw::c_int,
6619    pub numPoints: ::std::os::raw::c_int,
6620}
6621#[test]
6622fn bindgen_test_layout_SDeletePointsLineGraphDrawerDebugCommand() {
6623    const UNINIT: ::std::mem::MaybeUninit<SDeletePointsLineGraphDrawerDebugCommand> =
6624        ::std::mem::MaybeUninit::uninit();
6625    let ptr = UNINIT.as_ptr();
6626    assert_eq!(
6627        ::std::mem::size_of::<SDeletePointsLineGraphDrawerDebugCommand>(),
6628        8usize,
6629        concat!(
6630            "Size of: ",
6631            stringify!(SDeletePointsLineGraphDrawerDebugCommand)
6632        )
6633    );
6634    assert_eq!(
6635        ::std::mem::align_of::<SDeletePointsLineGraphDrawerDebugCommand>(),
6636        4usize,
6637        concat!(
6638            "Alignment of ",
6639            stringify!(SDeletePointsLineGraphDrawerDebugCommand)
6640        )
6641    );
6642    assert_eq!(
6643        unsafe { ::std::ptr::addr_of!((*ptr).lineId) as usize - ptr as usize },
6644        0usize,
6645        concat!(
6646            "Offset of field: ",
6647            stringify!(SDeletePointsLineGraphDrawerDebugCommand),
6648            "::",
6649            stringify!(lineId)
6650        )
6651    );
6652    assert_eq!(
6653        unsafe { ::std::ptr::addr_of!((*ptr).numPoints) as usize - ptr as usize },
6654        4usize,
6655        concat!(
6656            "Offset of field: ",
6657            stringify!(SDeletePointsLineGraphDrawerDebugCommand),
6658            "::",
6659            stringify!(numPoints)
6660        )
6661    );
6662}
6663#[repr(C)]
6664#[derive(Debug, Copy, Clone)]
6665pub struct SSetColorLineGraphDrawerDebugCommand {
6666    pub lineId: ::std::os::raw::c_int,
6667    pub color_colorS3: *mut ::std::os::raw::c_short,
6668}
6669#[test]
6670fn bindgen_test_layout_SSetColorLineGraphDrawerDebugCommand() {
6671    const UNINIT: ::std::mem::MaybeUninit<SSetColorLineGraphDrawerDebugCommand> =
6672        ::std::mem::MaybeUninit::uninit();
6673    let ptr = UNINIT.as_ptr();
6674    assert_eq!(
6675        ::std::mem::size_of::<SSetColorLineGraphDrawerDebugCommand>(),
6676        16usize,
6677        concat!(
6678            "Size of: ",
6679            stringify!(SSetColorLineGraphDrawerDebugCommand)
6680        )
6681    );
6682    assert_eq!(
6683        ::std::mem::align_of::<SSetColorLineGraphDrawerDebugCommand>(),
6684        8usize,
6685        concat!(
6686            "Alignment of ",
6687            stringify!(SSetColorLineGraphDrawerDebugCommand)
6688        )
6689    );
6690    assert_eq!(
6691        unsafe { ::std::ptr::addr_of!((*ptr).lineId) as usize - ptr as usize },
6692        0usize,
6693        concat!(
6694            "Offset of field: ",
6695            stringify!(SSetColorLineGraphDrawerDebugCommand),
6696            "::",
6697            stringify!(lineId)
6698        )
6699    );
6700    assert_eq!(
6701        unsafe { ::std::ptr::addr_of!((*ptr).color_colorS3) as usize - ptr as usize },
6702        8usize,
6703        concat!(
6704            "Offset of field: ",
6705            stringify!(SSetColorLineGraphDrawerDebugCommand),
6706            "::",
6707            stringify!(color_colorS3)
6708        )
6709    );
6710}
6711#[repr(C)]
6712#[derive(Debug, Copy, Clone)]
6713pub struct SSetLabelLineGraphDrawerDebugCommand {
6714    pub lineId: ::std::os::raw::c_int,
6715    pub label: *const ::std::os::raw::c_char,
6716}
6717#[test]
6718fn bindgen_test_layout_SSetLabelLineGraphDrawerDebugCommand() {
6719    const UNINIT: ::std::mem::MaybeUninit<SSetLabelLineGraphDrawerDebugCommand> =
6720        ::std::mem::MaybeUninit::uninit();
6721    let ptr = UNINIT.as_ptr();
6722    assert_eq!(
6723        ::std::mem::size_of::<SSetLabelLineGraphDrawerDebugCommand>(),
6724        16usize,
6725        concat!(
6726            "Size of: ",
6727            stringify!(SSetLabelLineGraphDrawerDebugCommand)
6728        )
6729    );
6730    assert_eq!(
6731        ::std::mem::align_of::<SSetLabelLineGraphDrawerDebugCommand>(),
6732        8usize,
6733        concat!(
6734            "Alignment of ",
6735            stringify!(SSetLabelLineGraphDrawerDebugCommand)
6736        )
6737    );
6738    assert_eq!(
6739        unsafe { ::std::ptr::addr_of!((*ptr).lineId) as usize - ptr as usize },
6740        0usize,
6741        concat!(
6742            "Offset of field: ",
6743            stringify!(SSetLabelLineGraphDrawerDebugCommand),
6744            "::",
6745            stringify!(lineId)
6746        )
6747    );
6748    assert_eq!(
6749        unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize },
6750        8usize,
6751        concat!(
6752            "Offset of field: ",
6753            stringify!(SSetLabelLineGraphDrawerDebugCommand),
6754            "::",
6755            stringify!(label)
6756        )
6757    );
6758}
6759#[repr(C)]
6760#[derive(Debug, Copy, Clone)]
6761pub struct SAddOverlayTextureDrawerDebugCommand {
6762    pub ret_overlayTextureId: ::std::os::raw::c_int,
6763    pub texData: *const f32,
6764    pub w: ::std::os::raw::c_int,
6765    pub h: ::std::os::raw::c_int,
6766}
6767#[test]
6768fn bindgen_test_layout_SAddOverlayTextureDrawerDebugCommand() {
6769    const UNINIT: ::std::mem::MaybeUninit<SAddOverlayTextureDrawerDebugCommand> =
6770        ::std::mem::MaybeUninit::uninit();
6771    let ptr = UNINIT.as_ptr();
6772    assert_eq!(
6773        ::std::mem::size_of::<SAddOverlayTextureDrawerDebugCommand>(),
6774        24usize,
6775        concat!(
6776            "Size of: ",
6777            stringify!(SAddOverlayTextureDrawerDebugCommand)
6778        )
6779    );
6780    assert_eq!(
6781        ::std::mem::align_of::<SAddOverlayTextureDrawerDebugCommand>(),
6782        8usize,
6783        concat!(
6784            "Alignment of ",
6785            stringify!(SAddOverlayTextureDrawerDebugCommand)
6786        )
6787    );
6788    assert_eq!(
6789        unsafe { ::std::ptr::addr_of!((*ptr).ret_overlayTextureId) as usize - ptr as usize },
6790        0usize,
6791        concat!(
6792            "Offset of field: ",
6793            stringify!(SAddOverlayTextureDrawerDebugCommand),
6794            "::",
6795            stringify!(ret_overlayTextureId)
6796        )
6797    );
6798    assert_eq!(
6799        unsafe { ::std::ptr::addr_of!((*ptr).texData) as usize - ptr as usize },
6800        8usize,
6801        concat!(
6802            "Offset of field: ",
6803            stringify!(SAddOverlayTextureDrawerDebugCommand),
6804            "::",
6805            stringify!(texData)
6806        )
6807    );
6808    assert_eq!(
6809        unsafe { ::std::ptr::addr_of!((*ptr).w) as usize - ptr as usize },
6810        16usize,
6811        concat!(
6812            "Offset of field: ",
6813            stringify!(SAddOverlayTextureDrawerDebugCommand),
6814            "::",
6815            stringify!(w)
6816        )
6817    );
6818    assert_eq!(
6819        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
6820        20usize,
6821        concat!(
6822            "Offset of field: ",
6823            stringify!(SAddOverlayTextureDrawerDebugCommand),
6824            "::",
6825            stringify!(h)
6826        )
6827    );
6828}
6829#[repr(C)]
6830#[derive(Debug, Copy, Clone)]
6831pub struct SUpdateOverlayTextureDrawerDebugCommand {
6832    pub overlayTextureId: ::std::os::raw::c_int,
6833    pub texData: *const f32,
6834    pub x: ::std::os::raw::c_int,
6835    pub y: ::std::os::raw::c_int,
6836    pub w: ::std::os::raw::c_int,
6837    pub h: ::std::os::raw::c_int,
6838}
6839#[test]
6840fn bindgen_test_layout_SUpdateOverlayTextureDrawerDebugCommand() {
6841    const UNINIT: ::std::mem::MaybeUninit<SUpdateOverlayTextureDrawerDebugCommand> =
6842        ::std::mem::MaybeUninit::uninit();
6843    let ptr = UNINIT.as_ptr();
6844    assert_eq!(
6845        ::std::mem::size_of::<SUpdateOverlayTextureDrawerDebugCommand>(),
6846        32usize,
6847        concat!(
6848            "Size of: ",
6849            stringify!(SUpdateOverlayTextureDrawerDebugCommand)
6850        )
6851    );
6852    assert_eq!(
6853        ::std::mem::align_of::<SUpdateOverlayTextureDrawerDebugCommand>(),
6854        8usize,
6855        concat!(
6856            "Alignment of ",
6857            stringify!(SUpdateOverlayTextureDrawerDebugCommand)
6858        )
6859    );
6860    assert_eq!(
6861        unsafe { ::std::ptr::addr_of!((*ptr).overlayTextureId) as usize - ptr as usize },
6862        0usize,
6863        concat!(
6864            "Offset of field: ",
6865            stringify!(SUpdateOverlayTextureDrawerDebugCommand),
6866            "::",
6867            stringify!(overlayTextureId)
6868        )
6869    );
6870    assert_eq!(
6871        unsafe { ::std::ptr::addr_of!((*ptr).texData) as usize - ptr as usize },
6872        8usize,
6873        concat!(
6874            "Offset of field: ",
6875            stringify!(SUpdateOverlayTextureDrawerDebugCommand),
6876            "::",
6877            stringify!(texData)
6878        )
6879    );
6880    assert_eq!(
6881        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
6882        16usize,
6883        concat!(
6884            "Offset of field: ",
6885            stringify!(SUpdateOverlayTextureDrawerDebugCommand),
6886            "::",
6887            stringify!(x)
6888        )
6889    );
6890    assert_eq!(
6891        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
6892        20usize,
6893        concat!(
6894            "Offset of field: ",
6895            stringify!(SUpdateOverlayTextureDrawerDebugCommand),
6896            "::",
6897            stringify!(y)
6898        )
6899    );
6900    assert_eq!(
6901        unsafe { ::std::ptr::addr_of!((*ptr).w) as usize - ptr as usize },
6902        24usize,
6903        concat!(
6904            "Offset of field: ",
6905            stringify!(SUpdateOverlayTextureDrawerDebugCommand),
6906            "::",
6907            stringify!(w)
6908        )
6909    );
6910    assert_eq!(
6911        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
6912        28usize,
6913        concat!(
6914            "Offset of field: ",
6915            stringify!(SUpdateOverlayTextureDrawerDebugCommand),
6916            "::",
6917            stringify!(h)
6918        )
6919    );
6920}
6921#[repr(C)]
6922#[derive(Debug, Copy, Clone)]
6923pub struct SDeleteOverlayTextureDrawerDebugCommand {
6924    pub overlayTextureId: ::std::os::raw::c_int,
6925}
6926#[test]
6927fn bindgen_test_layout_SDeleteOverlayTextureDrawerDebugCommand() {
6928    const UNINIT: ::std::mem::MaybeUninit<SDeleteOverlayTextureDrawerDebugCommand> =
6929        ::std::mem::MaybeUninit::uninit();
6930    let ptr = UNINIT.as_ptr();
6931    assert_eq!(
6932        ::std::mem::size_of::<SDeleteOverlayTextureDrawerDebugCommand>(),
6933        4usize,
6934        concat!(
6935            "Size of: ",
6936            stringify!(SDeleteOverlayTextureDrawerDebugCommand)
6937        )
6938    );
6939    assert_eq!(
6940        ::std::mem::align_of::<SDeleteOverlayTextureDrawerDebugCommand>(),
6941        4usize,
6942        concat!(
6943            "Alignment of ",
6944            stringify!(SDeleteOverlayTextureDrawerDebugCommand)
6945        )
6946    );
6947    assert_eq!(
6948        unsafe { ::std::ptr::addr_of!((*ptr).overlayTextureId) as usize - ptr as usize },
6949        0usize,
6950        concat!(
6951            "Offset of field: ",
6952            stringify!(SDeleteOverlayTextureDrawerDebugCommand),
6953            "::",
6954            stringify!(overlayTextureId)
6955        )
6956    );
6957}
6958#[repr(C)]
6959#[derive(Debug, Copy, Clone)]
6960pub struct SSetPositionOverlayTextureDrawerDebugCommand {
6961    pub overlayTextureId: ::std::os::raw::c_int,
6962    pub x: f32,
6963    pub y: f32,
6964}
6965#[test]
6966fn bindgen_test_layout_SSetPositionOverlayTextureDrawerDebugCommand() {
6967    const UNINIT: ::std::mem::MaybeUninit<SSetPositionOverlayTextureDrawerDebugCommand> =
6968        ::std::mem::MaybeUninit::uninit();
6969    let ptr = UNINIT.as_ptr();
6970    assert_eq!(
6971        ::std::mem::size_of::<SSetPositionOverlayTextureDrawerDebugCommand>(),
6972        12usize,
6973        concat!(
6974            "Size of: ",
6975            stringify!(SSetPositionOverlayTextureDrawerDebugCommand)
6976        )
6977    );
6978    assert_eq!(
6979        ::std::mem::align_of::<SSetPositionOverlayTextureDrawerDebugCommand>(),
6980        4usize,
6981        concat!(
6982            "Alignment of ",
6983            stringify!(SSetPositionOverlayTextureDrawerDebugCommand)
6984        )
6985    );
6986    assert_eq!(
6987        unsafe { ::std::ptr::addr_of!((*ptr).overlayTextureId) as usize - ptr as usize },
6988        0usize,
6989        concat!(
6990            "Offset of field: ",
6991            stringify!(SSetPositionOverlayTextureDrawerDebugCommand),
6992            "::",
6993            stringify!(overlayTextureId)
6994        )
6995    );
6996    assert_eq!(
6997        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
6998        4usize,
6999        concat!(
7000            "Offset of field: ",
7001            stringify!(SSetPositionOverlayTextureDrawerDebugCommand),
7002            "::",
7003            stringify!(x)
7004        )
7005    );
7006    assert_eq!(
7007        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
7008        8usize,
7009        concat!(
7010            "Offset of field: ",
7011            stringify!(SSetPositionOverlayTextureDrawerDebugCommand),
7012            "::",
7013            stringify!(y)
7014        )
7015    );
7016}
7017#[repr(C)]
7018#[derive(Debug, Copy, Clone)]
7019pub struct SSetSizeOverlayTextureDrawerDebugCommand {
7020    pub overlayTextureId: ::std::os::raw::c_int,
7021    pub w: f32,
7022    pub h: f32,
7023}
7024#[test]
7025fn bindgen_test_layout_SSetSizeOverlayTextureDrawerDebugCommand() {
7026    const UNINIT: ::std::mem::MaybeUninit<SSetSizeOverlayTextureDrawerDebugCommand> =
7027        ::std::mem::MaybeUninit::uninit();
7028    let ptr = UNINIT.as_ptr();
7029    assert_eq!(
7030        ::std::mem::size_of::<SSetSizeOverlayTextureDrawerDebugCommand>(),
7031        12usize,
7032        concat!(
7033            "Size of: ",
7034            stringify!(SSetSizeOverlayTextureDrawerDebugCommand)
7035        )
7036    );
7037    assert_eq!(
7038        ::std::mem::align_of::<SSetSizeOverlayTextureDrawerDebugCommand>(),
7039        4usize,
7040        concat!(
7041            "Alignment of ",
7042            stringify!(SSetSizeOverlayTextureDrawerDebugCommand)
7043        )
7044    );
7045    assert_eq!(
7046        unsafe { ::std::ptr::addr_of!((*ptr).overlayTextureId) as usize - ptr as usize },
7047        0usize,
7048        concat!(
7049            "Offset of field: ",
7050            stringify!(SSetSizeOverlayTextureDrawerDebugCommand),
7051            "::",
7052            stringify!(overlayTextureId)
7053        )
7054    );
7055    assert_eq!(
7056        unsafe { ::std::ptr::addr_of!((*ptr).w) as usize - ptr as usize },
7057        4usize,
7058        concat!(
7059            "Offset of field: ",
7060            stringify!(SSetSizeOverlayTextureDrawerDebugCommand),
7061            "::",
7062            stringify!(w)
7063        )
7064    );
7065    assert_eq!(
7066        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
7067        8usize,
7068        concat!(
7069            "Offset of field: ",
7070            stringify!(SSetSizeOverlayTextureDrawerDebugCommand),
7071            "::",
7072            stringify!(h)
7073        )
7074    );
7075}
7076#[repr(C)]
7077#[derive(Debug, Copy, Clone)]
7078pub struct SSetLabelOverlayTextureDrawerDebugCommand {
7079    pub overlayTextureId: ::std::os::raw::c_int,
7080    pub label: *const ::std::os::raw::c_char,
7081}
7082#[test]
7083fn bindgen_test_layout_SSetLabelOverlayTextureDrawerDebugCommand() {
7084    const UNINIT: ::std::mem::MaybeUninit<SSetLabelOverlayTextureDrawerDebugCommand> =
7085        ::std::mem::MaybeUninit::uninit();
7086    let ptr = UNINIT.as_ptr();
7087    assert_eq!(
7088        ::std::mem::size_of::<SSetLabelOverlayTextureDrawerDebugCommand>(),
7089        16usize,
7090        concat!(
7091            "Size of: ",
7092            stringify!(SSetLabelOverlayTextureDrawerDebugCommand)
7093        )
7094    );
7095    assert_eq!(
7096        ::std::mem::align_of::<SSetLabelOverlayTextureDrawerDebugCommand>(),
7097        8usize,
7098        concat!(
7099            "Alignment of ",
7100            stringify!(SSetLabelOverlayTextureDrawerDebugCommand)
7101        )
7102    );
7103    assert_eq!(
7104        unsafe { ::std::ptr::addr_of!((*ptr).overlayTextureId) as usize - ptr as usize },
7105        0usize,
7106        concat!(
7107            "Offset of field: ",
7108            stringify!(SSetLabelOverlayTextureDrawerDebugCommand),
7109            "::",
7110            stringify!(overlayTextureId)
7111        )
7112    );
7113    assert_eq!(
7114        unsafe { ::std::ptr::addr_of!((*ptr).label) as usize - ptr as usize },
7115        8usize,
7116        concat!(
7117            "Offset of field: ",
7118            stringify!(SSetLabelOverlayTextureDrawerDebugCommand),
7119            "::",
7120            stringify!(label)
7121        )
7122    );
7123}
7124#[doc = " @brief Skirmish AI Callback function pointers.\n Each Skirmish AI instance will receive an instance of this struct\n in its init(skirmishAIId) function and with the SInitEvent.\n\n This struct contains only activities that leave the game state as it is,\n in spring terms: unsynced events\n Activities that change game state (-> synced events) are handled through\n AI commands, defined in AISCommands.h.\n\n The skirmishAIId passed as the first parameter to each function in this\n struct has to be the ID of the AI instance using the callback."]
7125#[repr(C)]
7126#[derive(Debug, Copy, Clone)]
7127pub struct SSkirmishAICallback {
7128    #[doc = " Whenever an AI wants to change the engine state in any way,\n it has to call this method.\n In other words, all commands from AIs to the engine (and other AIs)\n go through this method.\n\n @param skirmishAIId the ID of the AI that sends the command\n @param toId         the team number of the AI that should receive\n                     the command, or COMMAND_TO_ID_ENGINE if it is addressed\n                     to the engine\n @param commandId    used on asynchronous commands, this allows the AI to\n                     identify a possible result event, which would come\n                     with the same id\n @param commandTopic unique identifier of a command\n                     (see COMMAND_* defines in AISCommands.h)\n @param commandData  a commandTopic specific struct, which contains\n                     the data associated with the command\n                     (see *Command structs)\n @return     0: if command handling ok\n          != 0: something else otherwise"]
7129    pub Engine_handleCommand: ::std::option::Option<
7130        unsafe extern "C" fn(
7131            skirmishAIId: ::std::os::raw::c_int,
7132            toId: ::std::os::raw::c_int,
7133            commandId: ::std::os::raw::c_int,
7134            commandTopic: ::std::os::raw::c_int,
7135            commandData: *mut ::std::os::raw::c_void,
7136        ) -> ::std::os::raw::c_int,
7137    >,
7138    pub Engine_executeCommand: ::std::option::Option<
7139        unsafe extern "C" fn(
7140            skirmishAIId: ::std::os::raw::c_int,
7141            unitId: ::std::os::raw::c_int,
7142            groupId: ::std::os::raw::c_int,
7143            commandData: *mut ::std::os::raw::c_void,
7144        ) -> ::std::os::raw::c_int,
7145    >,
7146    #[doc = " Returns the major engine revision number (e.g. 83)"]
7147    pub Engine_Version_getMajor: ::std::option::Option<
7148        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7149    >,
7150    #[doc = " Minor version number (e.g. \"5\")\n @deprecated since 4. October 2011 (pre release 83), will always return \"0\""]
7151    pub Engine_Version_getMinor: ::std::option::Option<
7152        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7153    >,
7154    #[doc = " Clients that only differ in patchset can still play together.\n Also demos should be compatible between patchsets."]
7155    pub Engine_Version_getPatchset: ::std::option::Option<
7156        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7157    >,
7158    #[doc = " SCM Commits version part (e.g. \"\" or \"13\")\n Number of commits since the last version tag.\n This matches the regex \"[0-9]*\"."]
7159    pub Engine_Version_getCommits: ::std::option::Option<
7160        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7161    >,
7162    #[doc = " SCM unique identifier for the current commit.\n This matches the regex \"([0-9a-f]{6})?\"."]
7163    pub Engine_Version_getHash: ::std::option::Option<
7164        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7165    >,
7166    #[doc = " SCM branch name (e.g. \"master\" or \"develop\")"]
7167    pub Engine_Version_getBranch: ::std::option::Option<
7168        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7169    >,
7170    #[doc = " Additional information (compiler flags, svn revision etc.)"]
7171    pub Engine_Version_getAdditional: ::std::option::Option<
7172        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7173    >,
7174    #[doc = " time of build"]
7175    pub Engine_Version_getBuildTime: ::std::option::Option<
7176        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7177    >,
7178    #[doc = " Returns whether this is a release build of the engine"]
7179    pub Engine_Version_isRelease:
7180        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> bool>,
7181    #[doc = " The basic part of a spring version.\n This may only be used for sync-checking if IsRelease() returns true.\n @return \"Major.PatchSet\" or \"Major.PatchSet.1\""]
7182    pub Engine_Version_getNormal: ::std::option::Option<
7183        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7184    >,
7185    #[doc = " The sync relevant part of a spring version.\n This may be used for sync-checking through a simple string-equality test.\n @return \"Major\" or \"Major.PatchSet.1-Commits-gHash Branch\""]
7186    pub Engine_Version_getSync: ::std::option::Option<
7187        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7188    >,
7189    #[doc = " The verbose, human readable version.\n @return \"Major.Patchset[.1-Commits-gHash Branch] (Additional)\""]
7190    pub Engine_Version_getFull: ::std::option::Option<
7191        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7192    >,
7193    #[doc = " Returns the number of teams in this game"]
7194    pub getNumTeams: ::std::option::Option<
7195        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7196    >,
7197    #[doc = " Returns the number of skirmish AIs in this game"]
7198    pub getNumSkirmishAIs: ::std::option::Option<
7199        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7200    >,
7201    #[doc = " Returns the maximum number of skirmish AIs in any game"]
7202    pub getMaxSkirmishAIs: ::std::option::Option<
7203        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7204    >,
7205    #[doc = " Returns the ID of the team controled by this Skirmish AI."]
7206    pub SkirmishAI_getTeamId: ::std::option::Option<
7207        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7208    >,
7209    #[doc = " Returns the number of info key-value pairs in the info map\n for this Skirmish AI."]
7210    pub SkirmishAI_Info_getSize: ::std::option::Option<
7211        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7212    >,
7213    #[doc = " Returns the key at index infoIndex in the info map\n for this Skirmish AI, or NULL if the infoIndex is invalid."]
7214    pub SkirmishAI_Info_getKey: ::std::option::Option<
7215        unsafe extern "C" fn(
7216            skirmishAIId: ::std::os::raw::c_int,
7217            infoIndex: ::std::os::raw::c_int,
7218        ) -> *const ::std::os::raw::c_char,
7219    >,
7220    #[doc = " Returns the value at index infoIndex in the info map\n for this Skirmish AI, or NULL if the infoIndex is invalid."]
7221    pub SkirmishAI_Info_getValue: ::std::option::Option<
7222        unsafe extern "C" fn(
7223            skirmishAIId: ::std::os::raw::c_int,
7224            infoIndex: ::std::os::raw::c_int,
7225        ) -> *const ::std::os::raw::c_char,
7226    >,
7227    #[doc = " Returns the description of the key at index infoIndex in the info map\n for this Skirmish AI, or NULL if the infoIndex is invalid."]
7228    pub SkirmishAI_Info_getDescription: ::std::option::Option<
7229        unsafe extern "C" fn(
7230            skirmishAIId: ::std::os::raw::c_int,
7231            infoIndex: ::std::os::raw::c_int,
7232        ) -> *const ::std::os::raw::c_char,
7233    >,
7234    #[doc = " Returns the value associated with the given key in the info map\n for this Skirmish AI, or NULL if not found."]
7235    pub SkirmishAI_Info_getValueByKey: ::std::option::Option<
7236        unsafe extern "C" fn(
7237            skirmishAIId: ::std::os::raw::c_int,
7238            key: *const ::std::os::raw::c_char,
7239        ) -> *const ::std::os::raw::c_char,
7240    >,
7241    #[doc = " Returns the number of option key-value pairs in the options map\n for this Skirmish AI."]
7242    pub SkirmishAI_OptionValues_getSize: ::std::option::Option<
7243        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7244    >,
7245    #[doc = " Returns the key at index optionIndex in the options map\n for this Skirmish AI, or NULL if the optionIndex is invalid."]
7246    pub SkirmishAI_OptionValues_getKey: ::std::option::Option<
7247        unsafe extern "C" fn(
7248            skirmishAIId: ::std::os::raw::c_int,
7249            optionIndex: ::std::os::raw::c_int,
7250        ) -> *const ::std::os::raw::c_char,
7251    >,
7252    #[doc = " Returns the value at index optionIndex in the options map\n for this Skirmish AI, or NULL if the optionIndex is invalid."]
7253    pub SkirmishAI_OptionValues_getValue: ::std::option::Option<
7254        unsafe extern "C" fn(
7255            skirmishAIId: ::std::os::raw::c_int,
7256            optionIndex: ::std::os::raw::c_int,
7257        ) -> *const ::std::os::raw::c_char,
7258    >,
7259    #[doc = " Returns the value associated with the given key in the options map\n for this Skirmish AI, or NULL if not found."]
7260    pub SkirmishAI_OptionValues_getValueByKey: ::std::option::Option<
7261        unsafe extern "C" fn(
7262            skirmishAIId: ::std::os::raw::c_int,
7263            key: *const ::std::os::raw::c_char,
7264        ) -> *const ::std::os::raw::c_char,
7265    >,
7266    #[doc = " This will end up in infolog"]
7267    pub Log_log: ::std::option::Option<
7268        unsafe extern "C" fn(
7269            skirmishAIId: ::std::os::raw::c_int,
7270            msg: *const ::std::os::raw::c_char,
7271        ),
7272    >,
7273    #[doc = " Inform the engine of an error that happend in the interface.\n @param   msg       error message\n @param   severety  from 10 for minor to 0 for fatal\n @param   die       if this is set to true, the engine assumes\n                    the interface is in an irreparable state, and it will\n                    unload it immediately."]
7274    pub Log_exception: ::std::option::Option<
7275        unsafe extern "C" fn(
7276            skirmishAIId: ::std::os::raw::c_int,
7277            msg: *const ::std::os::raw::c_char,
7278            severety: ::std::os::raw::c_int,
7279            die: bool,
7280        ),
7281    >,
7282    #[doc = " Returns '/' on posix and '\\\\' on windows"]
7283    pub DataDirs_getPathSeparator: ::std::option::Option<
7284        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_char,
7285    >,
7286    #[doc = " This interfaces main data dir, which is where the shared library\n and the InterfaceInfo.lua file are located, e.g.:\n /usr/share/games/spring/AI/Skirmish/RAI/0.601/"]
7287    pub DataDirs_getConfigDir: ::std::option::Option<
7288        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7289    >,
7290    #[doc = " This interfaces writable data dir, which is where eg logs, caches\n and learning data should be stored, e.g.:\n /home/userX/.spring/AI/Skirmish/RAI/0.601/"]
7291    pub DataDirs_getWriteableDir: ::std::option::Option<
7292        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7293    >,
7294    #[doc = " Returns an absolute path which consists of:\n data-dir + Skirmish-AI-path + relative-path.\n\n example:\n input:  \"log/main.log\", writeable, create, !dir, !common\n output: \"/home/userX/.spring/AI/Skirmish/RAI/0.601/log/main.log\"\n The path \"/home/userX/.spring/AI/Skirmish/RAI/0.601/log/\" is created,\n if it does not yet exist.\n\n @see DataDirs_Roots_locatePath\n @param   path          store for the resulting absolute path\n @param   path_sizeMax  storage size of the above\n @param   writeable  if true, only the writable data-dir is considered\n @param   create     if true, and realPath is not found, its dir structure\n                     is created recursively under the writable data-dir\n @param   dir        if true, realPath specifies a dir, which means if\n                     create is true, the whole path will be created,\n                     including the last part\n @param   common     if true, the version independent data-dir is formed,\n                     which uses \"common\" instead of the version, eg:\n                     \"/home/userX/.spring/AI/Skirmish/RAI/common/...\"\n @return  whether the locating process was successfull\n          -> the path exists and is stored in an absolute form in path"]
7295    pub DataDirs_locatePath: ::std::option::Option<
7296        unsafe extern "C" fn(
7297            skirmishAIId: ::std::os::raw::c_int,
7298            path: *mut ::std::os::raw::c_char,
7299            path_sizeMax: ::std::os::raw::c_int,
7300            relPath: *const ::std::os::raw::c_char,
7301            writeable: bool,
7302            create: bool,
7303            dir: bool,
7304            common: bool,
7305        ) -> bool,
7306    >,
7307    #[doc = " Returns the number of springs data dirs."]
7308    pub DataDirs_Roots_getSize: ::std::option::Option<
7309        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7310    >,
7311    #[doc = " Returns the data dir at dirIndex, which is valid between 0 and (DataDirs_Roots_getSize() - 1)."]
7312    pub DataDirs_Roots_getDir: ::std::option::Option<
7313        unsafe extern "C" fn(
7314            skirmishAIId: ::std::os::raw::c_int,
7315            path: *mut ::std::os::raw::c_char,
7316            path_sizeMax: ::std::os::raw::c_int,
7317            dirIndex: ::std::os::raw::c_int,
7318        ) -> bool,
7319    >,
7320    #[doc = " Returns an absolute path which consists of:\n data-dir + relative-path.\n\n example:\n input:  \"AI/Skirmish\", writeable, create, dir\n output: \"/home/userX/.spring/AI/Skirmish/\"\n The path \"/home/userX/.spring/AI/Skirmish/\" is created,\n if it does not yet exist.\n\n @see DataDirs_locatePath\n @param   path          store for the resulting absolute path\n @param   path_sizeMax  storage size of the above\n @param   relPath    the relative path to find\n @param   writeable  if true, only the writable data-dir is considered\n @param   create     if true, and realPath is not found, its dir structure\n                     is created recursively under the writable data-dir\n @param   dir        if true, realPath specifies a dir, which means if\n                     create is true, the whole path will be created,\n                     including the last part\n @return  whether the locating process was successfull\n          -> the path exists and is stored in an absolute form in path"]
7321    pub DataDirs_Roots_locatePath: ::std::option::Option<
7322        unsafe extern "C" fn(
7323            skirmishAIId: ::std::os::raw::c_int,
7324            path: *mut ::std::os::raw::c_char,
7325            path_sizeMax: ::std::os::raw::c_int,
7326            relPath: *const ::std::os::raw::c_char,
7327            writeable: bool,
7328            create: bool,
7329            dir: bool,
7330        ) -> bool,
7331    >,
7332    #[doc = " Returns the current game time measured in frames (the\n simulation runs at 30 frames per second at normal speed)\n\n This should not be used, as we get the frame from the SUpdateEvent.\n @deprecated"]
7333    pub Game_getCurrentFrame: ::std::option::Option<
7334        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7335    >,
7336    pub Game_getAiInterfaceVersion: ::std::option::Option<
7337        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7338    >,
7339    pub Game_getMyTeam: ::std::option::Option<
7340        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7341    >,
7342    pub Game_getMyAllyTeam: ::std::option::Option<
7343        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7344    >,
7345    pub Game_getPlayerTeam: ::std::option::Option<
7346        unsafe extern "C" fn(
7347            skirmishAIId: ::std::os::raw::c_int,
7348            playerId: ::std::os::raw::c_int,
7349        ) -> ::std::os::raw::c_int,
7350    >,
7351    #[doc = " Returns the number of active teams participating\n in the currently running game.\n A return value of 6 for example, would mean that teams 0 till 5\n take part in the game."]
7352    pub Game_getTeams: ::std::option::Option<
7353        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7354    >,
7355    #[doc = " Returns the name of the side of a team in the game.\n\n This should not be used, as it may be \"\",\n and as the AI should rather rely on the units it has,\n which will lead to a more stable and versatile AI.\n @deprecated\n\n @return eg. \"ARM\" or \"CORE\"; may be \"\", depending on how the game was setup"]
7356    pub Game_getTeamSide: ::std::option::Option<
7357        unsafe extern "C" fn(
7358            skirmishAIId: ::std::os::raw::c_int,
7359            otherTeamId: ::std::os::raw::c_int,
7360        ) -> *const ::std::os::raw::c_char,
7361    >,
7362    #[doc = " Returns the color of a team in the game.\n\n This should only be used when drawing stuff,\n and not for team-identification.\n @return the RGB color of a team, with values in [0, 255]"]
7363    pub Game_getTeamColor: ::std::option::Option<
7364        unsafe extern "C" fn(
7365            skirmishAIId: ::std::os::raw::c_int,
7366            otherTeamId: ::std::os::raw::c_int,
7367            return_colorS3_out: *mut ::std::os::raw::c_short,
7368        ),
7369    >,
7370    #[doc = " Returns the income multiplier of a team in the game.\n All the teams resource income is multiplied by this factor.\n The default value is 1.0f, the valid range is [0.0, FLOAT_MAX]."]
7371    pub Game_getTeamIncomeMultiplier: ::std::option::Option<
7372        unsafe extern "C" fn(
7373            skirmishAIId: ::std::os::raw::c_int,
7374            otherTeamId: ::std::os::raw::c_int,
7375        ) -> f32,
7376    >,
7377    #[doc = " Returns the ally-team of a team"]
7378    pub Game_getTeamAllyTeam: ::std::option::Option<
7379        unsafe extern "C" fn(
7380            skirmishAIId: ::std::os::raw::c_int,
7381            otherTeamId: ::std::os::raw::c_int,
7382        ) -> ::std::os::raw::c_int,
7383    >,
7384    #[doc = " Returns the current level of a resource of another team.\n Allways works for allied teams.\n Works for all teams when cheating is enabled.\n @return current level of the requested resource of the other team, or -1.0 on an invalid request"]
7385    pub Game_getTeamResourceCurrent: ::std::option::Option<
7386        unsafe extern "C" fn(
7387            skirmishAIId: ::std::os::raw::c_int,
7388            otherTeamId: ::std::os::raw::c_int,
7389            resourceId: ::std::os::raw::c_int,
7390        ) -> f32,
7391    >,
7392    #[doc = " Returns the current income of a resource of another team.\n Allways works for allied teams.\n Works for all teams when cheating is enabled.\n @return current income of the requested resource of the other team, or -1.0 on an invalid request"]
7393    pub Game_getTeamResourceIncome: ::std::option::Option<
7394        unsafe extern "C" fn(
7395            skirmishAIId: ::std::os::raw::c_int,
7396            otherTeamId: ::std::os::raw::c_int,
7397            resourceId: ::std::os::raw::c_int,
7398        ) -> f32,
7399    >,
7400    #[doc = " Returns the current usage of a resource of another team.\n Allways works for allied teams.\n Works for all teams when cheating is enabled.\n @return current usage of the requested resource of the other team, or -1.0 on an invalid request"]
7401    pub Game_getTeamResourceUsage: ::std::option::Option<
7402        unsafe extern "C" fn(
7403            skirmishAIId: ::std::os::raw::c_int,
7404            otherTeamId: ::std::os::raw::c_int,
7405            resourceId: ::std::os::raw::c_int,
7406        ) -> f32,
7407    >,
7408    #[doc = " Returns the storage capacity for a resource of another team.\n Allways works for allied teams.\n Works for all teams when cheating is enabled.\n @return storage capacity for the requested resource of the other team, or -1.0 on an invalid request"]
7409    pub Game_getTeamResourceStorage: ::std::option::Option<
7410        unsafe extern "C" fn(
7411            skirmishAIId: ::std::os::raw::c_int,
7412            otherTeamId: ::std::os::raw::c_int,
7413            resourceId: ::std::os::raw::c_int,
7414        ) -> f32,
7415    >,
7416    pub Game_getTeamResourcePull: ::std::option::Option<
7417        unsafe extern "C" fn(
7418            skirmishAIId: ::std::os::raw::c_int,
7419            otherTeamId: ::std::os::raw::c_int,
7420            resourceId: ::std::os::raw::c_int,
7421        ) -> f32,
7422    >,
7423    pub Game_getTeamResourceShare: ::std::option::Option<
7424        unsafe extern "C" fn(
7425            skirmishAIId: ::std::os::raw::c_int,
7426            otherTeamId: ::std::os::raw::c_int,
7427            resourceId: ::std::os::raw::c_int,
7428        ) -> f32,
7429    >,
7430    pub Game_getTeamResourceSent: ::std::option::Option<
7431        unsafe extern "C" fn(
7432            skirmishAIId: ::std::os::raw::c_int,
7433            otherTeamId: ::std::os::raw::c_int,
7434            resourceId: ::std::os::raw::c_int,
7435        ) -> f32,
7436    >,
7437    pub Game_getTeamResourceReceived: ::std::option::Option<
7438        unsafe extern "C" fn(
7439            skirmishAIId: ::std::os::raw::c_int,
7440            otherTeamId: ::std::os::raw::c_int,
7441            resourceId: ::std::os::raw::c_int,
7442        ) -> f32,
7443    >,
7444    pub Game_getTeamResourceExcess: ::std::option::Option<
7445        unsafe extern "C" fn(
7446            skirmishAIId: ::std::os::raw::c_int,
7447            otherTeamId: ::std::os::raw::c_int,
7448            resourceId: ::std::os::raw::c_int,
7449        ) -> f32,
7450    >,
7451    #[doc = " Returns true, if the two supplied ally-teams are currently allied"]
7452    pub Game_isAllied: ::std::option::Option<
7453        unsafe extern "C" fn(
7454            skirmishAIId: ::std::os::raw::c_int,
7455            firstAllyTeamId: ::std::os::raw::c_int,
7456            secondAllyTeamId: ::std::os::raw::c_int,
7457        ) -> bool,
7458    >,
7459    pub Game_isDebugModeEnabled:
7460        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> bool>,
7461    pub Game_getMode: ::std::option::Option<
7462        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7463    >,
7464    pub Game_isPaused:
7465        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> bool>,
7466    pub Game_getSpeedFactor:
7467        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
7468    pub Game_getSetupScript: ::std::option::Option<
7469        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
7470    >,
7471    #[doc = " Returns the categories bit field value.\n @return the categories bit field value or 0,\n         in case of empty name or too many categories\n @see getCategoryName"]
7472    pub Game_getCategoryFlag: ::std::option::Option<
7473        unsafe extern "C" fn(
7474            skirmishAIId: ::std::os::raw::c_int,
7475            categoryName: *const ::std::os::raw::c_char,
7476        ) -> ::std::os::raw::c_int,
7477    >,
7478    #[doc = " Returns the bitfield values of a list of category names.\n @param categoryNames space delimited list of names\n @see Game#getCategoryFlag"]
7479    pub Game_getCategoriesFlag: ::std::option::Option<
7480        unsafe extern "C" fn(
7481            skirmishAIId: ::std::os::raw::c_int,
7482            categoryNames: *const ::std::os::raw::c_char,
7483        ) -> ::std::os::raw::c_int,
7484    >,
7485    #[doc = " Return the name of the category described by a category flag.\n @see Game#getCategoryFlag"]
7486    pub Game_getCategoryName: ::std::option::Option<
7487        unsafe extern "C" fn(
7488            skirmishAIId: ::std::os::raw::c_int,
7489            categoryFlag: ::std::os::raw::c_int,
7490            name: *mut ::std::os::raw::c_char,
7491            name_sizeMax: ::std::os::raw::c_int,
7492        ),
7493    >,
7494    #[doc = " @return float value of parameter if it's set, defaultValue otherwise."]
7495    pub Game_getRulesParamFloat: ::std::option::Option<
7496        unsafe extern "C" fn(
7497            skirmishAIId: ::std::os::raw::c_int,
7498            gameRulesParamName: *const ::std::os::raw::c_char,
7499            defaultValue: f32,
7500        ) -> f32,
7501    >,
7502    #[doc = " @return string value of parameter if it's set, defaultValue otherwise."]
7503    pub Game_getRulesParamString: ::std::option::Option<
7504        unsafe extern "C" fn(
7505            skirmishAIId: ::std::os::raw::c_int,
7506            gameRulesParamName: *const ::std::os::raw::c_char,
7507            defaultValue: *const ::std::os::raw::c_char,
7508        ) -> *const ::std::os::raw::c_char,
7509    >,
7510    #[doc = " Returns whether this AI may use active cheats."]
7511    pub Cheats_isEnabled:
7512        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> bool>,
7513    #[doc = " Set whether this AI may use active cheats."]
7514    pub Cheats_setEnabled: ::std::option::Option<
7515        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int, enable: bool) -> bool,
7516    >,
7517    #[doc = " Set whether this AI may receive cheat events.\n When enabled, you would for example get informed when enemy units are\n created, even without sensor coverage."]
7518    pub Cheats_setEventsEnabled: ::std::option::Option<
7519        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int, enabled: bool) -> bool,
7520    >,
7521    #[doc = " Returns whether cheats will desync if used by an AI.\n @return always true, unless we are both the host and the only client."]
7522    pub Cheats_isOnlyPassive:
7523        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> bool>,
7524    pub getResources: ::std::option::Option<
7525        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
7526    >,
7527    pub getResourceByName: ::std::option::Option<
7528        unsafe extern "C" fn(
7529            skirmishAIId: ::std::os::raw::c_int,
7530            resourceName: *const ::std::os::raw::c_char,
7531        ) -> ::std::os::raw::c_int,
7532    >,
7533    pub Resource_getName: ::std::option::Option<
7534        unsafe extern "C" fn(
7535            skirmishAIId: ::std::os::raw::c_int,
7536            resourceId: ::std::os::raw::c_int,
7537        ) -> *const ::std::os::raw::c_char,
7538    >,
7539    pub Resource_getOptimum: ::std::option::Option<
7540        unsafe extern "C" fn(
7541            skirmishAIId: ::std::os::raw::c_int,
7542            resourceId: ::std::os::raw::c_int,
7543        ) -> f32,
7544    >,
7545    pub Economy_getCurrent: ::std::option::Option<
7546        unsafe extern "C" fn(
7547            skirmishAIId: ::std::os::raw::c_int,
7548            resourceId: ::std::os::raw::c_int,
7549        ) -> f32,
7550    >,
7551    pub Economy_getIncome: ::std::option::Option<
7552        unsafe extern "C" fn(
7553            skirmishAIId: ::std::os::raw::c_int,
7554            resourceId: ::std::os::raw::c_int,
7555        ) -> f32,
7556    >,
7557    pub Economy_getUsage: ::std::option::Option<
7558        unsafe extern "C" fn(
7559            skirmishAIId: ::std::os::raw::c_int,
7560            resourceId: ::std::os::raw::c_int,
7561        ) -> f32,
7562    >,
7563    pub Economy_getStorage: ::std::option::Option<
7564        unsafe extern "C" fn(
7565            skirmishAIId: ::std::os::raw::c_int,
7566            resourceId: ::std::os::raw::c_int,
7567        ) -> f32,
7568    >,
7569    pub Economy_getPull: ::std::option::Option<
7570        unsafe extern "C" fn(
7571            skirmishAIId: ::std::os::raw::c_int,
7572            resourceId: ::std::os::raw::c_int,
7573        ) -> f32,
7574    >,
7575    pub Economy_getShare: ::std::option::Option<
7576        unsafe extern "C" fn(
7577            skirmishAIId: ::std::os::raw::c_int,
7578            resourceId: ::std::os::raw::c_int,
7579        ) -> f32,
7580    >,
7581    pub Economy_getSent: ::std::option::Option<
7582        unsafe extern "C" fn(
7583            skirmishAIId: ::std::os::raw::c_int,
7584            resourceId: ::std::os::raw::c_int,
7585        ) -> f32,
7586    >,
7587    pub Economy_getReceived: ::std::option::Option<
7588        unsafe extern "C" fn(
7589            skirmishAIId: ::std::os::raw::c_int,
7590            resourceId: ::std::os::raw::c_int,
7591        ) -> f32,
7592    >,
7593    pub Economy_getExcess: ::std::option::Option<
7594        unsafe extern "C" fn(
7595            skirmishAIId: ::std::os::raw::c_int,
7596            resourceId: ::std::os::raw::c_int,
7597        ) -> f32,
7598    >,
7599    #[doc = " Return -1 when the file does not exist"]
7600    pub File_getSize: ::std::option::Option<
7601        unsafe extern "C" fn(
7602            skirmishAIId: ::std::os::raw::c_int,
7603            fileName: *const ::std::os::raw::c_char,
7604        ) -> ::std::os::raw::c_int,
7605    >,
7606    #[doc = " Returns false when file does not exist, or the buffer is too small"]
7607    pub File_getContent: ::std::option::Option<
7608        unsafe extern "C" fn(
7609            skirmishAIId: ::std::os::raw::c_int,
7610            fileName: *const ::std::os::raw::c_char,
7611            buffer: *mut ::std::os::raw::c_void,
7612            bufferLen: ::std::os::raw::c_int,
7613        ) -> bool,
7614    >,
7615    #[doc = " A UnitDef contains all properties of a unit that are specific to its type,\n for example the number and type of weapons or max-speed.\n These properties are usually fixed, and not meant to change during a game.\n The unitId is a unique id for this type of unit."]
7616    pub getUnitDefs: ::std::option::Option<
7617        unsafe extern "C" fn(
7618            skirmishAIId: ::std::os::raw::c_int,
7619            unitDefIds: *mut ::std::os::raw::c_int,
7620            unitDefIds_sizeMax: ::std::os::raw::c_int,
7621        ) -> ::std::os::raw::c_int,
7622    >,
7623    pub getUnitDefByName: ::std::option::Option<
7624        unsafe extern "C" fn(
7625            skirmishAIId: ::std::os::raw::c_int,
7626            unitName: *const ::std::os::raw::c_char,
7627        ) -> ::std::os::raw::c_int,
7628    >,
7629    #[doc = " Forces loading of the unit model"]
7630    pub UnitDef_getHeight: ::std::option::Option<
7631        unsafe extern "C" fn(
7632            skirmishAIId: ::std::os::raw::c_int,
7633            unitDefId: ::std::os::raw::c_int,
7634        ) -> f32,
7635    >,
7636    #[doc = " Forces loading of the unit model"]
7637    pub UnitDef_getRadius: ::std::option::Option<
7638        unsafe extern "C" fn(
7639            skirmishAIId: ::std::os::raw::c_int,
7640            unitDefId: ::std::os::raw::c_int,
7641        ) -> f32,
7642    >,
7643    pub UnitDef_getName: ::std::option::Option<
7644        unsafe extern "C" fn(
7645            skirmishAIId: ::std::os::raw::c_int,
7646            unitDefId: ::std::os::raw::c_int,
7647        ) -> *const ::std::os::raw::c_char,
7648    >,
7649    pub UnitDef_getHumanName: ::std::option::Option<
7650        unsafe extern "C" fn(
7651            skirmishAIId: ::std::os::raw::c_int,
7652            unitDefId: ::std::os::raw::c_int,
7653        ) -> *const ::std::os::raw::c_char,
7654    >,
7655    pub UnitDef_getUpkeep: ::std::option::Option<
7656        unsafe extern "C" fn(
7657            skirmishAIId: ::std::os::raw::c_int,
7658            unitDefId: ::std::os::raw::c_int,
7659            resourceId: ::std::os::raw::c_int,
7660        ) -> f32,
7661    >,
7662    #[doc = " This amount of the resource will always be created."]
7663    pub UnitDef_getResourceMake: ::std::option::Option<
7664        unsafe extern "C" fn(
7665            skirmishAIId: ::std::os::raw::c_int,
7666            unitDefId: ::std::os::raw::c_int,
7667            resourceId: ::std::os::raw::c_int,
7668        ) -> f32,
7669    >,
7670    #[doc = " This amount of the resource will be created when the unit is on and enough\n energy can be drained."]
7671    pub UnitDef_getMakesResource: ::std::option::Option<
7672        unsafe extern "C" fn(
7673            skirmishAIId: ::std::os::raw::c_int,
7674            unitDefId: ::std::os::raw::c_int,
7675            resourceId: ::std::os::raw::c_int,
7676        ) -> f32,
7677    >,
7678    pub UnitDef_getCost: ::std::option::Option<
7679        unsafe extern "C" fn(
7680            skirmishAIId: ::std::os::raw::c_int,
7681            unitDefId: ::std::os::raw::c_int,
7682            resourceId: ::std::os::raw::c_int,
7683        ) -> f32,
7684    >,
7685    pub UnitDef_getExtractsResource: ::std::option::Option<
7686        unsafe extern "C" fn(
7687            skirmishAIId: ::std::os::raw::c_int,
7688            unitDefId: ::std::os::raw::c_int,
7689            resourceId: ::std::os::raw::c_int,
7690        ) -> f32,
7691    >,
7692    pub UnitDef_getResourceExtractorRange: ::std::option::Option<
7693        unsafe extern "C" fn(
7694            skirmishAIId: ::std::os::raw::c_int,
7695            unitDefId: ::std::os::raw::c_int,
7696            resourceId: ::std::os::raw::c_int,
7697        ) -> f32,
7698    >,
7699    pub UnitDef_getWindResourceGenerator: ::std::option::Option<
7700        unsafe extern "C" fn(
7701            skirmishAIId: ::std::os::raw::c_int,
7702            unitDefId: ::std::os::raw::c_int,
7703            resourceId: ::std::os::raw::c_int,
7704        ) -> f32,
7705    >,
7706    pub UnitDef_getTidalResourceGenerator: ::std::option::Option<
7707        unsafe extern "C" fn(
7708            skirmishAIId: ::std::os::raw::c_int,
7709            unitDefId: ::std::os::raw::c_int,
7710            resourceId: ::std::os::raw::c_int,
7711        ) -> f32,
7712    >,
7713    pub UnitDef_getStorage: ::std::option::Option<
7714        unsafe extern "C" fn(
7715            skirmishAIId: ::std::os::raw::c_int,
7716            unitDefId: ::std::os::raw::c_int,
7717            resourceId: ::std::os::raw::c_int,
7718        ) -> f32,
7719    >,
7720    pub UnitDef_getBuildTime: ::std::option::Option<
7721        unsafe extern "C" fn(
7722            skirmishAIId: ::std::os::raw::c_int,
7723            unitDefId: ::std::os::raw::c_int,
7724        ) -> f32,
7725    >,
7726    #[doc = " This amount of auto-heal will always be applied."]
7727    pub UnitDef_getAutoHeal: ::std::option::Option<
7728        unsafe extern "C" fn(
7729            skirmishAIId: ::std::os::raw::c_int,
7730            unitDefId: ::std::os::raw::c_int,
7731        ) -> f32,
7732    >,
7733    #[doc = " This amount of auto-heal will only be applied while the unit is idling."]
7734    pub UnitDef_getIdleAutoHeal: ::std::option::Option<
7735        unsafe extern "C" fn(
7736            skirmishAIId: ::std::os::raw::c_int,
7737            unitDefId: ::std::os::raw::c_int,
7738        ) -> f32,
7739    >,
7740    #[doc = " Time a unit needs to idle before it is considered idling."]
7741    pub UnitDef_getIdleTime: ::std::option::Option<
7742        unsafe extern "C" fn(
7743            skirmishAIId: ::std::os::raw::c_int,
7744            unitDefId: ::std::os::raw::c_int,
7745        ) -> ::std::os::raw::c_int,
7746    >,
7747    pub UnitDef_getPower: ::std::option::Option<
7748        unsafe extern "C" fn(
7749            skirmishAIId: ::std::os::raw::c_int,
7750            unitDefId: ::std::os::raw::c_int,
7751        ) -> f32,
7752    >,
7753    pub UnitDef_getHealth: ::std::option::Option<
7754        unsafe extern "C" fn(
7755            skirmishAIId: ::std::os::raw::c_int,
7756            unitDefId: ::std::os::raw::c_int,
7757        ) -> f32,
7758    >,
7759    #[doc = " Returns the bit field value denoting the categories this unit is in.\n @see Game#getCategoryFlag\n @see Game#getCategoryName"]
7760    pub UnitDef_getCategory: ::std::option::Option<
7761        unsafe extern "C" fn(
7762            skirmishAIId: ::std::os::raw::c_int,
7763            unitDefId: ::std::os::raw::c_int,
7764        ) -> ::std::os::raw::c_int,
7765    >,
7766    pub UnitDef_getSpeed: ::std::option::Option<
7767        unsafe extern "C" fn(
7768            skirmishAIId: ::std::os::raw::c_int,
7769            unitDefId: ::std::os::raw::c_int,
7770        ) -> f32,
7771    >,
7772    pub UnitDef_getTurnRate: ::std::option::Option<
7773        unsafe extern "C" fn(
7774            skirmishAIId: ::std::os::raw::c_int,
7775            unitDefId: ::std::os::raw::c_int,
7776        ) -> f32,
7777    >,
7778    pub UnitDef_isTurnInPlace: ::std::option::Option<
7779        unsafe extern "C" fn(
7780            skirmishAIId: ::std::os::raw::c_int,
7781            unitDefId: ::std::os::raw::c_int,
7782        ) -> bool,
7783    >,
7784    #[doc = " Units above this distance to goal will try to turn while keeping\n some of their speed.\n 0 to disable"]
7785    pub UnitDef_getTurnInPlaceDistance: ::std::option::Option<
7786        unsafe extern "C" fn(
7787            skirmishAIId: ::std::os::raw::c_int,
7788            unitDefId: ::std::os::raw::c_int,
7789        ) -> f32,
7790    >,
7791    #[doc = " Units below this speed will turn in place regardless of their\n turnInPlace setting."]
7792    pub UnitDef_getTurnInPlaceSpeedLimit: ::std::option::Option<
7793        unsafe extern "C" fn(
7794            skirmishAIId: ::std::os::raw::c_int,
7795            unitDefId: ::std::os::raw::c_int,
7796        ) -> f32,
7797    >,
7798    pub UnitDef_isUpright: ::std::option::Option<
7799        unsafe extern "C" fn(
7800            skirmishAIId: ::std::os::raw::c_int,
7801            unitDefId: ::std::os::raw::c_int,
7802        ) -> bool,
7803    >,
7804    pub UnitDef_isCollide: ::std::option::Option<
7805        unsafe extern "C" fn(
7806            skirmishAIId: ::std::os::raw::c_int,
7807            unitDefId: ::std::os::raw::c_int,
7808        ) -> bool,
7809    >,
7810    pub UnitDef_getLosRadius: ::std::option::Option<
7811        unsafe extern "C" fn(
7812            skirmishAIId: ::std::os::raw::c_int,
7813            unitDefId: ::std::os::raw::c_int,
7814        ) -> f32,
7815    >,
7816    pub UnitDef_getAirLosRadius: ::std::option::Option<
7817        unsafe extern "C" fn(
7818            skirmishAIId: ::std::os::raw::c_int,
7819            unitDefId: ::std::os::raw::c_int,
7820        ) -> f32,
7821    >,
7822    pub UnitDef_getLosHeight: ::std::option::Option<
7823        unsafe extern "C" fn(
7824            skirmishAIId: ::std::os::raw::c_int,
7825            unitDefId: ::std::os::raw::c_int,
7826        ) -> f32,
7827    >,
7828    pub UnitDef_getRadarRadius: ::std::option::Option<
7829        unsafe extern "C" fn(
7830            skirmishAIId: ::std::os::raw::c_int,
7831            unitDefId: ::std::os::raw::c_int,
7832        ) -> ::std::os::raw::c_int,
7833    >,
7834    pub UnitDef_getSonarRadius: ::std::option::Option<
7835        unsafe extern "C" fn(
7836            skirmishAIId: ::std::os::raw::c_int,
7837            unitDefId: ::std::os::raw::c_int,
7838        ) -> ::std::os::raw::c_int,
7839    >,
7840    pub UnitDef_getJammerRadius: ::std::option::Option<
7841        unsafe extern "C" fn(
7842            skirmishAIId: ::std::os::raw::c_int,
7843            unitDefId: ::std::os::raw::c_int,
7844        ) -> ::std::os::raw::c_int,
7845    >,
7846    pub UnitDef_getSonarJamRadius: ::std::option::Option<
7847        unsafe extern "C" fn(
7848            skirmishAIId: ::std::os::raw::c_int,
7849            unitDefId: ::std::os::raw::c_int,
7850        ) -> ::std::os::raw::c_int,
7851    >,
7852    pub UnitDef_getSeismicRadius: ::std::option::Option<
7853        unsafe extern "C" fn(
7854            skirmishAIId: ::std::os::raw::c_int,
7855            unitDefId: ::std::os::raw::c_int,
7856        ) -> ::std::os::raw::c_int,
7857    >,
7858    pub UnitDef_getSeismicSignature: ::std::option::Option<
7859        unsafe extern "C" fn(
7860            skirmishAIId: ::std::os::raw::c_int,
7861            unitDefId: ::std::os::raw::c_int,
7862        ) -> f32,
7863    >,
7864    pub UnitDef_isStealth: ::std::option::Option<
7865        unsafe extern "C" fn(
7866            skirmishAIId: ::std::os::raw::c_int,
7867            unitDefId: ::std::os::raw::c_int,
7868        ) -> bool,
7869    >,
7870    pub UnitDef_isSonarStealth: ::std::option::Option<
7871        unsafe extern "C" fn(
7872            skirmishAIId: ::std::os::raw::c_int,
7873            unitDefId: ::std::os::raw::c_int,
7874        ) -> bool,
7875    >,
7876    pub UnitDef_isBuildRange3D: ::std::option::Option<
7877        unsafe extern "C" fn(
7878            skirmishAIId: ::std::os::raw::c_int,
7879            unitDefId: ::std::os::raw::c_int,
7880        ) -> bool,
7881    >,
7882    pub UnitDef_getBuildDistance: ::std::option::Option<
7883        unsafe extern "C" fn(
7884            skirmishAIId: ::std::os::raw::c_int,
7885            unitDefId: ::std::os::raw::c_int,
7886        ) -> f32,
7887    >,
7888    pub UnitDef_getBuildSpeed: ::std::option::Option<
7889        unsafe extern "C" fn(
7890            skirmishAIId: ::std::os::raw::c_int,
7891            unitDefId: ::std::os::raw::c_int,
7892        ) -> f32,
7893    >,
7894    pub UnitDef_getReclaimSpeed: ::std::option::Option<
7895        unsafe extern "C" fn(
7896            skirmishAIId: ::std::os::raw::c_int,
7897            unitDefId: ::std::os::raw::c_int,
7898        ) -> f32,
7899    >,
7900    pub UnitDef_getRepairSpeed: ::std::option::Option<
7901        unsafe extern "C" fn(
7902            skirmishAIId: ::std::os::raw::c_int,
7903            unitDefId: ::std::os::raw::c_int,
7904        ) -> f32,
7905    >,
7906    pub UnitDef_getMaxRepairSpeed: ::std::option::Option<
7907        unsafe extern "C" fn(
7908            skirmishAIId: ::std::os::raw::c_int,
7909            unitDefId: ::std::os::raw::c_int,
7910        ) -> f32,
7911    >,
7912    pub UnitDef_getResurrectSpeed: ::std::option::Option<
7913        unsafe extern "C" fn(
7914            skirmishAIId: ::std::os::raw::c_int,
7915            unitDefId: ::std::os::raw::c_int,
7916        ) -> f32,
7917    >,
7918    pub UnitDef_getCaptureSpeed: ::std::option::Option<
7919        unsafe extern "C" fn(
7920            skirmishAIId: ::std::os::raw::c_int,
7921            unitDefId: ::std::os::raw::c_int,
7922        ) -> f32,
7923    >,
7924    pub UnitDef_getTerraformSpeed: ::std::option::Option<
7925        unsafe extern "C" fn(
7926            skirmishAIId: ::std::os::raw::c_int,
7927            unitDefId: ::std::os::raw::c_int,
7928        ) -> f32,
7929    >,
7930    pub UnitDef_getUpDirSmoothing: ::std::option::Option<
7931        unsafe extern "C" fn(
7932            skirmishAIId: ::std::os::raw::c_int,
7933            unitDefId: ::std::os::raw::c_int,
7934        ) -> f32,
7935    >,
7936    pub UnitDef_getMass: ::std::option::Option<
7937        unsafe extern "C" fn(
7938            skirmishAIId: ::std::os::raw::c_int,
7939            unitDefId: ::std::os::raw::c_int,
7940        ) -> f32,
7941    >,
7942    pub UnitDef_isPushResistant: ::std::option::Option<
7943        unsafe extern "C" fn(
7944            skirmishAIId: ::std::os::raw::c_int,
7945            unitDefId: ::std::os::raw::c_int,
7946        ) -> bool,
7947    >,
7948    #[doc = " Should the unit move sideways when it can not shoot?"]
7949    pub UnitDef_isStrafeToAttack: ::std::option::Option<
7950        unsafe extern "C" fn(
7951            skirmishAIId: ::std::os::raw::c_int,
7952            unitDefId: ::std::os::raw::c_int,
7953        ) -> bool,
7954    >,
7955    pub UnitDef_getMinCollisionSpeed: ::std::option::Option<
7956        unsafe extern "C" fn(
7957            skirmishAIId: ::std::os::raw::c_int,
7958            unitDefId: ::std::os::raw::c_int,
7959        ) -> f32,
7960    >,
7961    pub UnitDef_getSlideTolerance: ::std::option::Option<
7962        unsafe extern "C" fn(
7963            skirmishAIId: ::std::os::raw::c_int,
7964            unitDefId: ::std::os::raw::c_int,
7965        ) -> f32,
7966    >,
7967    #[doc = " Maximum terra-form height this building allows.\n If this value is 0.0, you can only build this structure on\n totally flat terrain."]
7968    pub UnitDef_getMaxHeightDif: ::std::option::Option<
7969        unsafe extern "C" fn(
7970            skirmishAIId: ::std::os::raw::c_int,
7971            unitDefId: ::std::os::raw::c_int,
7972        ) -> f32,
7973    >,
7974    pub UnitDef_getMinWaterDepth: ::std::option::Option<
7975        unsafe extern "C" fn(
7976            skirmishAIId: ::std::os::raw::c_int,
7977            unitDefId: ::std::os::raw::c_int,
7978        ) -> f32,
7979    >,
7980    pub UnitDef_getWaterline: ::std::option::Option<
7981        unsafe extern "C" fn(
7982            skirmishAIId: ::std::os::raw::c_int,
7983            unitDefId: ::std::os::raw::c_int,
7984        ) -> f32,
7985    >,
7986    pub UnitDef_getMaxWaterDepth: ::std::option::Option<
7987        unsafe extern "C" fn(
7988            skirmishAIId: ::std::os::raw::c_int,
7989            unitDefId: ::std::os::raw::c_int,
7990        ) -> f32,
7991    >,
7992    pub UnitDef_getArmoredMultiple: ::std::option::Option<
7993        unsafe extern "C" fn(
7994            skirmishAIId: ::std::os::raw::c_int,
7995            unitDefId: ::std::os::raw::c_int,
7996        ) -> f32,
7997    >,
7998    pub UnitDef_getArmorType: ::std::option::Option<
7999        unsafe extern "C" fn(
8000            skirmishAIId: ::std::os::raw::c_int,
8001            unitDefId: ::std::os::raw::c_int,
8002        ) -> ::std::os::raw::c_int,
8003    >,
8004    #[doc = " The flanking bonus indicates how much additional damage you can inflict to\n a unit, if it gets attacked from different directions.\n See the spring source code if you want to know it more precisely.\n\n @return  0: no flanking bonus\n          1: global coords, mobile\n          2: unit coords, mobile\n          3: unit coords, locked"]
8005    pub UnitDef_FlankingBonus_getMode: ::std::option::Option<
8006        unsafe extern "C" fn(
8007            skirmishAIId: ::std::os::raw::c_int,
8008            unitDefId: ::std::os::raw::c_int,
8009        ) -> ::std::os::raw::c_int,
8010    >,
8011    #[doc = " The unit takes less damage when attacked from this direction.\n This encourage flanking fire."]
8012    pub UnitDef_FlankingBonus_getDir: ::std::option::Option<
8013        unsafe extern "C" fn(
8014            skirmishAIId: ::std::os::raw::c_int,
8015            unitDefId: ::std::os::raw::c_int,
8016            return_posF3_out: *mut f32,
8017        ),
8018    >,
8019    #[doc = " Damage factor for the least protected direction"]
8020    pub UnitDef_FlankingBonus_getMax: ::std::option::Option<
8021        unsafe extern "C" fn(
8022            skirmishAIId: ::std::os::raw::c_int,
8023            unitDefId: ::std::os::raw::c_int,
8024        ) -> f32,
8025    >,
8026    #[doc = " Damage factor for the most protected direction"]
8027    pub UnitDef_FlankingBonus_getMin: ::std::option::Option<
8028        unsafe extern "C" fn(
8029            skirmishAIId: ::std::os::raw::c_int,
8030            unitDefId: ::std::os::raw::c_int,
8031        ) -> f32,
8032    >,
8033    #[doc = " How much the ability of the flanking bonus direction to move builds up each\n frame."]
8034    pub UnitDef_FlankingBonus_getMobilityAdd: ::std::option::Option<
8035        unsafe extern "C" fn(
8036            skirmishAIId: ::std::os::raw::c_int,
8037            unitDefId: ::std::os::raw::c_int,
8038        ) -> f32,
8039    >,
8040    pub UnitDef_getMaxWeaponRange: ::std::option::Option<
8041        unsafe extern "C" fn(
8042            skirmishAIId: ::std::os::raw::c_int,
8043            unitDefId: ::std::os::raw::c_int,
8044        ) -> f32,
8045    >,
8046    pub UnitDef_getTooltip: ::std::option::Option<
8047        unsafe extern "C" fn(
8048            skirmishAIId: ::std::os::raw::c_int,
8049            unitDefId: ::std::os::raw::c_int,
8050        ) -> *const ::std::os::raw::c_char,
8051    >,
8052    pub UnitDef_getWreckName: ::std::option::Option<
8053        unsafe extern "C" fn(
8054            skirmishAIId: ::std::os::raw::c_int,
8055            unitDefId: ::std::os::raw::c_int,
8056        ) -> *const ::std::os::raw::c_char,
8057    >,
8058    pub UnitDef_getDeathExplosion: ::std::option::Option<
8059        unsafe extern "C" fn(
8060            skirmishAIId: ::std::os::raw::c_int,
8061            unitDefId: ::std::os::raw::c_int,
8062        ) -> ::std::os::raw::c_int,
8063    >,
8064    pub UnitDef_getSelfDExplosion: ::std::option::Option<
8065        unsafe extern "C" fn(
8066            skirmishAIId: ::std::os::raw::c_int,
8067            unitDefId: ::std::os::raw::c_int,
8068        ) -> ::std::os::raw::c_int,
8069    >,
8070    #[doc = " Returns the name of the category this unit is in.\n @see Game#getCategoryFlag\n @see Game#getCategoryName"]
8071    pub UnitDef_getCategoryString: ::std::option::Option<
8072        unsafe extern "C" fn(
8073            skirmishAIId: ::std::os::raw::c_int,
8074            unitDefId: ::std::os::raw::c_int,
8075        ) -> *const ::std::os::raw::c_char,
8076    >,
8077    pub UnitDef_isAbleToSelfD: ::std::option::Option<
8078        unsafe extern "C" fn(
8079            skirmishAIId: ::std::os::raw::c_int,
8080            unitDefId: ::std::os::raw::c_int,
8081        ) -> bool,
8082    >,
8083    pub UnitDef_getSelfDCountdown: ::std::option::Option<
8084        unsafe extern "C" fn(
8085            skirmishAIId: ::std::os::raw::c_int,
8086            unitDefId: ::std::os::raw::c_int,
8087        ) -> ::std::os::raw::c_int,
8088    >,
8089    pub UnitDef_isAbleToSubmerge: ::std::option::Option<
8090        unsafe extern "C" fn(
8091            skirmishAIId: ::std::os::raw::c_int,
8092            unitDefId: ::std::os::raw::c_int,
8093        ) -> bool,
8094    >,
8095    pub UnitDef_isAbleToFly: ::std::option::Option<
8096        unsafe extern "C" fn(
8097            skirmishAIId: ::std::os::raw::c_int,
8098            unitDefId: ::std::os::raw::c_int,
8099        ) -> bool,
8100    >,
8101    pub UnitDef_isAbleToMove: ::std::option::Option<
8102        unsafe extern "C" fn(
8103            skirmishAIId: ::std::os::raw::c_int,
8104            unitDefId: ::std::os::raw::c_int,
8105        ) -> bool,
8106    >,
8107    pub UnitDef_isAbleToHover: ::std::option::Option<
8108        unsafe extern "C" fn(
8109            skirmishAIId: ::std::os::raw::c_int,
8110            unitDefId: ::std::os::raw::c_int,
8111        ) -> bool,
8112    >,
8113    pub UnitDef_isFloater: ::std::option::Option<
8114        unsafe extern "C" fn(
8115            skirmishAIId: ::std::os::raw::c_int,
8116            unitDefId: ::std::os::raw::c_int,
8117        ) -> bool,
8118    >,
8119    pub UnitDef_isBuilder: ::std::option::Option<
8120        unsafe extern "C" fn(
8121            skirmishAIId: ::std::os::raw::c_int,
8122            unitDefId: ::std::os::raw::c_int,
8123        ) -> bool,
8124    >,
8125    pub UnitDef_isActivateWhenBuilt: ::std::option::Option<
8126        unsafe extern "C" fn(
8127            skirmishAIId: ::std::os::raw::c_int,
8128            unitDefId: ::std::os::raw::c_int,
8129        ) -> bool,
8130    >,
8131    pub UnitDef_isOnOffable: ::std::option::Option<
8132        unsafe extern "C" fn(
8133            skirmishAIId: ::std::os::raw::c_int,
8134            unitDefId: ::std::os::raw::c_int,
8135        ) -> bool,
8136    >,
8137    pub UnitDef_isFullHealthFactory: ::std::option::Option<
8138        unsafe extern "C" fn(
8139            skirmishAIId: ::std::os::raw::c_int,
8140            unitDefId: ::std::os::raw::c_int,
8141        ) -> bool,
8142    >,
8143    pub UnitDef_isFactoryHeadingTakeoff: ::std::option::Option<
8144        unsafe extern "C" fn(
8145            skirmishAIId: ::std::os::raw::c_int,
8146            unitDefId: ::std::os::raw::c_int,
8147        ) -> bool,
8148    >,
8149    pub UnitDef_isReclaimable: ::std::option::Option<
8150        unsafe extern "C" fn(
8151            skirmishAIId: ::std::os::raw::c_int,
8152            unitDefId: ::std::os::raw::c_int,
8153        ) -> bool,
8154    >,
8155    pub UnitDef_isCapturable: ::std::option::Option<
8156        unsafe extern "C" fn(
8157            skirmishAIId: ::std::os::raw::c_int,
8158            unitDefId: ::std::os::raw::c_int,
8159        ) -> bool,
8160    >,
8161    pub UnitDef_isAbleToRestore: ::std::option::Option<
8162        unsafe extern "C" fn(
8163            skirmishAIId: ::std::os::raw::c_int,
8164            unitDefId: ::std::os::raw::c_int,
8165        ) -> bool,
8166    >,
8167    pub UnitDef_isAbleToRepair: ::std::option::Option<
8168        unsafe extern "C" fn(
8169            skirmishAIId: ::std::os::raw::c_int,
8170            unitDefId: ::std::os::raw::c_int,
8171        ) -> bool,
8172    >,
8173    pub UnitDef_isAbleToSelfRepair: ::std::option::Option<
8174        unsafe extern "C" fn(
8175            skirmishAIId: ::std::os::raw::c_int,
8176            unitDefId: ::std::os::raw::c_int,
8177        ) -> bool,
8178    >,
8179    pub UnitDef_isAbleToReclaim: ::std::option::Option<
8180        unsafe extern "C" fn(
8181            skirmishAIId: ::std::os::raw::c_int,
8182            unitDefId: ::std::os::raw::c_int,
8183        ) -> bool,
8184    >,
8185    pub UnitDef_isAbleToAttack: ::std::option::Option<
8186        unsafe extern "C" fn(
8187            skirmishAIId: ::std::os::raw::c_int,
8188            unitDefId: ::std::os::raw::c_int,
8189        ) -> bool,
8190    >,
8191    pub UnitDef_isAbleToPatrol: ::std::option::Option<
8192        unsafe extern "C" fn(
8193            skirmishAIId: ::std::os::raw::c_int,
8194            unitDefId: ::std::os::raw::c_int,
8195        ) -> bool,
8196    >,
8197    pub UnitDef_isAbleToFight: ::std::option::Option<
8198        unsafe extern "C" fn(
8199            skirmishAIId: ::std::os::raw::c_int,
8200            unitDefId: ::std::os::raw::c_int,
8201        ) -> bool,
8202    >,
8203    pub UnitDef_isAbleToGuard: ::std::option::Option<
8204        unsafe extern "C" fn(
8205            skirmishAIId: ::std::os::raw::c_int,
8206            unitDefId: ::std::os::raw::c_int,
8207        ) -> bool,
8208    >,
8209    pub UnitDef_isAbleToAssist: ::std::option::Option<
8210        unsafe extern "C" fn(
8211            skirmishAIId: ::std::os::raw::c_int,
8212            unitDefId: ::std::os::raw::c_int,
8213        ) -> bool,
8214    >,
8215    pub UnitDef_isAssistable: ::std::option::Option<
8216        unsafe extern "C" fn(
8217            skirmishAIId: ::std::os::raw::c_int,
8218            unitDefId: ::std::os::raw::c_int,
8219        ) -> bool,
8220    >,
8221    pub UnitDef_isAbleToRepeat: ::std::option::Option<
8222        unsafe extern "C" fn(
8223            skirmishAIId: ::std::os::raw::c_int,
8224            unitDefId: ::std::os::raw::c_int,
8225        ) -> bool,
8226    >,
8227    pub UnitDef_isAbleToFireControl: ::std::option::Option<
8228        unsafe extern "C" fn(
8229            skirmishAIId: ::std::os::raw::c_int,
8230            unitDefId: ::std::os::raw::c_int,
8231        ) -> bool,
8232    >,
8233    pub UnitDef_getFireState: ::std::option::Option<
8234        unsafe extern "C" fn(
8235            skirmishAIId: ::std::os::raw::c_int,
8236            unitDefId: ::std::os::raw::c_int,
8237        ) -> ::std::os::raw::c_int,
8238    >,
8239    pub UnitDef_getMoveState: ::std::option::Option<
8240        unsafe extern "C" fn(
8241            skirmishAIId: ::std::os::raw::c_int,
8242            unitDefId: ::std::os::raw::c_int,
8243        ) -> ::std::os::raw::c_int,
8244    >,
8245    pub UnitDef_getWingDrag: ::std::option::Option<
8246        unsafe extern "C" fn(
8247            skirmishAIId: ::std::os::raw::c_int,
8248            unitDefId: ::std::os::raw::c_int,
8249        ) -> f32,
8250    >,
8251    pub UnitDef_getWingAngle: ::std::option::Option<
8252        unsafe extern "C" fn(
8253            skirmishAIId: ::std::os::raw::c_int,
8254            unitDefId: ::std::os::raw::c_int,
8255        ) -> f32,
8256    >,
8257    pub UnitDef_getFrontToSpeed: ::std::option::Option<
8258        unsafe extern "C" fn(
8259            skirmishAIId: ::std::os::raw::c_int,
8260            unitDefId: ::std::os::raw::c_int,
8261        ) -> f32,
8262    >,
8263    pub UnitDef_getSpeedToFront: ::std::option::Option<
8264        unsafe extern "C" fn(
8265            skirmishAIId: ::std::os::raw::c_int,
8266            unitDefId: ::std::os::raw::c_int,
8267        ) -> f32,
8268    >,
8269    pub UnitDef_getMyGravity: ::std::option::Option<
8270        unsafe extern "C" fn(
8271            skirmishAIId: ::std::os::raw::c_int,
8272            unitDefId: ::std::os::raw::c_int,
8273        ) -> f32,
8274    >,
8275    pub UnitDef_getMaxBank: ::std::option::Option<
8276        unsafe extern "C" fn(
8277            skirmishAIId: ::std::os::raw::c_int,
8278            unitDefId: ::std::os::raw::c_int,
8279        ) -> f32,
8280    >,
8281    pub UnitDef_getMaxPitch: ::std::option::Option<
8282        unsafe extern "C" fn(
8283            skirmishAIId: ::std::os::raw::c_int,
8284            unitDefId: ::std::os::raw::c_int,
8285        ) -> f32,
8286    >,
8287    pub UnitDef_getTurnRadius: ::std::option::Option<
8288        unsafe extern "C" fn(
8289            skirmishAIId: ::std::os::raw::c_int,
8290            unitDefId: ::std::os::raw::c_int,
8291        ) -> f32,
8292    >,
8293    pub UnitDef_getWantedHeight: ::std::option::Option<
8294        unsafe extern "C" fn(
8295            skirmishAIId: ::std::os::raw::c_int,
8296            unitDefId: ::std::os::raw::c_int,
8297        ) -> f32,
8298    >,
8299    pub UnitDef_getVerticalSpeed: ::std::option::Option<
8300        unsafe extern "C" fn(
8301            skirmishAIId: ::std::os::raw::c_int,
8302            unitDefId: ::std::os::raw::c_int,
8303        ) -> f32,
8304    >,
8305    pub UnitDef_isHoverAttack: ::std::option::Option<
8306        unsafe extern "C" fn(
8307            skirmishAIId: ::std::os::raw::c_int,
8308            unitDefId: ::std::os::raw::c_int,
8309        ) -> bool,
8310    >,
8311    pub UnitDef_isAirStrafe: ::std::option::Option<
8312        unsafe extern "C" fn(
8313            skirmishAIId: ::std::os::raw::c_int,
8314            unitDefId: ::std::os::raw::c_int,
8315        ) -> bool,
8316    >,
8317    #[doc = " @return  < 0:  it can land\n          >= 0: how much the unit will move during hovering on the spot"]
8318    pub UnitDef_getDlHoverFactor: ::std::option::Option<
8319        unsafe extern "C" fn(
8320            skirmishAIId: ::std::os::raw::c_int,
8321            unitDefId: ::std::os::raw::c_int,
8322        ) -> f32,
8323    >,
8324    pub UnitDef_getMaxAcceleration: ::std::option::Option<
8325        unsafe extern "C" fn(
8326            skirmishAIId: ::std::os::raw::c_int,
8327            unitDefId: ::std::os::raw::c_int,
8328        ) -> f32,
8329    >,
8330    pub UnitDef_getMaxDeceleration: ::std::option::Option<
8331        unsafe extern "C" fn(
8332            skirmishAIId: ::std::os::raw::c_int,
8333            unitDefId: ::std::os::raw::c_int,
8334        ) -> f32,
8335    >,
8336    pub UnitDef_getMaxAileron: ::std::option::Option<
8337        unsafe extern "C" fn(
8338            skirmishAIId: ::std::os::raw::c_int,
8339            unitDefId: ::std::os::raw::c_int,
8340        ) -> f32,
8341    >,
8342    pub UnitDef_getMaxElevator: ::std::option::Option<
8343        unsafe extern "C" fn(
8344            skirmishAIId: ::std::os::raw::c_int,
8345            unitDefId: ::std::os::raw::c_int,
8346        ) -> f32,
8347    >,
8348    pub UnitDef_getMaxRudder: ::std::option::Option<
8349        unsafe extern "C" fn(
8350            skirmishAIId: ::std::os::raw::c_int,
8351            unitDefId: ::std::os::raw::c_int,
8352        ) -> f32,
8353    >,
8354    #[doc = " The yard map defines which parts of the square a unit occupies\n can still be walked on by other units.\n Example:\n In the BA Arm T2 K-Bot lab, htere is a line in hte middle where units\n walk, otherwise they would not be able ot exit the lab once they are\n built.\n @return 0 if invalid facing or the unit has no yard-map defined,\n         the size of the yard-map otherwise: getXSize() * getXSize()"]
8355    pub UnitDef_getYardMap: ::std::option::Option<
8356        unsafe extern "C" fn(
8357            skirmishAIId: ::std::os::raw::c_int,
8358            unitDefId: ::std::os::raw::c_int,
8359            facing: ::std::os::raw::c_int,
8360            yardMap: *mut ::std::os::raw::c_short,
8361            yardMap_sizeMax: ::std::os::raw::c_int,
8362        ) -> ::std::os::raw::c_int,
8363    >,
8364    pub UnitDef_getXSize: ::std::option::Option<
8365        unsafe extern "C" fn(
8366            skirmishAIId: ::std::os::raw::c_int,
8367            unitDefId: ::std::os::raw::c_int,
8368        ) -> ::std::os::raw::c_int,
8369    >,
8370    pub UnitDef_getZSize: ::std::option::Option<
8371        unsafe extern "C" fn(
8372            skirmishAIId: ::std::os::raw::c_int,
8373            unitDefId: ::std::os::raw::c_int,
8374        ) -> ::std::os::raw::c_int,
8375    >,
8376    pub UnitDef_getLoadingRadius: ::std::option::Option<
8377        unsafe extern "C" fn(
8378            skirmishAIId: ::std::os::raw::c_int,
8379            unitDefId: ::std::os::raw::c_int,
8380        ) -> f32,
8381    >,
8382    pub UnitDef_getUnloadSpread: ::std::option::Option<
8383        unsafe extern "C" fn(
8384            skirmishAIId: ::std::os::raw::c_int,
8385            unitDefId: ::std::os::raw::c_int,
8386        ) -> f32,
8387    >,
8388    pub UnitDef_getTransportCapacity: ::std::option::Option<
8389        unsafe extern "C" fn(
8390            skirmishAIId: ::std::os::raw::c_int,
8391            unitDefId: ::std::os::raw::c_int,
8392        ) -> ::std::os::raw::c_int,
8393    >,
8394    pub UnitDef_getTransportSize: ::std::option::Option<
8395        unsafe extern "C" fn(
8396            skirmishAIId: ::std::os::raw::c_int,
8397            unitDefId: ::std::os::raw::c_int,
8398        ) -> ::std::os::raw::c_int,
8399    >,
8400    pub UnitDef_getMinTransportSize: ::std::option::Option<
8401        unsafe extern "C" fn(
8402            skirmishAIId: ::std::os::raw::c_int,
8403            unitDefId: ::std::os::raw::c_int,
8404        ) -> ::std::os::raw::c_int,
8405    >,
8406    pub UnitDef_isAirBase: ::std::option::Option<
8407        unsafe extern "C" fn(
8408            skirmishAIId: ::std::os::raw::c_int,
8409            unitDefId: ::std::os::raw::c_int,
8410        ) -> bool,
8411    >,
8412    pub UnitDef_isFirePlatform: ::std::option::Option<
8413        unsafe extern "C" fn(
8414            skirmishAIId: ::std::os::raw::c_int,
8415            unitDefId: ::std::os::raw::c_int,
8416        ) -> bool,
8417    >,
8418    pub UnitDef_getTransportMass: ::std::option::Option<
8419        unsafe extern "C" fn(
8420            skirmishAIId: ::std::os::raw::c_int,
8421            unitDefId: ::std::os::raw::c_int,
8422        ) -> f32,
8423    >,
8424    pub UnitDef_getMinTransportMass: ::std::option::Option<
8425        unsafe extern "C" fn(
8426            skirmishAIId: ::std::os::raw::c_int,
8427            unitDefId: ::std::os::raw::c_int,
8428        ) -> f32,
8429    >,
8430    pub UnitDef_isHoldSteady: ::std::option::Option<
8431        unsafe extern "C" fn(
8432            skirmishAIId: ::std::os::raw::c_int,
8433            unitDefId: ::std::os::raw::c_int,
8434        ) -> bool,
8435    >,
8436    pub UnitDef_isReleaseHeld: ::std::option::Option<
8437        unsafe extern "C" fn(
8438            skirmishAIId: ::std::os::raw::c_int,
8439            unitDefId: ::std::os::raw::c_int,
8440        ) -> bool,
8441    >,
8442    pub UnitDef_isNotTransportable: ::std::option::Option<
8443        unsafe extern "C" fn(
8444            skirmishAIId: ::std::os::raw::c_int,
8445            unitDefId: ::std::os::raw::c_int,
8446        ) -> bool,
8447    >,
8448    pub UnitDef_isTransportByEnemy: ::std::option::Option<
8449        unsafe extern "C" fn(
8450            skirmishAIId: ::std::os::raw::c_int,
8451            unitDefId: ::std::os::raw::c_int,
8452        ) -> bool,
8453    >,
8454    #[doc = " @return  0: land unload\n          1: fly-over drop\n          2: land flood"]
8455    pub UnitDef_getTransportUnloadMethod: ::std::option::Option<
8456        unsafe extern "C" fn(
8457            skirmishAIId: ::std::os::raw::c_int,
8458            unitDefId: ::std::os::raw::c_int,
8459        ) -> ::std::os::raw::c_int,
8460    >,
8461    #[doc = " Dictates fall speed of all transported units.\n This only makes sense for air transports,\n if they an drop units while in the air."]
8462    pub UnitDef_getFallSpeed: ::std::option::Option<
8463        unsafe extern "C" fn(
8464            skirmishAIId: ::std::os::raw::c_int,
8465            unitDefId: ::std::os::raw::c_int,
8466        ) -> f32,
8467    >,
8468    #[doc = " Sets the transported units FBI, overrides fallSpeed"]
8469    pub UnitDef_getUnitFallSpeed: ::std::option::Option<
8470        unsafe extern "C" fn(
8471            skirmishAIId: ::std::os::raw::c_int,
8472            unitDefId: ::std::os::raw::c_int,
8473        ) -> f32,
8474    >,
8475    #[doc = " If the unit can cloak"]
8476    pub UnitDef_isAbleToCloak: ::std::option::Option<
8477        unsafe extern "C" fn(
8478            skirmishAIId: ::std::os::raw::c_int,
8479            unitDefId: ::std::os::raw::c_int,
8480        ) -> bool,
8481    >,
8482    #[doc = " If the unit wants to start out cloaked"]
8483    pub UnitDef_isStartCloaked: ::std::option::Option<
8484        unsafe extern "C" fn(
8485            skirmishAIId: ::std::os::raw::c_int,
8486            unitDefId: ::std::os::raw::c_int,
8487        ) -> bool,
8488    >,
8489    #[doc = " Energy cost per second to stay cloaked when stationary"]
8490    pub UnitDef_getCloakCost: ::std::option::Option<
8491        unsafe extern "C" fn(
8492            skirmishAIId: ::std::os::raw::c_int,
8493            unitDefId: ::std::os::raw::c_int,
8494        ) -> f32,
8495    >,
8496    #[doc = " Energy cost per second to stay cloaked when moving"]
8497    pub UnitDef_getCloakCostMoving: ::std::option::Option<
8498        unsafe extern "C" fn(
8499            skirmishAIId: ::std::os::raw::c_int,
8500            unitDefId: ::std::os::raw::c_int,
8501        ) -> f32,
8502    >,
8503    #[doc = " If enemy unit comes within this range, decloaking is forced"]
8504    pub UnitDef_getDecloakDistance: ::std::option::Option<
8505        unsafe extern "C" fn(
8506            skirmishAIId: ::std::os::raw::c_int,
8507            unitDefId: ::std::os::raw::c_int,
8508        ) -> f32,
8509    >,
8510    #[doc = " Use a spherical, instead of a cylindrical test?"]
8511    pub UnitDef_isDecloakSpherical: ::std::option::Option<
8512        unsafe extern "C" fn(
8513            skirmishAIId: ::std::os::raw::c_int,
8514            unitDefId: ::std::os::raw::c_int,
8515        ) -> bool,
8516    >,
8517    #[doc = " Will the unit decloak upon firing?"]
8518    pub UnitDef_isDecloakOnFire: ::std::option::Option<
8519        unsafe extern "C" fn(
8520            skirmishAIId: ::std::os::raw::c_int,
8521            unitDefId: ::std::os::raw::c_int,
8522        ) -> bool,
8523    >,
8524    #[doc = " Will the unit self destruct if an enemy comes to close?"]
8525    pub UnitDef_isAbleToKamikaze: ::std::option::Option<
8526        unsafe extern "C" fn(
8527            skirmishAIId: ::std::os::raw::c_int,
8528            unitDefId: ::std::os::raw::c_int,
8529        ) -> bool,
8530    >,
8531    pub UnitDef_getKamikazeDist: ::std::option::Option<
8532        unsafe extern "C" fn(
8533            skirmishAIId: ::std::os::raw::c_int,
8534            unitDefId: ::std::os::raw::c_int,
8535        ) -> f32,
8536    >,
8537    pub UnitDef_isTargetingFacility: ::std::option::Option<
8538        unsafe extern "C" fn(
8539            skirmishAIId: ::std::os::raw::c_int,
8540            unitDefId: ::std::os::raw::c_int,
8541        ) -> bool,
8542    >,
8543    pub UnitDef_canManualFire: ::std::option::Option<
8544        unsafe extern "C" fn(
8545            skirmishAIId: ::std::os::raw::c_int,
8546            unitDefId: ::std::os::raw::c_int,
8547        ) -> bool,
8548    >,
8549    pub UnitDef_isNeedGeo: ::std::option::Option<
8550        unsafe extern "C" fn(
8551            skirmishAIId: ::std::os::raw::c_int,
8552            unitDefId: ::std::os::raw::c_int,
8553        ) -> bool,
8554    >,
8555    pub UnitDef_isFeature: ::std::option::Option<
8556        unsafe extern "C" fn(
8557            skirmishAIId: ::std::os::raw::c_int,
8558            unitDefId: ::std::os::raw::c_int,
8559        ) -> bool,
8560    >,
8561    pub UnitDef_isHideDamage: ::std::option::Option<
8562        unsafe extern "C" fn(
8563            skirmishAIId: ::std::os::raw::c_int,
8564            unitDefId: ::std::os::raw::c_int,
8565        ) -> bool,
8566    >,
8567    pub UnitDef_isShowPlayerName: ::std::option::Option<
8568        unsafe extern "C" fn(
8569            skirmishAIId: ::std::os::raw::c_int,
8570            unitDefId: ::std::os::raw::c_int,
8571        ) -> bool,
8572    >,
8573    pub UnitDef_isAbleToResurrect: ::std::option::Option<
8574        unsafe extern "C" fn(
8575            skirmishAIId: ::std::os::raw::c_int,
8576            unitDefId: ::std::os::raw::c_int,
8577        ) -> bool,
8578    >,
8579    pub UnitDef_isAbleToCapture: ::std::option::Option<
8580        unsafe extern "C" fn(
8581            skirmishAIId: ::std::os::raw::c_int,
8582            unitDefId: ::std::os::raw::c_int,
8583        ) -> bool,
8584    >,
8585    #[doc = " Indicates the trajectory types supported by this unit.\n\n @return  0: (default) = only low\n          1: only high\n          2: choose"]
8586    pub UnitDef_getHighTrajectoryType: ::std::option::Option<
8587        unsafe extern "C" fn(
8588            skirmishAIId: ::std::os::raw::c_int,
8589            unitDefId: ::std::os::raw::c_int,
8590        ) -> ::std::os::raw::c_int,
8591    >,
8592    #[doc = " Returns the bit field value denoting the categories this unit shall not\n chase.\n @see Game#getCategoryFlag\n @see Game#getCategoryName"]
8593    pub UnitDef_getNoChaseCategory: ::std::option::Option<
8594        unsafe extern "C" fn(
8595            skirmishAIId: ::std::os::raw::c_int,
8596            unitDefId: ::std::os::raw::c_int,
8597        ) -> ::std::os::raw::c_int,
8598    >,
8599    pub UnitDef_isAbleToDropFlare: ::std::option::Option<
8600        unsafe extern "C" fn(
8601            skirmishAIId: ::std::os::raw::c_int,
8602            unitDefId: ::std::os::raw::c_int,
8603        ) -> bool,
8604    >,
8605    pub UnitDef_getFlareReloadTime: ::std::option::Option<
8606        unsafe extern "C" fn(
8607            skirmishAIId: ::std::os::raw::c_int,
8608            unitDefId: ::std::os::raw::c_int,
8609        ) -> f32,
8610    >,
8611    pub UnitDef_getFlareEfficiency: ::std::option::Option<
8612        unsafe extern "C" fn(
8613            skirmishAIId: ::std::os::raw::c_int,
8614            unitDefId: ::std::os::raw::c_int,
8615        ) -> f32,
8616    >,
8617    pub UnitDef_getFlareDelay: ::std::option::Option<
8618        unsafe extern "C" fn(
8619            skirmishAIId: ::std::os::raw::c_int,
8620            unitDefId: ::std::os::raw::c_int,
8621        ) -> f32,
8622    >,
8623    pub UnitDef_getFlareDropVector: ::std::option::Option<
8624        unsafe extern "C" fn(
8625            skirmishAIId: ::std::os::raw::c_int,
8626            unitDefId: ::std::os::raw::c_int,
8627            return_posF3_out: *mut f32,
8628        ),
8629    >,
8630    pub UnitDef_getFlareTime: ::std::option::Option<
8631        unsafe extern "C" fn(
8632            skirmishAIId: ::std::os::raw::c_int,
8633            unitDefId: ::std::os::raw::c_int,
8634        ) -> ::std::os::raw::c_int,
8635    >,
8636    pub UnitDef_getFlareSalvoSize: ::std::option::Option<
8637        unsafe extern "C" fn(
8638            skirmishAIId: ::std::os::raw::c_int,
8639            unitDefId: ::std::os::raw::c_int,
8640        ) -> ::std::os::raw::c_int,
8641    >,
8642    pub UnitDef_getFlareSalvoDelay: ::std::option::Option<
8643        unsafe extern "C" fn(
8644            skirmishAIId: ::std::os::raw::c_int,
8645            unitDefId: ::std::os::raw::c_int,
8646        ) -> ::std::os::raw::c_int,
8647    >,
8648    #[doc = " Only matters for fighter aircraft"]
8649    pub UnitDef_isAbleToLoopbackAttack: ::std::option::Option<
8650        unsafe extern "C" fn(
8651            skirmishAIId: ::std::os::raw::c_int,
8652            unitDefId: ::std::os::raw::c_int,
8653        ) -> bool,
8654    >,
8655    #[doc = " Indicates whether the ground will be leveled/flattened out\n after this building has been built on it.\n Only matters for buildings."]
8656    pub UnitDef_isLevelGround: ::std::option::Option<
8657        unsafe extern "C" fn(
8658            skirmishAIId: ::std::os::raw::c_int,
8659            unitDefId: ::std::os::raw::c_int,
8660        ) -> bool,
8661    >,
8662    #[doc = " Number of units of this type allowed simultaneously in the game"]
8663    pub UnitDef_getMaxThisUnit: ::std::option::Option<
8664        unsafe extern "C" fn(
8665            skirmishAIId: ::std::os::raw::c_int,
8666            unitDefId: ::std::os::raw::c_int,
8667        ) -> ::std::os::raw::c_int,
8668    >,
8669    pub UnitDef_getDecoyDef: ::std::option::Option<
8670        unsafe extern "C" fn(
8671            skirmishAIId: ::std::os::raw::c_int,
8672            unitDefId: ::std::os::raw::c_int,
8673        ) -> ::std::os::raw::c_int,
8674    >,
8675    pub UnitDef_isDontLand: ::std::option::Option<
8676        unsafe extern "C" fn(
8677            skirmishAIId: ::std::os::raw::c_int,
8678            unitDefId: ::std::os::raw::c_int,
8679        ) -> bool,
8680    >,
8681    pub UnitDef_getShieldDef: ::std::option::Option<
8682        unsafe extern "C" fn(
8683            skirmishAIId: ::std::os::raw::c_int,
8684            unitDefId: ::std::os::raw::c_int,
8685        ) -> ::std::os::raw::c_int,
8686    >,
8687    pub UnitDef_getStockpileDef: ::std::option::Option<
8688        unsafe extern "C" fn(
8689            skirmishAIId: ::std::os::raw::c_int,
8690            unitDefId: ::std::os::raw::c_int,
8691        ) -> ::std::os::raw::c_int,
8692    >,
8693    pub UnitDef_getBuildOptions: ::std::option::Option<
8694        unsafe extern "C" fn(
8695            skirmishAIId: ::std::os::raw::c_int,
8696            unitDefId: ::std::os::raw::c_int,
8697            unitDefIds: *mut ::std::os::raw::c_int,
8698            unitDefIds_sizeMax: ::std::os::raw::c_int,
8699        ) -> ::std::os::raw::c_int,
8700    >,
8701    pub UnitDef_getCustomParams: ::std::option::Option<
8702        unsafe extern "C" fn(
8703            skirmishAIId: ::std::os::raw::c_int,
8704            unitDefId: ::std::os::raw::c_int,
8705            keys: *mut *const ::std::os::raw::c_char,
8706            values: *mut *const ::std::os::raw::c_char,
8707        ) -> ::std::os::raw::c_int,
8708    >,
8709    pub UnitDef_isMoveDataAvailable: ::std::option::Option<
8710        unsafe extern "C" fn(
8711            skirmishAIId: ::std::os::raw::c_int,
8712            unitDefId: ::std::os::raw::c_int,
8713        ) -> bool,
8714    >,
8715    pub UnitDef_MoveData_getXSize: ::std::option::Option<
8716        unsafe extern "C" fn(
8717            skirmishAIId: ::std::os::raw::c_int,
8718            unitDefId: ::std::os::raw::c_int,
8719        ) -> ::std::os::raw::c_int,
8720    >,
8721    pub UnitDef_MoveData_getZSize: ::std::option::Option<
8722        unsafe extern "C" fn(
8723            skirmishAIId: ::std::os::raw::c_int,
8724            unitDefId: ::std::os::raw::c_int,
8725        ) -> ::std::os::raw::c_int,
8726    >,
8727    pub UnitDef_MoveData_getDepth: ::std::option::Option<
8728        unsafe extern "C" fn(
8729            skirmishAIId: ::std::os::raw::c_int,
8730            unitDefId: ::std::os::raw::c_int,
8731        ) -> f32,
8732    >,
8733    pub UnitDef_MoveData_getMaxSlope: ::std::option::Option<
8734        unsafe extern "C" fn(
8735            skirmishAIId: ::std::os::raw::c_int,
8736            unitDefId: ::std::os::raw::c_int,
8737        ) -> f32,
8738    >,
8739    pub UnitDef_MoveData_getSlopeMod: ::std::option::Option<
8740        unsafe extern "C" fn(
8741            skirmishAIId: ::std::os::raw::c_int,
8742            unitDefId: ::std::os::raw::c_int,
8743        ) -> f32,
8744    >,
8745    pub UnitDef_MoveData_getDepthMod: ::std::option::Option<
8746        unsafe extern "C" fn(
8747            skirmishAIId: ::std::os::raw::c_int,
8748            unitDefId: ::std::os::raw::c_int,
8749            height: f32,
8750        ) -> f32,
8751    >,
8752    pub UnitDef_MoveData_getPathType: ::std::option::Option<
8753        unsafe extern "C" fn(
8754            skirmishAIId: ::std::os::raw::c_int,
8755            unitDefId: ::std::os::raw::c_int,
8756        ) -> ::std::os::raw::c_int,
8757    >,
8758    pub UnitDef_MoveData_getCrushStrength: ::std::option::Option<
8759        unsafe extern "C" fn(
8760            skirmishAIId: ::std::os::raw::c_int,
8761            unitDefId: ::std::os::raw::c_int,
8762        ) -> f32,
8763    >,
8764    #[doc = " enum SpeedModClass { Tank=0, KBot=1, Hover=2, Ship=3 };"]
8765    pub UnitDef_MoveData_getSpeedModClass: ::std::option::Option<
8766        unsafe extern "C" fn(
8767            skirmishAIId: ::std::os::raw::c_int,
8768            unitDefId: ::std::os::raw::c_int,
8769        ) -> ::std::os::raw::c_int,
8770    >,
8771    pub UnitDef_MoveData_getTerrainClass: ::std::option::Option<
8772        unsafe extern "C" fn(
8773            skirmishAIId: ::std::os::raw::c_int,
8774            unitDefId: ::std::os::raw::c_int,
8775        ) -> ::std::os::raw::c_int,
8776    >,
8777    pub UnitDef_MoveData_getFollowGround: ::std::option::Option<
8778        unsafe extern "C" fn(
8779            skirmishAIId: ::std::os::raw::c_int,
8780            unitDefId: ::std::os::raw::c_int,
8781        ) -> bool,
8782    >,
8783    pub UnitDef_MoveData_isSubMarine: ::std::option::Option<
8784        unsafe extern "C" fn(
8785            skirmishAIId: ::std::os::raw::c_int,
8786            unitDefId: ::std::os::raw::c_int,
8787        ) -> bool,
8788    >,
8789    pub UnitDef_MoveData_getName: ::std::option::Option<
8790        unsafe extern "C" fn(
8791            skirmishAIId: ::std::os::raw::c_int,
8792            unitDefId: ::std::os::raw::c_int,
8793        ) -> *const ::std::os::raw::c_char,
8794    >,
8795    pub UnitDef_getWeaponMounts: ::std::option::Option<
8796        unsafe extern "C" fn(
8797            skirmishAIId: ::std::os::raw::c_int,
8798            unitDefId: ::std::os::raw::c_int,
8799        ) -> ::std::os::raw::c_int,
8800    >,
8801    pub UnitDef_WeaponMount_getName: ::std::option::Option<
8802        unsafe extern "C" fn(
8803            skirmishAIId: ::std::os::raw::c_int,
8804            unitDefId: ::std::os::raw::c_int,
8805            weaponMountId: ::std::os::raw::c_int,
8806        ) -> *const ::std::os::raw::c_char,
8807    >,
8808    pub UnitDef_WeaponMount_getWeaponDef: ::std::option::Option<
8809        unsafe extern "C" fn(
8810            skirmishAIId: ::std::os::raw::c_int,
8811            unitDefId: ::std::os::raw::c_int,
8812            weaponMountId: ::std::os::raw::c_int,
8813        ) -> ::std::os::raw::c_int,
8814    >,
8815    pub UnitDef_WeaponMount_getSlavedTo: ::std::option::Option<
8816        unsafe extern "C" fn(
8817            skirmishAIId: ::std::os::raw::c_int,
8818            unitDefId: ::std::os::raw::c_int,
8819            weaponMountId: ::std::os::raw::c_int,
8820        ) -> ::std::os::raw::c_int,
8821    >,
8822    pub UnitDef_WeaponMount_getMainDir: ::std::option::Option<
8823        unsafe extern "C" fn(
8824            skirmishAIId: ::std::os::raw::c_int,
8825            unitDefId: ::std::os::raw::c_int,
8826            weaponMountId: ::std::os::raw::c_int,
8827            return_posF3_out: *mut f32,
8828        ),
8829    >,
8830    pub UnitDef_WeaponMount_getMaxAngleDif: ::std::option::Option<
8831        unsafe extern "C" fn(
8832            skirmishAIId: ::std::os::raw::c_int,
8833            unitDefId: ::std::os::raw::c_int,
8834            weaponMountId: ::std::os::raw::c_int,
8835        ) -> f32,
8836    >,
8837    #[doc = " Returns the bit field value denoting the categories this weapon should\n not target.\n @see Game#getCategoryFlag\n @see Game#getCategoryName"]
8838    pub UnitDef_WeaponMount_getBadTargetCategory: ::std::option::Option<
8839        unsafe extern "C" fn(
8840            skirmishAIId: ::std::os::raw::c_int,
8841            unitDefId: ::std::os::raw::c_int,
8842            weaponMountId: ::std::os::raw::c_int,
8843        ) -> ::std::os::raw::c_int,
8844    >,
8845    #[doc = " Returns the bit field value denoting the categories this weapon should\n target, excluding all others.\n @see Game#getCategoryFlag\n @see Game#getCategoryName"]
8846    pub UnitDef_WeaponMount_getOnlyTargetCategory: ::std::option::Option<
8847        unsafe extern "C" fn(
8848            skirmishAIId: ::std::os::raw::c_int,
8849            unitDefId: ::std::os::raw::c_int,
8850            weaponMountId: ::std::os::raw::c_int,
8851        ) -> ::std::os::raw::c_int,
8852    >,
8853    #[doc = " Returns the number of units a team can have, after which it can not build\n any more. It is possible that a team has more units then this value at\n some point in the game. This is possible for example with taking,\n reclaiming or capturing units.\n This value is usefull for controlling game performance, and will\n therefore often be set on games with old hardware to prevent lagging\n because of too many units."]
8854    pub Unit_getLimit: ::std::option::Option<
8855        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
8856    >,
8857    #[doc = " Returns the maximum total number of units that may exist at any one point\n in time induring the current game."]
8858    pub Unit_getMax: ::std::option::Option<
8859        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
8860    >,
8861    #[doc = " Returns all units that are not in this teams ally-team nor neutral\n and are in LOS.\n If cheats are enabled, this will return all enemies on the map."]
8862    pub getEnemyUnits: ::std::option::Option<
8863        unsafe extern "C" fn(
8864            skirmishAIId: ::std::os::raw::c_int,
8865            unitIds: *mut ::std::os::raw::c_int,
8866            unitIds_sizeMax: ::std::os::raw::c_int,
8867        ) -> ::std::os::raw::c_int,
8868    >,
8869    #[doc = " Returns all units that are not in this teams ally-team nor neutral\n and are in LOS plus they have to be located in the specified area\n of the map.\n If cheats are enabled, this will return all enemies\n in the specified area."]
8870    pub getEnemyUnitsIn: ::std::option::Option<
8871        unsafe extern "C" fn(
8872            skirmishAIId: ::std::os::raw::c_int,
8873            pos_posF3: *mut f32,
8874            radius: f32,
8875            spherical: bool,
8876            unitIds: *mut ::std::os::raw::c_int,
8877            unitIds_sizeMax: ::std::os::raw::c_int,
8878        ) -> ::std::os::raw::c_int,
8879    >,
8880    #[doc = " Returns all units that are not in this teams ally-team nor neutral\n and are in under sensor coverage (sight or radar).\n If cheats are enabled, this will return all enemies on the map."]
8881    pub getEnemyUnitsInRadarAndLos: ::std::option::Option<
8882        unsafe extern "C" fn(
8883            skirmishAIId: ::std::os::raw::c_int,
8884            unitIds: *mut ::std::os::raw::c_int,
8885            unitIds_sizeMax: ::std::os::raw::c_int,
8886        ) -> ::std::os::raw::c_int,
8887    >,
8888    #[doc = " Returns all units that are in this teams ally-team, including this teams\n units."]
8889    pub getFriendlyUnits: ::std::option::Option<
8890        unsafe extern "C" fn(
8891            skirmishAIId: ::std::os::raw::c_int,
8892            unitIds: *mut ::std::os::raw::c_int,
8893            unitIds_sizeMax: ::std::os::raw::c_int,
8894        ) -> ::std::os::raw::c_int,
8895    >,
8896    #[doc = " Returns all units that are in this teams ally-team, including this teams\n units plus they have to be located in the specified area of the map."]
8897    pub getFriendlyUnitsIn: ::std::option::Option<
8898        unsafe extern "C" fn(
8899            skirmishAIId: ::std::os::raw::c_int,
8900            pos_posF3: *mut f32,
8901            radius: f32,
8902            spherical: bool,
8903            unitIds: *mut ::std::os::raw::c_int,
8904            unitIds_sizeMax: ::std::os::raw::c_int,
8905        ) -> ::std::os::raw::c_int,
8906    >,
8907    #[doc = " Returns all units that are neutral and are in LOS."]
8908    pub getNeutralUnits: ::std::option::Option<
8909        unsafe extern "C" fn(
8910            skirmishAIId: ::std::os::raw::c_int,
8911            unitIds: *mut ::std::os::raw::c_int,
8912            unitIds_sizeMax: ::std::os::raw::c_int,
8913        ) -> ::std::os::raw::c_int,
8914    >,
8915    #[doc = " Returns all units that are neutral and are in LOS plus they have to be\n located in the specified area of the map."]
8916    pub getNeutralUnitsIn: ::std::option::Option<
8917        unsafe extern "C" fn(
8918            skirmishAIId: ::std::os::raw::c_int,
8919            pos_posF3: *mut f32,
8920            radius: f32,
8921            spherical: bool,
8922            unitIds: *mut ::std::os::raw::c_int,
8923            unitIds_sizeMax: ::std::os::raw::c_int,
8924        ) -> ::std::os::raw::c_int,
8925    >,
8926    #[doc = " Returns all units that are of the team controlled by this AI instance. This\n list can also be created dynamically by the AI, through updating a list on\n each unit-created and unit-destroyed event."]
8927    pub getTeamUnits: ::std::option::Option<
8928        unsafe extern "C" fn(
8929            skirmishAIId: ::std::os::raw::c_int,
8930            unitIds: *mut ::std::os::raw::c_int,
8931            unitIds_sizeMax: ::std::os::raw::c_int,
8932        ) -> ::std::os::raw::c_int,
8933    >,
8934    #[doc = " Returns all units that are currently selected\n (usually only contains units if a human player\n is controlling this team as well)."]
8935    pub getSelectedUnits: ::std::option::Option<
8936        unsafe extern "C" fn(
8937            skirmishAIId: ::std::os::raw::c_int,
8938            unitIds: *mut ::std::os::raw::c_int,
8939            unitIds_sizeMax: ::std::os::raw::c_int,
8940        ) -> ::std::os::raw::c_int,
8941    >,
8942    #[doc = " Returns the unit's unitdef struct from which you can read all\n the statistics of the unit, do NOT try to change any values in it."]
8943    pub Unit_getDef: ::std::option::Option<
8944        unsafe extern "C" fn(
8945            skirmishAIId: ::std::os::raw::c_int,
8946            unitId: ::std::os::raw::c_int,
8947        ) -> ::std::os::raw::c_int,
8948    >,
8949    #[doc = " @return float value of parameter if it's set, defaultValue otherwise."]
8950    pub Unit_getRulesParamFloat: ::std::option::Option<
8951        unsafe extern "C" fn(
8952            skirmishAIId: ::std::os::raw::c_int,
8953            unitId: ::std::os::raw::c_int,
8954            unitRulesParamName: *const ::std::os::raw::c_char,
8955            defaultValue: f32,
8956        ) -> f32,
8957    >,
8958    #[doc = " @return string value of parameter if it's set, defaultValue otherwise."]
8959    pub Unit_getRulesParamString: ::std::option::Option<
8960        unsafe extern "C" fn(
8961            skirmishAIId: ::std::os::raw::c_int,
8962            unitId: ::std::os::raw::c_int,
8963            unitRulesParamName: *const ::std::os::raw::c_char,
8964            defaultValue: *const ::std::os::raw::c_char,
8965        ) -> *const ::std::os::raw::c_char,
8966    >,
8967    pub Unit_getTeam: ::std::option::Option<
8968        unsafe extern "C" fn(
8969            skirmishAIId: ::std::os::raw::c_int,
8970            unitId: ::std::os::raw::c_int,
8971        ) -> ::std::os::raw::c_int,
8972    >,
8973    pub Unit_getAllyTeam: ::std::option::Option<
8974        unsafe extern "C" fn(
8975            skirmishAIId: ::std::os::raw::c_int,
8976            unitId: ::std::os::raw::c_int,
8977        ) -> ::std::os::raw::c_int,
8978    >,
8979    pub Unit_getStockpile: ::std::option::Option<
8980        unsafe extern "C" fn(
8981            skirmishAIId: ::std::os::raw::c_int,
8982            unitId: ::std::os::raw::c_int,
8983        ) -> ::std::os::raw::c_int,
8984    >,
8985    pub Unit_getStockpileQueued: ::std::option::Option<
8986        unsafe extern "C" fn(
8987            skirmishAIId: ::std::os::raw::c_int,
8988            unitId: ::std::os::raw::c_int,
8989        ) -> ::std::os::raw::c_int,
8990    >,
8991    #[doc = " The unit's max speed"]
8992    pub Unit_getMaxSpeed: ::std::option::Option<
8993        unsafe extern "C" fn(
8994            skirmishAIId: ::std::os::raw::c_int,
8995            unitId: ::std::os::raw::c_int,
8996        ) -> f32,
8997    >,
8998    #[doc = " The furthest any weapon of the unit can fire"]
8999    pub Unit_getMaxRange: ::std::option::Option<
9000        unsafe extern "C" fn(
9001            skirmishAIId: ::std::os::raw::c_int,
9002            unitId: ::std::os::raw::c_int,
9003        ) -> f32,
9004    >,
9005    #[doc = " The unit's max health"]
9006    pub Unit_getMaxHealth: ::std::option::Option<
9007        unsafe extern "C" fn(
9008            skirmishAIId: ::std::os::raw::c_int,
9009            unitId: ::std::os::raw::c_int,
9010        ) -> f32,
9011    >,
9012    #[doc = " How experienced the unit is (0.0f - 1.0f)"]
9013    pub Unit_getExperience: ::std::option::Option<
9014        unsafe extern "C" fn(
9015            skirmishAIId: ::std::os::raw::c_int,
9016            unitId: ::std::os::raw::c_int,
9017        ) -> f32,
9018    >,
9019    #[doc = " Returns the group a unit belongs to, -1 if none"]
9020    pub Unit_getGroup: ::std::option::Option<
9021        unsafe extern "C" fn(
9022            skirmishAIId: ::std::os::raw::c_int,
9023            unitId: ::std::os::raw::c_int,
9024        ) -> ::std::os::raw::c_int,
9025    >,
9026    pub Unit_getCurrentCommands: ::std::option::Option<
9027        unsafe extern "C" fn(
9028            skirmishAIId: ::std::os::raw::c_int,
9029            unitId: ::std::os::raw::c_int,
9030        ) -> ::std::os::raw::c_int,
9031    >,
9032    #[doc = " For the type of the command queue, see CCommandQueue::CommandQueueType\n in Sim/Unit/CommandAI/CommandQueue.h"]
9033    pub Unit_CurrentCommand_getType: ::std::option::Option<
9034        unsafe extern "C" fn(
9035            skirmishAIId: ::std::os::raw::c_int,
9036            unitId: ::std::os::raw::c_int,
9037        ) -> ::std::os::raw::c_int,
9038    >,
9039    #[doc = " For the id, see CMD_xxx codes in Sim/Unit/CommandAI/Command.h\n (custom codes can also be used)"]
9040    pub Unit_CurrentCommand_getId: ::std::option::Option<
9041        unsafe extern "C" fn(
9042            skirmishAIId: ::std::os::raw::c_int,
9043            unitId: ::std::os::raw::c_int,
9044            commandId: ::std::os::raw::c_int,
9045        ) -> ::std::os::raw::c_int,
9046    >,
9047    pub Unit_CurrentCommand_getOptions: ::std::option::Option<
9048        unsafe extern "C" fn(
9049            skirmishAIId: ::std::os::raw::c_int,
9050            unitId: ::std::os::raw::c_int,
9051            commandId: ::std::os::raw::c_int,
9052        ) -> ::std::os::raw::c_short,
9053    >,
9054    pub Unit_CurrentCommand_getTag: ::std::option::Option<
9055        unsafe extern "C" fn(
9056            skirmishAIId: ::std::os::raw::c_int,
9057            unitId: ::std::os::raw::c_int,
9058            commandId: ::std::os::raw::c_int,
9059        ) -> ::std::os::raw::c_int,
9060    >,
9061    pub Unit_CurrentCommand_getTimeOut: ::std::option::Option<
9062        unsafe extern "C" fn(
9063            skirmishAIId: ::std::os::raw::c_int,
9064            unitId: ::std::os::raw::c_int,
9065            commandId: ::std::os::raw::c_int,
9066        ) -> ::std::os::raw::c_int,
9067    >,
9068    pub Unit_CurrentCommand_getParams: ::std::option::Option<
9069        unsafe extern "C" fn(
9070            skirmishAIId: ::std::os::raw::c_int,
9071            unitId: ::std::os::raw::c_int,
9072            commandId: ::std::os::raw::c_int,
9073            params: *mut f32,
9074            params_sizeMax: ::std::os::raw::c_int,
9075        ) -> ::std::os::raw::c_int,
9076    >,
9077    #[doc = " The commands that this unit can understand, other commands will be ignored"]
9078    pub Unit_getSupportedCommands: ::std::option::Option<
9079        unsafe extern "C" fn(
9080            skirmishAIId: ::std::os::raw::c_int,
9081            unitId: ::std::os::raw::c_int,
9082        ) -> ::std::os::raw::c_int,
9083    >,
9084    #[doc = " For the id, see CMD_xxx codes in Sim/Unit/CommandAI/Command.h\n (custom codes can also be used)"]
9085    pub Unit_SupportedCommand_getId: ::std::option::Option<
9086        unsafe extern "C" fn(
9087            skirmishAIId: ::std::os::raw::c_int,
9088            unitId: ::std::os::raw::c_int,
9089            supportedCommandId: ::std::os::raw::c_int,
9090        ) -> ::std::os::raw::c_int,
9091    >,
9092    pub Unit_SupportedCommand_getName: ::std::option::Option<
9093        unsafe extern "C" fn(
9094            skirmishAIId: ::std::os::raw::c_int,
9095            unitId: ::std::os::raw::c_int,
9096            supportedCommandId: ::std::os::raw::c_int,
9097        ) -> *const ::std::os::raw::c_char,
9098    >,
9099    pub Unit_SupportedCommand_getToolTip: ::std::option::Option<
9100        unsafe extern "C" fn(
9101            skirmishAIId: ::std::os::raw::c_int,
9102            unitId: ::std::os::raw::c_int,
9103            supportedCommandId: ::std::os::raw::c_int,
9104        ) -> *const ::std::os::raw::c_char,
9105    >,
9106    pub Unit_SupportedCommand_isShowUnique: ::std::option::Option<
9107        unsafe extern "C" fn(
9108            skirmishAIId: ::std::os::raw::c_int,
9109            unitId: ::std::os::raw::c_int,
9110            supportedCommandId: ::std::os::raw::c_int,
9111        ) -> bool,
9112    >,
9113    pub Unit_SupportedCommand_isDisabled: ::std::option::Option<
9114        unsafe extern "C" fn(
9115            skirmishAIId: ::std::os::raw::c_int,
9116            unitId: ::std::os::raw::c_int,
9117            supportedCommandId: ::std::os::raw::c_int,
9118        ) -> bool,
9119    >,
9120    pub Unit_SupportedCommand_getParams: ::std::option::Option<
9121        unsafe extern "C" fn(
9122            skirmishAIId: ::std::os::raw::c_int,
9123            unitId: ::std::os::raw::c_int,
9124            supportedCommandId: ::std::os::raw::c_int,
9125            params: *mut *const ::std::os::raw::c_char,
9126            params_sizeMax: ::std::os::raw::c_int,
9127        ) -> ::std::os::raw::c_int,
9128    >,
9129    #[doc = " The unit's current health"]
9130    pub Unit_getHealth: ::std::option::Option<
9131        unsafe extern "C" fn(
9132            skirmishAIId: ::std::os::raw::c_int,
9133            unitId: ::std::os::raw::c_int,
9134        ) -> f32,
9135    >,
9136    pub Unit_getParalyzeDamage: ::std::option::Option<
9137        unsafe extern "C" fn(
9138            skirmishAIId: ::std::os::raw::c_int,
9139            unitId: ::std::os::raw::c_int,
9140        ) -> f32,
9141    >,
9142    pub Unit_getCaptureProgress: ::std::option::Option<
9143        unsafe extern "C" fn(
9144            skirmishAIId: ::std::os::raw::c_int,
9145            unitId: ::std::os::raw::c_int,
9146        ) -> f32,
9147    >,
9148    pub Unit_getBuildProgress: ::std::option::Option<
9149        unsafe extern "C" fn(
9150            skirmishAIId: ::std::os::raw::c_int,
9151            unitId: ::std::os::raw::c_int,
9152        ) -> f32,
9153    >,
9154    pub Unit_getSpeed: ::std::option::Option<
9155        unsafe extern "C" fn(
9156            skirmishAIId: ::std::os::raw::c_int,
9157            unitId: ::std::os::raw::c_int,
9158        ) -> f32,
9159    >,
9160    #[doc = " Indicate the relative power of the unit,\n used for experience calulations etc.\n This is sort of the measure of the units overall power."]
9161    pub Unit_getPower: ::std::option::Option<
9162        unsafe extern "C" fn(
9163            skirmishAIId: ::std::os::raw::c_int,
9164            unitId: ::std::os::raw::c_int,
9165        ) -> f32,
9166    >,
9167    pub Unit_getResourceUse: ::std::option::Option<
9168        unsafe extern "C" fn(
9169            skirmishAIId: ::std::os::raw::c_int,
9170            unitId: ::std::os::raw::c_int,
9171            resourceId: ::std::os::raw::c_int,
9172        ) -> f32,
9173    >,
9174    pub Unit_getResourceMake: ::std::option::Option<
9175        unsafe extern "C" fn(
9176            skirmishAIId: ::std::os::raw::c_int,
9177            unitId: ::std::os::raw::c_int,
9178            resourceId: ::std::os::raw::c_int,
9179        ) -> f32,
9180    >,
9181    pub Unit_getPos: ::std::option::Option<
9182        unsafe extern "C" fn(
9183            skirmishAIId: ::std::os::raw::c_int,
9184            unitId: ::std::os::raw::c_int,
9185            return_posF3_out: *mut f32,
9186        ),
9187    >,
9188    pub Unit_getVel: ::std::option::Option<
9189        unsafe extern "C" fn(
9190            skirmishAIId: ::std::os::raw::c_int,
9191            unitId: ::std::os::raw::c_int,
9192            return_posF3_out: *mut f32,
9193        ),
9194    >,
9195    pub Unit_isActivated: ::std::option::Option<
9196        unsafe extern "C" fn(
9197            skirmishAIId: ::std::os::raw::c_int,
9198            unitId: ::std::os::raw::c_int,
9199        ) -> bool,
9200    >,
9201    #[doc = " Returns true if the unit is currently being built"]
9202    pub Unit_isBeingBuilt: ::std::option::Option<
9203        unsafe extern "C" fn(
9204            skirmishAIId: ::std::os::raw::c_int,
9205            unitId: ::std::os::raw::c_int,
9206        ) -> bool,
9207    >,
9208    pub Unit_isCloaked: ::std::option::Option<
9209        unsafe extern "C" fn(
9210            skirmishAIId: ::std::os::raw::c_int,
9211            unitId: ::std::os::raw::c_int,
9212        ) -> bool,
9213    >,
9214    pub Unit_isParalyzed: ::std::option::Option<
9215        unsafe extern "C" fn(
9216            skirmishAIId: ::std::os::raw::c_int,
9217            unitId: ::std::os::raw::c_int,
9218        ) -> bool,
9219    >,
9220    pub Unit_isNeutral: ::std::option::Option<
9221        unsafe extern "C" fn(
9222            skirmishAIId: ::std::os::raw::c_int,
9223            unitId: ::std::os::raw::c_int,
9224        ) -> bool,
9225    >,
9226    #[doc = " Returns the unit's build facing (0-3)"]
9227    pub Unit_getBuildingFacing: ::std::option::Option<
9228        unsafe extern "C" fn(
9229            skirmishAIId: ::std::os::raw::c_int,
9230            unitId: ::std::os::raw::c_int,
9231        ) -> ::std::os::raw::c_int,
9232    >,
9233    #[doc = " Number of the last frame this unit received an order from a player."]
9234    pub Unit_getLastUserOrderFrame: ::std::option::Option<
9235        unsafe extern "C" fn(
9236            skirmishAIId: ::std::os::raw::c_int,
9237            unitId: ::std::os::raw::c_int,
9238        ) -> ::std::os::raw::c_int,
9239    >,
9240    pub Unit_getWeapons: ::std::option::Option<
9241        unsafe extern "C" fn(
9242            skirmishAIId: ::std::os::raw::c_int,
9243            unitId: ::std::os::raw::c_int,
9244        ) -> ::std::os::raw::c_int,
9245    >,
9246    pub Unit_getWeapon: ::std::option::Option<
9247        unsafe extern "C" fn(
9248            skirmishAIId: ::std::os::raw::c_int,
9249            unitId: ::std::os::raw::c_int,
9250            weaponMountId: ::std::os::raw::c_int,
9251        ) -> ::std::os::raw::c_int,
9252    >,
9253    pub Team_hasAIController: ::std::option::Option<
9254        unsafe extern "C" fn(
9255            skirmishAIId: ::std::os::raw::c_int,
9256            teamId: ::std::os::raw::c_int,
9257        ) -> bool,
9258    >,
9259    pub getEnemyTeams: ::std::option::Option<
9260        unsafe extern "C" fn(
9261            skirmishAIId: ::std::os::raw::c_int,
9262            teamIds: *mut ::std::os::raw::c_int,
9263            teamIds_sizeMax: ::std::os::raw::c_int,
9264        ) -> ::std::os::raw::c_int,
9265    >,
9266    pub getAlliedTeams: ::std::option::Option<
9267        unsafe extern "C" fn(
9268            skirmishAIId: ::std::os::raw::c_int,
9269            teamIds: *mut ::std::os::raw::c_int,
9270            teamIds_sizeMax: ::std::os::raw::c_int,
9271        ) -> ::std::os::raw::c_int,
9272    >,
9273    #[doc = " @return float value of parameter if it's set, defaultValue otherwise."]
9274    pub Team_getRulesParamFloat: ::std::option::Option<
9275        unsafe extern "C" fn(
9276            skirmishAIId: ::std::os::raw::c_int,
9277            teamId: ::std::os::raw::c_int,
9278            teamRulesParamName: *const ::std::os::raw::c_char,
9279            defaultValue: f32,
9280        ) -> f32,
9281    >,
9282    #[doc = " @return string value of parameter if it's set, defaultValue otherwise."]
9283    pub Team_getRulesParamString: ::std::option::Option<
9284        unsafe extern "C" fn(
9285            skirmishAIId: ::std::os::raw::c_int,
9286            teamId: ::std::os::raw::c_int,
9287            teamRulesParamName: *const ::std::os::raw::c_char,
9288            defaultValue: *const ::std::os::raw::c_char,
9289        ) -> *const ::std::os::raw::c_char,
9290    >,
9291    pub getGroups: ::std::option::Option<
9292        unsafe extern "C" fn(
9293            skirmishAIId: ::std::os::raw::c_int,
9294            groupIds: *mut ::std::os::raw::c_int,
9295            groupIds_sizeMax: ::std::os::raw::c_int,
9296        ) -> ::std::os::raw::c_int,
9297    >,
9298    pub Group_getSupportedCommands: ::std::option::Option<
9299        unsafe extern "C" fn(
9300            skirmishAIId: ::std::os::raw::c_int,
9301            groupId: ::std::os::raw::c_int,
9302        ) -> ::std::os::raw::c_int,
9303    >,
9304    #[doc = " For the id, see CMD_xxx codes in Sim/Unit/CommandAI/Command.h\n (custom codes can also be used)"]
9305    pub Group_SupportedCommand_getId: ::std::option::Option<
9306        unsafe extern "C" fn(
9307            skirmishAIId: ::std::os::raw::c_int,
9308            groupId: ::std::os::raw::c_int,
9309            supportedCommandId: ::std::os::raw::c_int,
9310        ) -> ::std::os::raw::c_int,
9311    >,
9312    pub Group_SupportedCommand_getName: ::std::option::Option<
9313        unsafe extern "C" fn(
9314            skirmishAIId: ::std::os::raw::c_int,
9315            groupId: ::std::os::raw::c_int,
9316            supportedCommandId: ::std::os::raw::c_int,
9317        ) -> *const ::std::os::raw::c_char,
9318    >,
9319    pub Group_SupportedCommand_getToolTip: ::std::option::Option<
9320        unsafe extern "C" fn(
9321            skirmishAIId: ::std::os::raw::c_int,
9322            groupId: ::std::os::raw::c_int,
9323            supportedCommandId: ::std::os::raw::c_int,
9324        ) -> *const ::std::os::raw::c_char,
9325    >,
9326    pub Group_SupportedCommand_isShowUnique: ::std::option::Option<
9327        unsafe extern "C" fn(
9328            skirmishAIId: ::std::os::raw::c_int,
9329            groupId: ::std::os::raw::c_int,
9330            supportedCommandId: ::std::os::raw::c_int,
9331        ) -> bool,
9332    >,
9333    pub Group_SupportedCommand_isDisabled: ::std::option::Option<
9334        unsafe extern "C" fn(
9335            skirmishAIId: ::std::os::raw::c_int,
9336            groupId: ::std::os::raw::c_int,
9337            supportedCommandId: ::std::os::raw::c_int,
9338        ) -> bool,
9339    >,
9340    pub Group_SupportedCommand_getParams: ::std::option::Option<
9341        unsafe extern "C" fn(
9342            skirmishAIId: ::std::os::raw::c_int,
9343            groupId: ::std::os::raw::c_int,
9344            supportedCommandId: ::std::os::raw::c_int,
9345            params: *mut *const ::std::os::raw::c_char,
9346            params_sizeMax: ::std::os::raw::c_int,
9347        ) -> ::std::os::raw::c_int,
9348    >,
9349    #[doc = " For the id, see CMD_xxx codes in Sim/Unit/CommandAI/Command.h\n (custom codes can also be used)"]
9350    pub Group_OrderPreview_getId: ::std::option::Option<
9351        unsafe extern "C" fn(
9352            skirmishAIId: ::std::os::raw::c_int,
9353            groupId: ::std::os::raw::c_int,
9354        ) -> ::std::os::raw::c_int,
9355    >,
9356    pub Group_OrderPreview_getOptions: ::std::option::Option<
9357        unsafe extern "C" fn(
9358            skirmishAIId: ::std::os::raw::c_int,
9359            groupId: ::std::os::raw::c_int,
9360        ) -> ::std::os::raw::c_short,
9361    >,
9362    pub Group_OrderPreview_getTag: ::std::option::Option<
9363        unsafe extern "C" fn(
9364            skirmishAIId: ::std::os::raw::c_int,
9365            groupId: ::std::os::raw::c_int,
9366        ) -> ::std::os::raw::c_int,
9367    >,
9368    pub Group_OrderPreview_getTimeOut: ::std::option::Option<
9369        unsafe extern "C" fn(
9370            skirmishAIId: ::std::os::raw::c_int,
9371            groupId: ::std::os::raw::c_int,
9372        ) -> ::std::os::raw::c_int,
9373    >,
9374    pub Group_OrderPreview_getParams: ::std::option::Option<
9375        unsafe extern "C" fn(
9376            skirmishAIId: ::std::os::raw::c_int,
9377            groupId: ::std::os::raw::c_int,
9378            params: *mut f32,
9379            params_sizeMax: ::std::os::raw::c_int,
9380        ) -> ::std::os::raw::c_int,
9381    >,
9382    pub Group_isSelected: ::std::option::Option<
9383        unsafe extern "C" fn(
9384            skirmishAIId: ::std::os::raw::c_int,
9385            groupId: ::std::os::raw::c_int,
9386        ) -> bool,
9387    >,
9388    #[doc = " Returns the mod archive file name.\n CAUTION:\n Never use this as reference in eg. cache- or config-file names,\n as one and the same mod can be packaged in different ways.\n Use the human name instead.\n @see getHumanName()\n @deprecated"]
9389    pub Mod_getFileName: ::std::option::Option<
9390        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
9391    >,
9392    #[doc = " Returns the archive hash of the mod.\n Use this for reference to the mod, eg. in a cache-file, wherever human\n readability does not matter.\n This value will never be the same for two mods not having equal content.\n Tip: convert to 64 Hex chars for use in file names.\n @see getHumanName()"]
9393    pub Mod_getHash: ::std::option::Option<
9394        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9395    >,
9396    #[doc = " Returns the human readable name of the mod, which includes the version.\n Use this for reference to the mod (including version), eg. in cache- or\n config-file names which are mod related, and wherever humans may come\n in contact with the reference.\n Be aware though, that this may contain special characters and spaces,\n and may not be used as a file name without checks and replaces.\n Alternatively, you may use the short name only, or the short name plus\n version. You should generally never use the file name.\n Tip: replace every char matching [^0-9a-zA-Z_-.] with '_'\n @see getHash()\n @see getShortName()\n @see getFileName()\n @see getVersion()"]
9397    pub Mod_getHumanName: ::std::option::Option<
9398        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
9399    >,
9400    #[doc = " Returns the short name of the mod, which does not include the version.\n Use this for reference to the mod in general, eg. as version independent\n reference.\n Be aware though, that this still contain special characters and spaces,\n and may not be used as a file name without checks and replaces.\n Tip: replace every char matching [^0-9a-zA-Z_-.] with '_'\n @see getVersion()\n @see getHumanName()"]
9401    pub Mod_getShortName: ::std::option::Option<
9402        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
9403    >,
9404    pub Mod_getVersion: ::std::option::Option<
9405        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
9406    >,
9407    pub Mod_getMutator: ::std::option::Option<
9408        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
9409    >,
9410    pub Mod_getDescription: ::std::option::Option<
9411        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
9412    >,
9413    #[doc = " Should constructions without builders decay?"]
9414    pub Mod_getConstructionDecay:
9415        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> bool>,
9416    #[doc = " How long until they start decaying?"]
9417    pub Mod_getConstructionDecayTime: ::std::option::Option<
9418        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9419    >,
9420    #[doc = " How fast do they decay?"]
9421    pub Mod_getConstructionDecaySpeed:
9422        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9423    #[doc = " 0 = 1 reclaimer per feature max, otherwise unlimited"]
9424    pub Mod_getMultiReclaim: ::std::option::Option<
9425        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9426    >,
9427    #[doc = " 0 = gradual reclaim, 1 = all reclaimed at end, otherwise reclaim in reclaimMethod chunks"]
9428    pub Mod_getReclaimMethod: ::std::option::Option<
9429        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9430    >,
9431    #[doc = " 0 = Revert to wireframe, gradual reclaim, 1 = Subtract HP, give full metal at end, default 1"]
9432    pub Mod_getReclaimUnitMethod: ::std::option::Option<
9433        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9434    >,
9435    #[doc = " How much energy should reclaiming a unit cost, default 0.0"]
9436    pub Mod_getReclaimUnitEnergyCostFactor:
9437        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9438    #[doc = " How much metal should reclaim return, default 1.0"]
9439    pub Mod_getReclaimUnitEfficiency:
9440        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9441    #[doc = " How much should energy should reclaiming a feature cost, default 0.0"]
9442    pub Mod_getReclaimFeatureEnergyCostFactor:
9443        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9444    #[doc = " Allow reclaiming enemies? default true"]
9445    pub Mod_getReclaimAllowEnemies:
9446        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> bool>,
9447    #[doc = " Allow reclaiming allies? default true"]
9448    pub Mod_getReclaimAllowAllies:
9449        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> bool>,
9450    #[doc = " How much should energy should repair cost, default 0.0"]
9451    pub Mod_getRepairEnergyCostFactor:
9452        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9453    #[doc = " How much should energy should resurrect cost, default 0.5"]
9454    pub Mod_getResurrectEnergyCostFactor:
9455        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9456    #[doc = " How much should energy should capture cost, default 0.0"]
9457    pub Mod_getCaptureEnergyCostFactor:
9458        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9459    #[doc = " 0 = all ground units cannot be transported,\n 1 = all ground units can be transported\n (mass and size restrictions still apply).\n Defaults to 1."]
9460    pub Mod_getTransportGround: ::std::option::Option<
9461        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9462    >,
9463    #[doc = " 0 = all hover units cannot be transported,\n 1 = all hover units can be transported\n (mass and size restrictions still apply).\n Defaults to 0."]
9464    pub Mod_getTransportHover: ::std::option::Option<
9465        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9466    >,
9467    #[doc = " 0 = all naval units cannot be transported,\n 1 = all naval units can be transported\n (mass and size restrictions still apply).\n Defaults to 0."]
9468    pub Mod_getTransportShip: ::std::option::Option<
9469        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9470    >,
9471    #[doc = " 0 = all air units cannot be transported,\n 1 = all air units can be transported\n (mass and size restrictions still apply).\n Defaults to 0."]
9472    pub Mod_getTransportAir: ::std::option::Option<
9473        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9474    >,
9475    #[doc = " 1 = units fire at enemies running Killed() script, 0 = units ignore such enemies"]
9476    pub Mod_getFireAtKilled: ::std::option::Option<
9477        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9478    >,
9479    #[doc = " 1 = units fire at crashing aircrafts, 0 = units ignore crashing aircrafts"]
9480    pub Mod_getFireAtCrashing: ::std::option::Option<
9481        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9482    >,
9483    #[doc = " 0=no flanking bonus;  1=global coords, mobile;  2=unit coords, mobile;  3=unit coords, locked"]
9484    pub Mod_getFlankingBonusModeDefault: ::std::option::Option<
9485        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9486    >,
9487    #[doc = " miplevel for los"]
9488    pub Mod_getLosMipLevel: ::std::option::Option<
9489        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9490    >,
9491    #[doc = " miplevel to use for airlos"]
9492    pub Mod_getAirMipLevel: ::std::option::Option<
9493        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9494    >,
9495    #[doc = " miplevel for radar"]
9496    pub Mod_getRadarMipLevel: ::std::option::Option<
9497        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9498    >,
9499    #[doc = " when underwater, units are not in LOS unless also in sonar"]
9500    pub Mod_getRequireSonarUnderWater:
9501        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> bool>,
9502    pub Map_getChecksum: ::std::option::Option<
9503        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9504    >,
9505    pub Map_getStartPos: ::std::option::Option<
9506        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int, return_posF3_out: *mut f32),
9507    >,
9508    pub Map_getMousePos: ::std::option::Option<
9509        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int, return_posF3_out: *mut f32),
9510    >,
9511    pub Map_isPosInCamera: ::std::option::Option<
9512        unsafe extern "C" fn(
9513            skirmishAIId: ::std::os::raw::c_int,
9514            pos_posF3: *mut f32,
9515            radius: f32,
9516        ) -> bool,
9517    >,
9518    #[doc = " Returns the maps center heightmap width.\n @see getHeightMap()"]
9519    pub Map_getWidth: ::std::option::Option<
9520        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9521    >,
9522    #[doc = " Returns the maps center heightmap height.\n @see getHeightMap()"]
9523    pub Map_getHeight: ::std::option::Option<
9524        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9525    >,
9526    #[doc = " Returns the height for the center of the squares.\n This differs slightly from the drawn map, since\n that one uses the height at the corners.\n Note that the actual map is 8 times larger (in each dimension) and\n all other maps (slope, los, resources, etc.) are relative to the\n size of the heightmap.\n\n - do NOT modify or delete the height-map (native code relevant only)\n - index 0 is top left\n - each data position is 8*8 in size\n - the value for the full resolution position (x, z) is at index (z * width + x)\n - the last value, bottom right, is at index (width * height - 1)\n\n @see getCornersHeightMap()"]
9527    pub Map_getHeightMap: ::std::option::Option<
9528        unsafe extern "C" fn(
9529            skirmishAIId: ::std::os::raw::c_int,
9530            heights: *mut f32,
9531            heights_sizeMax: ::std::os::raw::c_int,
9532        ) -> ::std::os::raw::c_int,
9533    >,
9534    #[doc = " Returns the height for the corners of the squares.\n This is the same like the drawn map.\n It is one unit wider and one higher then the centers height map.\n\n - do NOT modify or delete the height-map (native code relevant only)\n - index 0 is top left\n - 4 points mark the edges of an area of 8*8 in size\n - the value for upper left corner of the full resolution position (x, z) is at index (z * width + x)\n - the last value, bottom right, is at index ((width+1) * (height+1) - 1)\n\n @see getHeightMap()"]
9535    pub Map_getCornersHeightMap: ::std::option::Option<
9536        unsafe extern "C" fn(
9537            skirmishAIId: ::std::os::raw::c_int,
9538            cornerHeights: *mut f32,
9539            cornerHeights_sizeMax: ::std::os::raw::c_int,
9540        ) -> ::std::os::raw::c_int,
9541    >,
9542    pub Map_getMinHeight:
9543        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9544    pub Map_getMaxHeight:
9545        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9546    #[doc = " @brief the slope map\n The values are 1 minus the y-component of the (average) facenormal of the square.\n\n - do NOT modify or delete the height-map (native code relevant only)\n - index 0 is top left\n - each data position is 2*2 in size\n - the value for the full resolution position (x, z) is at index ((z * width + x) / 2)\n - the last value, bottom right, is at index (width/2 * height/2 - 1)"]
9547    pub Map_getSlopeMap: ::std::option::Option<
9548        unsafe extern "C" fn(
9549            skirmishAIId: ::std::os::raw::c_int,
9550            slopes: *mut f32,
9551            slopes_sizeMax: ::std::os::raw::c_int,
9552        ) -> ::std::os::raw::c_int,
9553    >,
9554    #[doc = " @brief the level of sight map\n mapDims.mapx >> losMipLevel\n A square with value zero means you do not have LOS coverage on it.\nMod_getLosMipLevel\n - do NOT modify or delete the height-map (native code relevant only)\n - index 0 is top left\n - resolution factor (res) is min(1, 1 << Mod_getLosMipLevel())\n   examples:\n   \t+ losMipLevel(0) -> res(1)\n   \t+ losMipLevel(1) -> res(2)\n   \t+ losMipLevel(2) -> res(4)\n   \t+ losMipLevel(3) -> res(8)\n - each data position is res*res in size\n - the value for the full resolution position (x, z) is at index ((z * width + x) / res)\n - the last value, bottom right, is at index (width/res * height/res - 1)"]
9555    pub Map_getLosMap: ::std::option::Option<
9556        unsafe extern "C" fn(
9557            skirmishAIId: ::std::os::raw::c_int,
9558            losValues: *mut ::std::os::raw::c_int,
9559            losValues_sizeMax: ::std::os::raw::c_int,
9560        ) -> ::std::os::raw::c_int,
9561    >,
9562    #[doc = " @brief the level of sight map\n mapDims.mapx >> airMipLevel\n @see getLosMap()"]
9563    pub Map_getAirLosMap: ::std::option::Option<
9564        unsafe extern "C" fn(
9565            skirmishAIId: ::std::os::raw::c_int,
9566            airLosValues: *mut ::std::os::raw::c_int,
9567            airLosValues_sizeMax: ::std::os::raw::c_int,
9568        ) -> ::std::os::raw::c_int,
9569    >,
9570    #[doc = " @brief the radar map\n mapDims.mapx >> radarMipLevel\n @see getLosMap()"]
9571    pub Map_getRadarMap: ::std::option::Option<
9572        unsafe extern "C" fn(
9573            skirmishAIId: ::std::os::raw::c_int,
9574            radarValues: *mut ::std::os::raw::c_int,
9575            radarValues_sizeMax: ::std::os::raw::c_int,
9576        ) -> ::std::os::raw::c_int,
9577    >,
9578    #[doc = " @see getRadarMap()"]
9579    pub Map_getSonarMap: ::std::option::Option<
9580        unsafe extern "C" fn(
9581            skirmishAIId: ::std::os::raw::c_int,
9582            sonarValues: *mut ::std::os::raw::c_int,
9583            sonarValues_sizeMax: ::std::os::raw::c_int,
9584        ) -> ::std::os::raw::c_int,
9585    >,
9586    #[doc = " @see getRadarMap()"]
9587    pub Map_getSeismicMap: ::std::option::Option<
9588        unsafe extern "C" fn(
9589            skirmishAIId: ::std::os::raw::c_int,
9590            seismicValues: *mut ::std::os::raw::c_int,
9591            seismicValues_sizeMax: ::std::os::raw::c_int,
9592        ) -> ::std::os::raw::c_int,
9593    >,
9594    #[doc = " @see getRadarMap()"]
9595    pub Map_getJammerMap: ::std::option::Option<
9596        unsafe extern "C" fn(
9597            skirmishAIId: ::std::os::raw::c_int,
9598            jammerValues: *mut ::std::os::raw::c_int,
9599            jammerValues_sizeMax: ::std::os::raw::c_int,
9600        ) -> ::std::os::raw::c_int,
9601    >,
9602    #[doc = " @see getRadarMap()"]
9603    pub Map_getSonarJammerMap: ::std::option::Option<
9604        unsafe extern "C" fn(
9605            skirmishAIId: ::std::os::raw::c_int,
9606            sonarJammerValues: *mut ::std::os::raw::c_int,
9607            sonarJammerValues_sizeMax: ::std::os::raw::c_int,
9608        ) -> ::std::os::raw::c_int,
9609    >,
9610    #[doc = " @brief resource maps\n This map shows the resource density on the map.\n\n - do NOT modify or delete the height-map (native code relevant only)\n - index 0 is top left\n - each data position is 2*2 in size\n - the value for the full resolution position (x, z) is at index ((z * width + x) / 2)\n - the last value, bottom right, is at index (width/2 * height/2 - 1)"]
9611    pub Map_getResourceMapRaw: ::std::option::Option<
9612        unsafe extern "C" fn(
9613            skirmishAIId: ::std::os::raw::c_int,
9614            resourceId: ::std::os::raw::c_int,
9615            resources: *mut ::std::os::raw::c_short,
9616            resources_sizeMax: ::std::os::raw::c_int,
9617        ) -> ::std::os::raw::c_int,
9618    >,
9619    #[doc = " Returns positions indicating where to place resource extractors on the map.\n Only the x and z values give the location of the spots, while the y values\n represents the actual amount of resource an extractor placed there can make.\n You should only compare the y values to each other, and not try to estimate\n effective output from spots."]
9620    pub Map_getResourceMapSpotsPositions: ::std::option::Option<
9621        unsafe extern "C" fn(
9622            skirmishAIId: ::std::os::raw::c_int,
9623            resourceId: ::std::os::raw::c_int,
9624            spots_AposF3: *mut f32,
9625            spots_AposF3_sizeMax: ::std::os::raw::c_int,
9626        ) -> ::std::os::raw::c_int,
9627    >,
9628    #[doc = " Returns the average resource income for an extractor on one of the evaluated positions."]
9629    pub Map_getResourceMapSpotsAverageIncome: ::std::option::Option<
9630        unsafe extern "C" fn(
9631            skirmishAIId: ::std::os::raw::c_int,
9632            resourceId: ::std::os::raw::c_int,
9633        ) -> f32,
9634    >,
9635    #[doc = " Returns the nearest resource extractor spot to a specified position out of the evaluated list."]
9636    pub Map_getResourceMapSpotsNearest: ::std::option::Option<
9637        unsafe extern "C" fn(
9638            skirmishAIId: ::std::os::raw::c_int,
9639            resourceId: ::std::os::raw::c_int,
9640            pos_posF3: *mut f32,
9641            return_posF3_out: *mut f32,
9642        ),
9643    >,
9644    #[doc = " Returns the archive hash of the map.\n Use this for reference to the map, eg. in a cache-file, wherever human\n readability does not matter.\n This value will never be the same for two maps not having equal content.\n Tip: convert to 64 Hex chars for use in file names.\n @see getName()"]
9645    pub Map_getHash: ::std::option::Option<
9646        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
9647    >,
9648    #[doc = " Returns the name of the map.\n Use this for reference to the map, eg. in cache- or config-file names\n which are map related, wherever humans may come in contact with the reference.\n Be aware though, that this may contain special characters and spaces,\n and may not be used as a file name without checks and replaces.\n Tip: replace every char matching [^0-9a-zA-Z_-.] with '_'\n @see getHash()\n @see getHumanName()"]
9649    pub Map_getName: ::std::option::Option<
9650        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
9651    >,
9652    #[doc = " Returns the human readbale name of the map.\n @see getName()"]
9653    pub Map_getHumanName: ::std::option::Option<
9654        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
9655    >,
9656    #[doc = " Gets the elevation of the map at position (x, z)"]
9657    pub Map_getElevationAt: ::std::option::Option<
9658        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int, x: f32, z: f32) -> f32,
9659    >,
9660    #[doc = " Returns what value 255 in the resource map is worth"]
9661    pub Map_getMaxResource: ::std::option::Option<
9662        unsafe extern "C" fn(
9663            skirmishAIId: ::std::os::raw::c_int,
9664            resourceId: ::std::os::raw::c_int,
9665        ) -> f32,
9666    >,
9667    #[doc = " Returns extraction radius for resource extractors"]
9668    pub Map_getExtractorRadius: ::std::option::Option<
9669        unsafe extern "C" fn(
9670            skirmishAIId: ::std::os::raw::c_int,
9671            resourceId: ::std::os::raw::c_int,
9672        ) -> f32,
9673    >,
9674    pub Map_getMinWind:
9675        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9676    pub Map_getMaxWind:
9677        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9678    pub Map_getCurWind:
9679        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9680    pub Map_getTidalStrength:
9681        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9682    pub Map_getGravity:
9683        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9684    pub Map_getWaterDamage:
9685        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9686    pub Map_isDeformable:
9687        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> bool>,
9688    #[doc = " Returns global map hardness"]
9689    pub Map_getHardness:
9690        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> f32>,
9691    #[doc = " Returns hardness modifiers of the squares adjusted by terrain type.\n\n - index 0 is top left\n - each data position is 2*2 in size (relative to heightmap)\n - the value for the full resolution position (x, z) is at index ((z * width + x) / 2)\n - the last value, bottom right, is at index (width/2 * height/2 - 1)\n\n @see getHardness()"]
9692    pub Map_getHardnessModMap: ::std::option::Option<
9693        unsafe extern "C" fn(
9694            skirmishAIId: ::std::os::raw::c_int,
9695            hardMods: *mut f32,
9696            hardMods_sizeMax: ::std::os::raw::c_int,
9697        ) -> ::std::os::raw::c_int,
9698    >,
9699    #[doc = " Returns speed modifiers of the squares\n for specific speedModClass adjusted by terrain type.\n\n - index 0 is top left\n - each data position is 2*2 in size (relative to heightmap)\n - the value for the full resolution position (x, z) is at index ((z * width + x) / 2)\n - the last value, bottom right, is at index (width/2 * height/2 - 1)\n\n @see MoveData#getSpeedModClass"]
9700    pub Map_getSpeedModMap: ::std::option::Option<
9701        unsafe extern "C" fn(
9702            skirmishAIId: ::std::os::raw::c_int,
9703            speedModClass: ::std::os::raw::c_int,
9704            speedMods: *mut f32,
9705            speedMods_sizeMax: ::std::os::raw::c_int,
9706        ) -> ::std::os::raw::c_int,
9707    >,
9708    #[doc = " Returns all points drawn with this AIs team color,\n and additionally the ones drawn with allied team colors,\n if <code>includeAllies</code> is true."]
9709    pub Map_getPoints: ::std::option::Option<
9710        unsafe extern "C" fn(
9711            skirmishAIId: ::std::os::raw::c_int,
9712            includeAllies: bool,
9713        ) -> ::std::os::raw::c_int,
9714    >,
9715    pub Map_Point_getPosition: ::std::option::Option<
9716        unsafe extern "C" fn(
9717            skirmishAIId: ::std::os::raw::c_int,
9718            pointId: ::std::os::raw::c_int,
9719            return_posF3_out: *mut f32,
9720        ),
9721    >,
9722    pub Map_Point_getColor: ::std::option::Option<
9723        unsafe extern "C" fn(
9724            skirmishAIId: ::std::os::raw::c_int,
9725            pointId: ::std::os::raw::c_int,
9726            return_colorS3_out: *mut ::std::os::raw::c_short,
9727        ),
9728    >,
9729    pub Map_Point_getLabel: ::std::option::Option<
9730        unsafe extern "C" fn(
9731            skirmishAIId: ::std::os::raw::c_int,
9732            pointId: ::std::os::raw::c_int,
9733        ) -> *const ::std::os::raw::c_char,
9734    >,
9735    #[doc = " Returns all lines drawn with this AIs team color,\n and additionally the ones drawn with allied team colors,\n if <code>includeAllies</code> is true."]
9736    pub Map_getLines: ::std::option::Option<
9737        unsafe extern "C" fn(
9738            skirmishAIId: ::std::os::raw::c_int,
9739            includeAllies: bool,
9740        ) -> ::std::os::raw::c_int,
9741    >,
9742    pub Map_Line_getFirstPosition: ::std::option::Option<
9743        unsafe extern "C" fn(
9744            skirmishAIId: ::std::os::raw::c_int,
9745            lineId: ::std::os::raw::c_int,
9746            return_posF3_out: *mut f32,
9747        ),
9748    >,
9749    pub Map_Line_getSecondPosition: ::std::option::Option<
9750        unsafe extern "C" fn(
9751            skirmishAIId: ::std::os::raw::c_int,
9752            lineId: ::std::os::raw::c_int,
9753            return_posF3_out: *mut f32,
9754        ),
9755    >,
9756    pub Map_Line_getColor: ::std::option::Option<
9757        unsafe extern "C" fn(
9758            skirmishAIId: ::std::os::raw::c_int,
9759            lineId: ::std::os::raw::c_int,
9760            return_colorS3_out: *mut ::std::os::raw::c_short,
9761        ),
9762    >,
9763    pub Map_isPossibleToBuildAt: ::std::option::Option<
9764        unsafe extern "C" fn(
9765            skirmishAIId: ::std::os::raw::c_int,
9766            unitDefId: ::std::os::raw::c_int,
9767            pos_posF3: *mut f32,
9768            facing: ::std::os::raw::c_int,
9769        ) -> bool,
9770    >,
9771    #[doc = " Returns the closest position from a given position that a building can be\n built at.\n @param minDist the distance in 1/BUILD_SQUARE_SIZE = 1/16 of full map\n                resolution, that the building must keep to other\n                buildings; this makes it easier to keep free paths through\n                a base\n @return actual map position with x, y and z all beeing positive,\n         or float[3]{-1, 0, 0} if no suitable position is found."]
9772    pub Map_findClosestBuildSite: ::std::option::Option<
9773        unsafe extern "C" fn(
9774            skirmishAIId: ::std::os::raw::c_int,
9775            unitDefId: ::std::os::raw::c_int,
9776            pos_posF3: *mut f32,
9777            searchRadius: f32,
9778            minDist: ::std::os::raw::c_int,
9779            facing: ::std::os::raw::c_int,
9780            return_posF3_out: *mut f32,
9781        ),
9782    >,
9783    pub getFeatureDefs: ::std::option::Option<
9784        unsafe extern "C" fn(
9785            skirmishAIId: ::std::os::raw::c_int,
9786            featureDefIds: *mut ::std::os::raw::c_int,
9787            featureDefIds_sizeMax: ::std::os::raw::c_int,
9788        ) -> ::std::os::raw::c_int,
9789    >,
9790    pub FeatureDef_getName: ::std::option::Option<
9791        unsafe extern "C" fn(
9792            skirmishAIId: ::std::os::raw::c_int,
9793            featureDefId: ::std::os::raw::c_int,
9794        ) -> *const ::std::os::raw::c_char,
9795    >,
9796    pub FeatureDef_getDescription: ::std::option::Option<
9797        unsafe extern "C" fn(
9798            skirmishAIId: ::std::os::raw::c_int,
9799            featureDefId: ::std::os::raw::c_int,
9800        ) -> *const ::std::os::raw::c_char,
9801    >,
9802    pub FeatureDef_getContainedResource: ::std::option::Option<
9803        unsafe extern "C" fn(
9804            skirmishAIId: ::std::os::raw::c_int,
9805            featureDefId: ::std::os::raw::c_int,
9806            resourceId: ::std::os::raw::c_int,
9807        ) -> f32,
9808    >,
9809    pub FeatureDef_getMaxHealth: ::std::option::Option<
9810        unsafe extern "C" fn(
9811            skirmishAIId: ::std::os::raw::c_int,
9812            featureDefId: ::std::os::raw::c_int,
9813        ) -> f32,
9814    >,
9815    pub FeatureDef_getReclaimTime: ::std::option::Option<
9816        unsafe extern "C" fn(
9817            skirmishAIId: ::std::os::raw::c_int,
9818            featureDefId: ::std::os::raw::c_int,
9819        ) -> f32,
9820    >,
9821    #[doc = " Used to see if the object can be overrun by units of a certain heavyness"]
9822    pub FeatureDef_getMass: ::std::option::Option<
9823        unsafe extern "C" fn(
9824            skirmishAIId: ::std::os::raw::c_int,
9825            featureDefId: ::std::os::raw::c_int,
9826        ) -> f32,
9827    >,
9828    pub FeatureDef_isUpright: ::std::option::Option<
9829        unsafe extern "C" fn(
9830            skirmishAIId: ::std::os::raw::c_int,
9831            featureDefId: ::std::os::raw::c_int,
9832        ) -> bool,
9833    >,
9834    pub FeatureDef_getDrawType: ::std::option::Option<
9835        unsafe extern "C" fn(
9836            skirmishAIId: ::std::os::raw::c_int,
9837            featureDefId: ::std::os::raw::c_int,
9838        ) -> ::std::os::raw::c_int,
9839    >,
9840    pub FeatureDef_getModelName: ::std::option::Option<
9841        unsafe extern "C" fn(
9842            skirmishAIId: ::std::os::raw::c_int,
9843            featureDefId: ::std::os::raw::c_int,
9844        ) -> *const ::std::os::raw::c_char,
9845    >,
9846    #[doc = " Used to determine whether the feature is resurrectable.\n\n @return  -1: (default) only if it is the 1st wreckage of\n              the UnitDef it originates from\n           0: no, never\n           1: yes, always"]
9847    pub FeatureDef_getResurrectable: ::std::option::Option<
9848        unsafe extern "C" fn(
9849            skirmishAIId: ::std::os::raw::c_int,
9850            featureDefId: ::std::os::raw::c_int,
9851        ) -> ::std::os::raw::c_int,
9852    >,
9853    pub FeatureDef_getSmokeTime: ::std::option::Option<
9854        unsafe extern "C" fn(
9855            skirmishAIId: ::std::os::raw::c_int,
9856            featureDefId: ::std::os::raw::c_int,
9857        ) -> ::std::os::raw::c_int,
9858    >,
9859    pub FeatureDef_isDestructable: ::std::option::Option<
9860        unsafe extern "C" fn(
9861            skirmishAIId: ::std::os::raw::c_int,
9862            featureDefId: ::std::os::raw::c_int,
9863        ) -> bool,
9864    >,
9865    pub FeatureDef_isReclaimable: ::std::option::Option<
9866        unsafe extern "C" fn(
9867            skirmishAIId: ::std::os::raw::c_int,
9868            featureDefId: ::std::os::raw::c_int,
9869        ) -> bool,
9870    >,
9871    pub FeatureDef_isAutoreclaimable: ::std::option::Option<
9872        unsafe extern "C" fn(
9873            skirmishAIId: ::std::os::raw::c_int,
9874            featureDefId: ::std::os::raw::c_int,
9875        ) -> bool,
9876    >,
9877    pub FeatureDef_isBlocking: ::std::option::Option<
9878        unsafe extern "C" fn(
9879            skirmishAIId: ::std::os::raw::c_int,
9880            featureDefId: ::std::os::raw::c_int,
9881        ) -> bool,
9882    >,
9883    pub FeatureDef_isBurnable: ::std::option::Option<
9884        unsafe extern "C" fn(
9885            skirmishAIId: ::std::os::raw::c_int,
9886            featureDefId: ::std::os::raw::c_int,
9887        ) -> bool,
9888    >,
9889    pub FeatureDef_isFloating: ::std::option::Option<
9890        unsafe extern "C" fn(
9891            skirmishAIId: ::std::os::raw::c_int,
9892            featureDefId: ::std::os::raw::c_int,
9893        ) -> bool,
9894    >,
9895    pub FeatureDef_isNoSelect: ::std::option::Option<
9896        unsafe extern "C" fn(
9897            skirmishAIId: ::std::os::raw::c_int,
9898            featureDefId: ::std::os::raw::c_int,
9899        ) -> bool,
9900    >,
9901    pub FeatureDef_isGeoThermal: ::std::option::Option<
9902        unsafe extern "C" fn(
9903            skirmishAIId: ::std::os::raw::c_int,
9904            featureDefId: ::std::os::raw::c_int,
9905        ) -> bool,
9906    >,
9907    #[doc = " Size of the feature along the X axis - in other words: height.\n each size is 8 units"]
9908    pub FeatureDef_getXSize: ::std::option::Option<
9909        unsafe extern "C" fn(
9910            skirmishAIId: ::std::os::raw::c_int,
9911            featureDefId: ::std::os::raw::c_int,
9912        ) -> ::std::os::raw::c_int,
9913    >,
9914    #[doc = " Size of the feature along the Z axis - in other words: width.\n each size is 8 units"]
9915    pub FeatureDef_getZSize: ::std::option::Option<
9916        unsafe extern "C" fn(
9917            skirmishAIId: ::std::os::raw::c_int,
9918            featureDefId: ::std::os::raw::c_int,
9919        ) -> ::std::os::raw::c_int,
9920    >,
9921    pub FeatureDef_getCustomParams: ::std::option::Option<
9922        unsafe extern "C" fn(
9923            skirmishAIId: ::std::os::raw::c_int,
9924            featureDefId: ::std::os::raw::c_int,
9925            keys: *mut *const ::std::os::raw::c_char,
9926            values: *mut *const ::std::os::raw::c_char,
9927        ) -> ::std::os::raw::c_int,
9928    >,
9929    #[doc = " Returns all features currently in LOS, or all features on the map\n if cheating is enabled."]
9930    pub getFeatures: ::std::option::Option<
9931        unsafe extern "C" fn(
9932            skirmishAIId: ::std::os::raw::c_int,
9933            featureIds: *mut ::std::os::raw::c_int,
9934            featureIds_sizeMax: ::std::os::raw::c_int,
9935        ) -> ::std::os::raw::c_int,
9936    >,
9937    #[doc = " Returns all features in a specified area that are currently in LOS,\n or all features in this area if cheating is enabled."]
9938    pub getFeaturesIn: ::std::option::Option<
9939        unsafe extern "C" fn(
9940            skirmishAIId: ::std::os::raw::c_int,
9941            pos_posF3: *mut f32,
9942            radius: f32,
9943            spherical: bool,
9944            featureIds: *mut ::std::os::raw::c_int,
9945            featureIds_sizeMax: ::std::os::raw::c_int,
9946        ) -> ::std::os::raw::c_int,
9947    >,
9948    pub Feature_getDef: ::std::option::Option<
9949        unsafe extern "C" fn(
9950            skirmishAIId: ::std::os::raw::c_int,
9951            featureId: ::std::os::raw::c_int,
9952        ) -> ::std::os::raw::c_int,
9953    >,
9954    pub Feature_getHealth: ::std::option::Option<
9955        unsafe extern "C" fn(
9956            skirmishAIId: ::std::os::raw::c_int,
9957            featureId: ::std::os::raw::c_int,
9958        ) -> f32,
9959    >,
9960    pub Feature_getReclaimLeft: ::std::option::Option<
9961        unsafe extern "C" fn(
9962            skirmishAIId: ::std::os::raw::c_int,
9963            featureId: ::std::os::raw::c_int,
9964        ) -> f32,
9965    >,
9966    pub Feature_getPosition: ::std::option::Option<
9967        unsafe extern "C" fn(
9968            skirmishAIId: ::std::os::raw::c_int,
9969            featureId: ::std::os::raw::c_int,
9970            return_posF3_out: *mut f32,
9971        ),
9972    >,
9973    #[doc = " @return float value of parameter if it's set, defaultValue otherwise."]
9974    pub Feature_getRulesParamFloat: ::std::option::Option<
9975        unsafe extern "C" fn(
9976            skirmishAIId: ::std::os::raw::c_int,
9977            unitId: ::std::os::raw::c_int,
9978            featureRulesParamName: *const ::std::os::raw::c_char,
9979            defaultValue: f32,
9980        ) -> f32,
9981    >,
9982    #[doc = " @return string value of parameter if it's set, defaultValue otherwise."]
9983    pub Feature_getRulesParamString: ::std::option::Option<
9984        unsafe extern "C" fn(
9985            skirmishAIId: ::std::os::raw::c_int,
9986            unitId: ::std::os::raw::c_int,
9987            featureRulesParamName: *const ::std::os::raw::c_char,
9988            defaultValue: *const ::std::os::raw::c_char,
9989        ) -> *const ::std::os::raw::c_char,
9990    >,
9991    pub Feature_getResurrectDef: ::std::option::Option<
9992        unsafe extern "C" fn(
9993            skirmishAIId: ::std::os::raw::c_int,
9994            featureId: ::std::os::raw::c_int,
9995        ) -> ::std::os::raw::c_int,
9996    >,
9997    pub Feature_getBuildingFacing: ::std::option::Option<
9998        unsafe extern "C" fn(
9999            skirmishAIId: ::std::os::raw::c_int,
10000            featureId: ::std::os::raw::c_int,
10001        ) -> ::std::os::raw::c_short,
10002    >,
10003    pub getWeaponDefs: ::std::option::Option<
10004        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
10005    >,
10006    pub getWeaponDefByName: ::std::option::Option<
10007        unsafe extern "C" fn(
10008            skirmishAIId: ::std::os::raw::c_int,
10009            weaponDefName: *const ::std::os::raw::c_char,
10010        ) -> ::std::os::raw::c_int,
10011    >,
10012    pub WeaponDef_getName: ::std::option::Option<
10013        unsafe extern "C" fn(
10014            skirmishAIId: ::std::os::raw::c_int,
10015            weaponDefId: ::std::os::raw::c_int,
10016        ) -> *const ::std::os::raw::c_char,
10017    >,
10018    pub WeaponDef_getType: ::std::option::Option<
10019        unsafe extern "C" fn(
10020            skirmishAIId: ::std::os::raw::c_int,
10021            weaponDefId: ::std::os::raw::c_int,
10022        ) -> *const ::std::os::raw::c_char,
10023    >,
10024    pub WeaponDef_getDescription: ::std::option::Option<
10025        unsafe extern "C" fn(
10026            skirmishAIId: ::std::os::raw::c_int,
10027            weaponDefId: ::std::os::raw::c_int,
10028        ) -> *const ::std::os::raw::c_char,
10029    >,
10030    pub WeaponDef_getRange: ::std::option::Option<
10031        unsafe extern "C" fn(
10032            skirmishAIId: ::std::os::raw::c_int,
10033            weaponDefId: ::std::os::raw::c_int,
10034        ) -> f32,
10035    >,
10036    pub WeaponDef_getHeightMod: ::std::option::Option<
10037        unsafe extern "C" fn(
10038            skirmishAIId: ::std::os::raw::c_int,
10039            weaponDefId: ::std::os::raw::c_int,
10040        ) -> f32,
10041    >,
10042    #[doc = " Inaccuracy of whole burst"]
10043    pub WeaponDef_getAccuracy: ::std::option::Option<
10044        unsafe extern "C" fn(
10045            skirmishAIId: ::std::os::raw::c_int,
10046            weaponDefId: ::std::os::raw::c_int,
10047        ) -> f32,
10048    >,
10049    #[doc = " Inaccuracy of individual shots inside burst"]
10050    pub WeaponDef_getSprayAngle: ::std::option::Option<
10051        unsafe extern "C" fn(
10052            skirmishAIId: ::std::os::raw::c_int,
10053            weaponDefId: ::std::os::raw::c_int,
10054        ) -> f32,
10055    >,
10056    #[doc = " Inaccuracy while owner moving"]
10057    pub WeaponDef_getMovingAccuracy: ::std::option::Option<
10058        unsafe extern "C" fn(
10059            skirmishAIId: ::std::os::raw::c_int,
10060            weaponDefId: ::std::os::raw::c_int,
10061        ) -> f32,
10062    >,
10063    #[doc = " Fraction of targets move speed that is used as error offset"]
10064    pub WeaponDef_getTargetMoveError: ::std::option::Option<
10065        unsafe extern "C" fn(
10066            skirmishAIId: ::std::os::raw::c_int,
10067            weaponDefId: ::std::os::raw::c_int,
10068        ) -> f32,
10069    >,
10070    #[doc = " Maximum distance the weapon will lead the target"]
10071    pub WeaponDef_getLeadLimit: ::std::option::Option<
10072        unsafe extern "C" fn(
10073            skirmishAIId: ::std::os::raw::c_int,
10074            weaponDefId: ::std::os::raw::c_int,
10075        ) -> f32,
10076    >,
10077    #[doc = " Factor for increasing the leadLimit with experience"]
10078    pub WeaponDef_getLeadBonus: ::std::option::Option<
10079        unsafe extern "C" fn(
10080            skirmishAIId: ::std::os::raw::c_int,
10081            weaponDefId: ::std::os::raw::c_int,
10082        ) -> f32,
10083    >,
10084    #[doc = " Replaces hardcoded behaviour for burnblow cannons"]
10085    pub WeaponDef_getPredictBoost: ::std::option::Option<
10086        unsafe extern "C" fn(
10087            skirmishAIId: ::std::os::raw::c_int,
10088            weaponDefId: ::std::os::raw::c_int,
10089        ) -> f32,
10090    >,
10091    pub WeaponDef_getNumDamageTypes: ::std::option::Option<
10092        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
10093    >,
10094    pub WeaponDef_Damage_getParalyzeDamageTime: ::std::option::Option<
10095        unsafe extern "C" fn(
10096            skirmishAIId: ::std::os::raw::c_int,
10097            weaponDefId: ::std::os::raw::c_int,
10098        ) -> ::std::os::raw::c_int,
10099    >,
10100    pub WeaponDef_Damage_getImpulseFactor: ::std::option::Option<
10101        unsafe extern "C" fn(
10102            skirmishAIId: ::std::os::raw::c_int,
10103            weaponDefId: ::std::os::raw::c_int,
10104        ) -> f32,
10105    >,
10106    pub WeaponDef_Damage_getImpulseBoost: ::std::option::Option<
10107        unsafe extern "C" fn(
10108            skirmishAIId: ::std::os::raw::c_int,
10109            weaponDefId: ::std::os::raw::c_int,
10110        ) -> f32,
10111    >,
10112    pub WeaponDef_Damage_getCraterMult: ::std::option::Option<
10113        unsafe extern "C" fn(
10114            skirmishAIId: ::std::os::raw::c_int,
10115            weaponDefId: ::std::os::raw::c_int,
10116        ) -> f32,
10117    >,
10118    pub WeaponDef_Damage_getCraterBoost: ::std::option::Option<
10119        unsafe extern "C" fn(
10120            skirmishAIId: ::std::os::raw::c_int,
10121            weaponDefId: ::std::os::raw::c_int,
10122        ) -> f32,
10123    >,
10124    pub WeaponDef_Damage_getTypes: ::std::option::Option<
10125        unsafe extern "C" fn(
10126            skirmishAIId: ::std::os::raw::c_int,
10127            weaponDefId: ::std::os::raw::c_int,
10128            types: *mut f32,
10129            types_sizeMax: ::std::os::raw::c_int,
10130        ) -> ::std::os::raw::c_int,
10131    >,
10132    pub WeaponDef_getAreaOfEffect: ::std::option::Option<
10133        unsafe extern "C" fn(
10134            skirmishAIId: ::std::os::raw::c_int,
10135            weaponDefId: ::std::os::raw::c_int,
10136        ) -> f32,
10137    >,
10138    pub WeaponDef_isNoSelfDamage: ::std::option::Option<
10139        unsafe extern "C" fn(
10140            skirmishAIId: ::std::os::raw::c_int,
10141            weaponDefId: ::std::os::raw::c_int,
10142        ) -> bool,
10143    >,
10144    pub WeaponDef_getFireStarter: ::std::option::Option<
10145        unsafe extern "C" fn(
10146            skirmishAIId: ::std::os::raw::c_int,
10147            weaponDefId: ::std::os::raw::c_int,
10148        ) -> f32,
10149    >,
10150    pub WeaponDef_getEdgeEffectiveness: ::std::option::Option<
10151        unsafe extern "C" fn(
10152            skirmishAIId: ::std::os::raw::c_int,
10153            weaponDefId: ::std::os::raw::c_int,
10154        ) -> f32,
10155    >,
10156    pub WeaponDef_getSize: ::std::option::Option<
10157        unsafe extern "C" fn(
10158            skirmishAIId: ::std::os::raw::c_int,
10159            weaponDefId: ::std::os::raw::c_int,
10160        ) -> f32,
10161    >,
10162    pub WeaponDef_getSizeGrowth: ::std::option::Option<
10163        unsafe extern "C" fn(
10164            skirmishAIId: ::std::os::raw::c_int,
10165            weaponDefId: ::std::os::raw::c_int,
10166        ) -> f32,
10167    >,
10168    pub WeaponDef_getCollisionSize: ::std::option::Option<
10169        unsafe extern "C" fn(
10170            skirmishAIId: ::std::os::raw::c_int,
10171            weaponDefId: ::std::os::raw::c_int,
10172        ) -> f32,
10173    >,
10174    pub WeaponDef_getSalvoSize: ::std::option::Option<
10175        unsafe extern "C" fn(
10176            skirmishAIId: ::std::os::raw::c_int,
10177            weaponDefId: ::std::os::raw::c_int,
10178        ) -> ::std::os::raw::c_int,
10179    >,
10180    pub WeaponDef_getSalvoDelay: ::std::option::Option<
10181        unsafe extern "C" fn(
10182            skirmishAIId: ::std::os::raw::c_int,
10183            weaponDefId: ::std::os::raw::c_int,
10184        ) -> f32,
10185    >,
10186    pub WeaponDef_getReload: ::std::option::Option<
10187        unsafe extern "C" fn(
10188            skirmishAIId: ::std::os::raw::c_int,
10189            weaponDefId: ::std::os::raw::c_int,
10190        ) -> f32,
10191    >,
10192    pub WeaponDef_getBeamTime: ::std::option::Option<
10193        unsafe extern "C" fn(
10194            skirmishAIId: ::std::os::raw::c_int,
10195            weaponDefId: ::std::os::raw::c_int,
10196        ) -> f32,
10197    >,
10198    pub WeaponDef_isBeamBurst: ::std::option::Option<
10199        unsafe extern "C" fn(
10200            skirmishAIId: ::std::os::raw::c_int,
10201            weaponDefId: ::std::os::raw::c_int,
10202        ) -> bool,
10203    >,
10204    pub WeaponDef_isWaterBounce: ::std::option::Option<
10205        unsafe extern "C" fn(
10206            skirmishAIId: ::std::os::raw::c_int,
10207            weaponDefId: ::std::os::raw::c_int,
10208        ) -> bool,
10209    >,
10210    pub WeaponDef_isGroundBounce: ::std::option::Option<
10211        unsafe extern "C" fn(
10212            skirmishAIId: ::std::os::raw::c_int,
10213            weaponDefId: ::std::os::raw::c_int,
10214        ) -> bool,
10215    >,
10216    pub WeaponDef_getBounceRebound: ::std::option::Option<
10217        unsafe extern "C" fn(
10218            skirmishAIId: ::std::os::raw::c_int,
10219            weaponDefId: ::std::os::raw::c_int,
10220        ) -> f32,
10221    >,
10222    pub WeaponDef_getBounceSlip: ::std::option::Option<
10223        unsafe extern "C" fn(
10224            skirmishAIId: ::std::os::raw::c_int,
10225            weaponDefId: ::std::os::raw::c_int,
10226        ) -> f32,
10227    >,
10228    pub WeaponDef_getNumBounce: ::std::option::Option<
10229        unsafe extern "C" fn(
10230            skirmishAIId: ::std::os::raw::c_int,
10231            weaponDefId: ::std::os::raw::c_int,
10232        ) -> ::std::os::raw::c_int,
10233    >,
10234    pub WeaponDef_getMaxAngle: ::std::option::Option<
10235        unsafe extern "C" fn(
10236            skirmishAIId: ::std::os::raw::c_int,
10237            weaponDefId: ::std::os::raw::c_int,
10238        ) -> f32,
10239    >,
10240    pub WeaponDef_getUpTime: ::std::option::Option<
10241        unsafe extern "C" fn(
10242            skirmishAIId: ::std::os::raw::c_int,
10243            weaponDefId: ::std::os::raw::c_int,
10244        ) -> f32,
10245    >,
10246    pub WeaponDef_getFlightTime: ::std::option::Option<
10247        unsafe extern "C" fn(
10248            skirmishAIId: ::std::os::raw::c_int,
10249            weaponDefId: ::std::os::raw::c_int,
10250        ) -> ::std::os::raw::c_int,
10251    >,
10252    pub WeaponDef_getCost: ::std::option::Option<
10253        unsafe extern "C" fn(
10254            skirmishAIId: ::std::os::raw::c_int,
10255            weaponDefId: ::std::os::raw::c_int,
10256            resourceId: ::std::os::raw::c_int,
10257        ) -> f32,
10258    >,
10259    pub WeaponDef_getProjectilesPerShot: ::std::option::Option<
10260        unsafe extern "C" fn(
10261            skirmishAIId: ::std::os::raw::c_int,
10262            weaponDefId: ::std::os::raw::c_int,
10263        ) -> ::std::os::raw::c_int,
10264    >,
10265    pub WeaponDef_isTurret: ::std::option::Option<
10266        unsafe extern "C" fn(
10267            skirmishAIId: ::std::os::raw::c_int,
10268            weaponDefId: ::std::os::raw::c_int,
10269        ) -> bool,
10270    >,
10271    pub WeaponDef_isOnlyForward: ::std::option::Option<
10272        unsafe extern "C" fn(
10273            skirmishAIId: ::std::os::raw::c_int,
10274            weaponDefId: ::std::os::raw::c_int,
10275        ) -> bool,
10276    >,
10277    pub WeaponDef_isFixedLauncher: ::std::option::Option<
10278        unsafe extern "C" fn(
10279            skirmishAIId: ::std::os::raw::c_int,
10280            weaponDefId: ::std::os::raw::c_int,
10281        ) -> bool,
10282    >,
10283    pub WeaponDef_isWaterWeapon: ::std::option::Option<
10284        unsafe extern "C" fn(
10285            skirmishAIId: ::std::os::raw::c_int,
10286            weaponDefId: ::std::os::raw::c_int,
10287        ) -> bool,
10288    >,
10289    pub WeaponDef_isFireSubmersed: ::std::option::Option<
10290        unsafe extern "C" fn(
10291            skirmishAIId: ::std::os::raw::c_int,
10292            weaponDefId: ::std::os::raw::c_int,
10293        ) -> bool,
10294    >,
10295    #[doc = " Lets a torpedo travel above water like it does below water"]
10296    pub WeaponDef_isSubMissile: ::std::option::Option<
10297        unsafe extern "C" fn(
10298            skirmishAIId: ::std::os::raw::c_int,
10299            weaponDefId: ::std::os::raw::c_int,
10300        ) -> bool,
10301    >,
10302    pub WeaponDef_isTracks: ::std::option::Option<
10303        unsafe extern "C" fn(
10304            skirmishAIId: ::std::os::raw::c_int,
10305            weaponDefId: ::std::os::raw::c_int,
10306        ) -> bool,
10307    >,
10308    pub WeaponDef_isDropped: ::std::option::Option<
10309        unsafe extern "C" fn(
10310            skirmishAIId: ::std::os::raw::c_int,
10311            weaponDefId: ::std::os::raw::c_int,
10312        ) -> bool,
10313    >,
10314    #[doc = " The weapon will only paralyze, not do real damage."]
10315    pub WeaponDef_isParalyzer: ::std::option::Option<
10316        unsafe extern "C" fn(
10317            skirmishAIId: ::std::os::raw::c_int,
10318            weaponDefId: ::std::os::raw::c_int,
10319        ) -> bool,
10320    >,
10321    #[doc = " The weapon damages by impacting, not by exploding."]
10322    pub WeaponDef_isImpactOnly: ::std::option::Option<
10323        unsafe extern "C" fn(
10324            skirmishAIId: ::std::os::raw::c_int,
10325            weaponDefId: ::std::os::raw::c_int,
10326        ) -> bool,
10327    >,
10328    #[doc = " Can not target anything (for example: anti-nuke, D-Gun)"]
10329    pub WeaponDef_isNoAutoTarget: ::std::option::Option<
10330        unsafe extern "C" fn(
10331            skirmishAIId: ::std::os::raw::c_int,
10332            weaponDefId: ::std::os::raw::c_int,
10333        ) -> bool,
10334    >,
10335    #[doc = " Has to be fired manually (by the player or an AI, example: D-Gun)"]
10336    pub WeaponDef_isManualFire: ::std::option::Option<
10337        unsafe extern "C" fn(
10338            skirmishAIId: ::std::os::raw::c_int,
10339            weaponDefId: ::std::os::raw::c_int,
10340        ) -> bool,
10341    >,
10342    #[doc = " Can intercept targetable weapons shots.\n\n example: anti-nuke\n\n @see  getTargetable()"]
10343    pub WeaponDef_getInterceptor: ::std::option::Option<
10344        unsafe extern "C" fn(
10345            skirmishAIId: ::std::os::raw::c_int,
10346            weaponDefId: ::std::os::raw::c_int,
10347        ) -> ::std::os::raw::c_int,
10348    >,
10349    #[doc = " Shoots interceptable projectiles.\n Shots can be intercepted by interceptors.\n\n example: nuke\n\n @see  getInterceptor()"]
10350    pub WeaponDef_getTargetable: ::std::option::Option<
10351        unsafe extern "C" fn(
10352            skirmishAIId: ::std::os::raw::c_int,
10353            weaponDefId: ::std::os::raw::c_int,
10354        ) -> ::std::os::raw::c_int,
10355    >,
10356    pub WeaponDef_isStockpileable: ::std::option::Option<
10357        unsafe extern "C" fn(
10358            skirmishAIId: ::std::os::raw::c_int,
10359            weaponDefId: ::std::os::raw::c_int,
10360        ) -> bool,
10361    >,
10362    #[doc = " Range of interceptors.\n\n example: anti-nuke\n\n @see  getInterceptor()"]
10363    pub WeaponDef_getCoverageRange: ::std::option::Option<
10364        unsafe extern "C" fn(
10365            skirmishAIId: ::std::os::raw::c_int,
10366            weaponDefId: ::std::os::raw::c_int,
10367        ) -> f32,
10368    >,
10369    #[doc = " Build time of a missile"]
10370    pub WeaponDef_getStockpileTime: ::std::option::Option<
10371        unsafe extern "C" fn(
10372            skirmishAIId: ::std::os::raw::c_int,
10373            weaponDefId: ::std::os::raw::c_int,
10374        ) -> f32,
10375    >,
10376    pub WeaponDef_getIntensity: ::std::option::Option<
10377        unsafe extern "C" fn(
10378            skirmishAIId: ::std::os::raw::c_int,
10379            weaponDefId: ::std::os::raw::c_int,
10380        ) -> f32,
10381    >,
10382    pub WeaponDef_getDuration: ::std::option::Option<
10383        unsafe extern "C" fn(
10384            skirmishAIId: ::std::os::raw::c_int,
10385            weaponDefId: ::std::os::raw::c_int,
10386        ) -> f32,
10387    >,
10388    pub WeaponDef_getFalloffRate: ::std::option::Option<
10389        unsafe extern "C" fn(
10390            skirmishAIId: ::std::os::raw::c_int,
10391            weaponDefId: ::std::os::raw::c_int,
10392        ) -> f32,
10393    >,
10394    pub WeaponDef_isSoundTrigger: ::std::option::Option<
10395        unsafe extern "C" fn(
10396            skirmishAIId: ::std::os::raw::c_int,
10397            weaponDefId: ::std::os::raw::c_int,
10398        ) -> bool,
10399    >,
10400    pub WeaponDef_isSelfExplode: ::std::option::Option<
10401        unsafe extern "C" fn(
10402            skirmishAIId: ::std::os::raw::c_int,
10403            weaponDefId: ::std::os::raw::c_int,
10404        ) -> bool,
10405    >,
10406    pub WeaponDef_isGravityAffected: ::std::option::Option<
10407        unsafe extern "C" fn(
10408            skirmishAIId: ::std::os::raw::c_int,
10409            weaponDefId: ::std::os::raw::c_int,
10410        ) -> bool,
10411    >,
10412    #[doc = " Per weapon high trajectory setting.\n UnitDef also has this property.\n\n @return  0: low\n          1: high\n          2: unit"]
10413    pub WeaponDef_getHighTrajectory: ::std::option::Option<
10414        unsafe extern "C" fn(
10415            skirmishAIId: ::std::os::raw::c_int,
10416            weaponDefId: ::std::os::raw::c_int,
10417        ) -> ::std::os::raw::c_int,
10418    >,
10419    pub WeaponDef_getMyGravity: ::std::option::Option<
10420        unsafe extern "C" fn(
10421            skirmishAIId: ::std::os::raw::c_int,
10422            weaponDefId: ::std::os::raw::c_int,
10423        ) -> f32,
10424    >,
10425    pub WeaponDef_isNoExplode: ::std::option::Option<
10426        unsafe extern "C" fn(
10427            skirmishAIId: ::std::os::raw::c_int,
10428            weaponDefId: ::std::os::raw::c_int,
10429        ) -> bool,
10430    >,
10431    pub WeaponDef_getStartVelocity: ::std::option::Option<
10432        unsafe extern "C" fn(
10433            skirmishAIId: ::std::os::raw::c_int,
10434            weaponDefId: ::std::os::raw::c_int,
10435        ) -> f32,
10436    >,
10437    pub WeaponDef_getWeaponAcceleration: ::std::option::Option<
10438        unsafe extern "C" fn(
10439            skirmishAIId: ::std::os::raw::c_int,
10440            weaponDefId: ::std::os::raw::c_int,
10441        ) -> f32,
10442    >,
10443    pub WeaponDef_getTurnRate: ::std::option::Option<
10444        unsafe extern "C" fn(
10445            skirmishAIId: ::std::os::raw::c_int,
10446            weaponDefId: ::std::os::raw::c_int,
10447        ) -> f32,
10448    >,
10449    pub WeaponDef_getMaxVelocity: ::std::option::Option<
10450        unsafe extern "C" fn(
10451            skirmishAIId: ::std::os::raw::c_int,
10452            weaponDefId: ::std::os::raw::c_int,
10453        ) -> f32,
10454    >,
10455    pub WeaponDef_getProjectileSpeed: ::std::option::Option<
10456        unsafe extern "C" fn(
10457            skirmishAIId: ::std::os::raw::c_int,
10458            weaponDefId: ::std::os::raw::c_int,
10459        ) -> f32,
10460    >,
10461    pub WeaponDef_getExplosionSpeed: ::std::option::Option<
10462        unsafe extern "C" fn(
10463            skirmishAIId: ::std::os::raw::c_int,
10464            weaponDefId: ::std::os::raw::c_int,
10465        ) -> f32,
10466    >,
10467    #[doc = " Returns the bit field value denoting the categories this weapon should\n target, excluding all others.\n @see Game#getCategoryFlag\n @see Game#getCategoryName"]
10468    pub WeaponDef_getOnlyTargetCategory: ::std::option::Option<
10469        unsafe extern "C" fn(
10470            skirmishAIId: ::std::os::raw::c_int,
10471            weaponDefId: ::std::os::raw::c_int,
10472        ) -> ::std::os::raw::c_int,
10473    >,
10474    #[doc = " How much the missile will wobble around its course."]
10475    pub WeaponDef_getWobble: ::std::option::Option<
10476        unsafe extern "C" fn(
10477            skirmishAIId: ::std::os::raw::c_int,
10478            weaponDefId: ::std::os::raw::c_int,
10479        ) -> f32,
10480    >,
10481    #[doc = " How much the missile will dance."]
10482    pub WeaponDef_getDance: ::std::option::Option<
10483        unsafe extern "C" fn(
10484            skirmishAIId: ::std::os::raw::c_int,
10485            weaponDefId: ::std::os::raw::c_int,
10486        ) -> f32,
10487    >,
10488    #[doc = " How high trajectory missiles will try to fly in."]
10489    pub WeaponDef_getTrajectoryHeight: ::std::option::Option<
10490        unsafe extern "C" fn(
10491            skirmishAIId: ::std::os::raw::c_int,
10492            weaponDefId: ::std::os::raw::c_int,
10493        ) -> f32,
10494    >,
10495    pub WeaponDef_isLargeBeamLaser: ::std::option::Option<
10496        unsafe extern "C" fn(
10497            skirmishAIId: ::std::os::raw::c_int,
10498            weaponDefId: ::std::os::raw::c_int,
10499        ) -> bool,
10500    >,
10501    #[doc = " If the weapon is a shield rather than a weapon."]
10502    pub WeaponDef_isShield: ::std::option::Option<
10503        unsafe extern "C" fn(
10504            skirmishAIId: ::std::os::raw::c_int,
10505            weaponDefId: ::std::os::raw::c_int,
10506        ) -> bool,
10507    >,
10508    #[doc = " If the weapon should be repulsed or absorbed."]
10509    pub WeaponDef_isShieldRepulser: ::std::option::Option<
10510        unsafe extern "C" fn(
10511            skirmishAIId: ::std::os::raw::c_int,
10512            weaponDefId: ::std::os::raw::c_int,
10513        ) -> bool,
10514    >,
10515    #[doc = " If the shield only affects enemy projectiles."]
10516    pub WeaponDef_isSmartShield: ::std::option::Option<
10517        unsafe extern "C" fn(
10518            skirmishAIId: ::std::os::raw::c_int,
10519            weaponDefId: ::std::os::raw::c_int,
10520        ) -> bool,
10521    >,
10522    #[doc = " If the shield only affects stuff coming from outside shield radius."]
10523    pub WeaponDef_isExteriorShield: ::std::option::Option<
10524        unsafe extern "C" fn(
10525            skirmishAIId: ::std::os::raw::c_int,
10526            weaponDefId: ::std::os::raw::c_int,
10527        ) -> bool,
10528    >,
10529    #[doc = " If the shield should be graphically shown."]
10530    pub WeaponDef_isVisibleShield: ::std::option::Option<
10531        unsafe extern "C" fn(
10532            skirmishAIId: ::std::os::raw::c_int,
10533            weaponDefId: ::std::os::raw::c_int,
10534        ) -> bool,
10535    >,
10536    #[doc = " If a small graphic should be shown at each repulse."]
10537    pub WeaponDef_isVisibleShieldRepulse: ::std::option::Option<
10538        unsafe extern "C" fn(
10539            skirmishAIId: ::std::os::raw::c_int,
10540            weaponDefId: ::std::os::raw::c_int,
10541        ) -> bool,
10542    >,
10543    #[doc = " The number of frames to draw the shield after it has been hit."]
10544    pub WeaponDef_getVisibleShieldHitFrames: ::std::option::Option<
10545        unsafe extern "C" fn(
10546            skirmishAIId: ::std::os::raw::c_int,
10547            weaponDefId: ::std::os::raw::c_int,
10548        ) -> ::std::os::raw::c_int,
10549    >,
10550    #[doc = " Amount of the resource used per shot or per second,\n depending on the type of projectile."]
10551    pub WeaponDef_Shield_getResourceUse: ::std::option::Option<
10552        unsafe extern "C" fn(
10553            skirmishAIId: ::std::os::raw::c_int,
10554            weaponDefId: ::std::os::raw::c_int,
10555            resourceId: ::std::os::raw::c_int,
10556        ) -> f32,
10557    >,
10558    #[doc = " Size of shield covered area"]
10559    pub WeaponDef_Shield_getRadius: ::std::option::Option<
10560        unsafe extern "C" fn(
10561            skirmishAIId: ::std::os::raw::c_int,
10562            weaponDefId: ::std::os::raw::c_int,
10563        ) -> f32,
10564    >,
10565    #[doc = " Shield acceleration on plasma stuff.\n How much will plasma be accelerated into the other direction\n when it hits the shield."]
10566    pub WeaponDef_Shield_getForce: ::std::option::Option<
10567        unsafe extern "C" fn(
10568            skirmishAIId: ::std::os::raw::c_int,
10569            weaponDefId: ::std::os::raw::c_int,
10570        ) -> f32,
10571    >,
10572    #[doc = " Maximum speed to which the shield can repulse plasma."]
10573    pub WeaponDef_Shield_getMaxSpeed: ::std::option::Option<
10574        unsafe extern "C" fn(
10575            skirmishAIId: ::std::os::raw::c_int,
10576            weaponDefId: ::std::os::raw::c_int,
10577        ) -> f32,
10578    >,
10579    #[doc = " Amount of damage the shield can reflect. (0=infinite)"]
10580    pub WeaponDef_Shield_getPower: ::std::option::Option<
10581        unsafe extern "C" fn(
10582            skirmishAIId: ::std::os::raw::c_int,
10583            weaponDefId: ::std::os::raw::c_int,
10584        ) -> f32,
10585    >,
10586    #[doc = " Amount of power that is regenerated per second."]
10587    pub WeaponDef_Shield_getPowerRegen: ::std::option::Option<
10588        unsafe extern "C" fn(
10589            skirmishAIId: ::std::os::raw::c_int,
10590            weaponDefId: ::std::os::raw::c_int,
10591        ) -> f32,
10592    >,
10593    #[doc = " How much of a given resource is needed to regenerate power\n with max speed per second."]
10594    pub WeaponDef_Shield_getPowerRegenResource: ::std::option::Option<
10595        unsafe extern "C" fn(
10596            skirmishAIId: ::std::os::raw::c_int,
10597            weaponDefId: ::std::os::raw::c_int,
10598            resourceId: ::std::os::raw::c_int,
10599        ) -> f32,
10600    >,
10601    #[doc = " How much power the shield has when it is created."]
10602    pub WeaponDef_Shield_getStartingPower: ::std::option::Option<
10603        unsafe extern "C" fn(
10604            skirmishAIId: ::std::os::raw::c_int,
10605            weaponDefId: ::std::os::raw::c_int,
10606        ) -> f32,
10607    >,
10608    #[doc = " Number of frames to delay recharging by after each hit."]
10609    pub WeaponDef_Shield_getRechargeDelay: ::std::option::Option<
10610        unsafe extern "C" fn(
10611            skirmishAIId: ::std::os::raw::c_int,
10612            weaponDefId: ::std::os::raw::c_int,
10613        ) -> ::std::os::raw::c_int,
10614    >,
10615    #[doc = " The type of the shield (bitfield).\n Defines what weapons can be intercepted by the shield.\n\n @see  getInterceptedByShieldType()"]
10616    pub WeaponDef_Shield_getInterceptType: ::std::option::Option<
10617        unsafe extern "C" fn(
10618            skirmishAIId: ::std::os::raw::c_int,
10619            weaponDefId: ::std::os::raw::c_int,
10620        ) -> ::std::os::raw::c_int,
10621    >,
10622    #[doc = " The type of shields that can intercept this weapon (bitfield).\n The weapon can be affected by shields if:\n (shield.getInterceptType() & weapon.getInterceptedByShieldType()) != 0\n\n @see  getInterceptType()"]
10623    pub WeaponDef_getInterceptedByShieldType: ::std::option::Option<
10624        unsafe extern "C" fn(
10625            skirmishAIId: ::std::os::raw::c_int,
10626            weaponDefId: ::std::os::raw::c_int,
10627        ) -> ::std::os::raw::c_int,
10628    >,
10629    #[doc = " Tries to avoid friendly units while aiming?"]
10630    pub WeaponDef_isAvoidFriendly: ::std::option::Option<
10631        unsafe extern "C" fn(
10632            skirmishAIId: ::std::os::raw::c_int,
10633            weaponDefId: ::std::os::raw::c_int,
10634        ) -> bool,
10635    >,
10636    #[doc = " Tries to avoid features while aiming?"]
10637    pub WeaponDef_isAvoidFeature: ::std::option::Option<
10638        unsafe extern "C" fn(
10639            skirmishAIId: ::std::os::raw::c_int,
10640            weaponDefId: ::std::os::raw::c_int,
10641        ) -> bool,
10642    >,
10643    #[doc = " Tries to avoid neutral units while aiming?"]
10644    pub WeaponDef_isAvoidNeutral: ::std::option::Option<
10645        unsafe extern "C" fn(
10646            skirmishAIId: ::std::os::raw::c_int,
10647            weaponDefId: ::std::os::raw::c_int,
10648        ) -> bool,
10649    >,
10650    #[doc = " If nonzero, targetting units will TryTarget at the edge of collision sphere\n (radius*tag value, [-1;1]) instead of its centre."]
10651    pub WeaponDef_getTargetBorder: ::std::option::Option<
10652        unsafe extern "C" fn(
10653            skirmishAIId: ::std::os::raw::c_int,
10654            weaponDefId: ::std::os::raw::c_int,
10655        ) -> f32,
10656    >,
10657    #[doc = " If greater than 0, the range will be checked in a cylinder\n (height=range*cylinderTargetting) instead of a sphere."]
10658    pub WeaponDef_getCylinderTargetting: ::std::option::Option<
10659        unsafe extern "C" fn(
10660            skirmishAIId: ::std::os::raw::c_int,
10661            weaponDefId: ::std::os::raw::c_int,
10662        ) -> f32,
10663    >,
10664    #[doc = " For beam-lasers only - always hit with some minimum intensity\n (a damage coeffcient normally dependent on distance).\n Do not confuse this with the intensity tag, it i completely unrelated."]
10665    pub WeaponDef_getMinIntensity: ::std::option::Option<
10666        unsafe extern "C" fn(
10667            skirmishAIId: ::std::os::raw::c_int,
10668            weaponDefId: ::std::os::raw::c_int,
10669        ) -> f32,
10670    >,
10671    #[doc = " Controls cannon range height boost.\n\n default: -1: automatically calculate a more or less sane value"]
10672    pub WeaponDef_getHeightBoostFactor: ::std::option::Option<
10673        unsafe extern "C" fn(
10674            skirmishAIId: ::std::os::raw::c_int,
10675            weaponDefId: ::std::os::raw::c_int,
10676        ) -> f32,
10677    >,
10678    #[doc = " Multiplier for the distance to the target for priority calculations."]
10679    pub WeaponDef_getProximityPriority: ::std::option::Option<
10680        unsafe extern "C" fn(
10681            skirmishAIId: ::std::os::raw::c_int,
10682            weaponDefId: ::std::os::raw::c_int,
10683        ) -> f32,
10684    >,
10685    pub WeaponDef_getCollisionFlags: ::std::option::Option<
10686        unsafe extern "C" fn(
10687            skirmishAIId: ::std::os::raw::c_int,
10688            weaponDefId: ::std::os::raw::c_int,
10689        ) -> ::std::os::raw::c_int,
10690    >,
10691    pub WeaponDef_isSweepFire: ::std::option::Option<
10692        unsafe extern "C" fn(
10693            skirmishAIId: ::std::os::raw::c_int,
10694            weaponDefId: ::std::os::raw::c_int,
10695        ) -> bool,
10696    >,
10697    pub WeaponDef_isAbleToAttackGround: ::std::option::Option<
10698        unsafe extern "C" fn(
10699            skirmishAIId: ::std::os::raw::c_int,
10700            weaponDefId: ::std::os::raw::c_int,
10701        ) -> bool,
10702    >,
10703    pub WeaponDef_getCameraShake: ::std::option::Option<
10704        unsafe extern "C" fn(
10705            skirmishAIId: ::std::os::raw::c_int,
10706            weaponDefId: ::std::os::raw::c_int,
10707        ) -> f32,
10708    >,
10709    pub WeaponDef_getDynDamageExp: ::std::option::Option<
10710        unsafe extern "C" fn(
10711            skirmishAIId: ::std::os::raw::c_int,
10712            weaponDefId: ::std::os::raw::c_int,
10713        ) -> f32,
10714    >,
10715    pub WeaponDef_getDynDamageMin: ::std::option::Option<
10716        unsafe extern "C" fn(
10717            skirmishAIId: ::std::os::raw::c_int,
10718            weaponDefId: ::std::os::raw::c_int,
10719        ) -> f32,
10720    >,
10721    pub WeaponDef_getDynDamageRange: ::std::option::Option<
10722        unsafe extern "C" fn(
10723            skirmishAIId: ::std::os::raw::c_int,
10724            weaponDefId: ::std::os::raw::c_int,
10725        ) -> f32,
10726    >,
10727    pub WeaponDef_isDynDamageInverted: ::std::option::Option<
10728        unsafe extern "C" fn(
10729            skirmishAIId: ::std::os::raw::c_int,
10730            weaponDefId: ::std::os::raw::c_int,
10731        ) -> bool,
10732    >,
10733    pub WeaponDef_getCustomParams: ::std::option::Option<
10734        unsafe extern "C" fn(
10735            skirmishAIId: ::std::os::raw::c_int,
10736            weaponDefId: ::std::os::raw::c_int,
10737            keys: *mut *const ::std::os::raw::c_char,
10738            values: *mut *const ::std::os::raw::c_char,
10739        ) -> ::std::os::raw::c_int,
10740    >,
10741    pub Unit_Weapon_getDef: ::std::option::Option<
10742        unsafe extern "C" fn(
10743            skirmishAIId: ::std::os::raw::c_int,
10744            unitId: ::std::os::raw::c_int,
10745            weaponId: ::std::os::raw::c_int,
10746        ) -> ::std::os::raw::c_int,
10747    >,
10748    #[doc = " Next tick the weapon can fire again."]
10749    pub Unit_Weapon_getReloadFrame: ::std::option::Option<
10750        unsafe extern "C" fn(
10751            skirmishAIId: ::std::os::raw::c_int,
10752            unitId: ::std::os::raw::c_int,
10753            weaponId: ::std::os::raw::c_int,
10754        ) -> ::std::os::raw::c_int,
10755    >,
10756    #[doc = " Time between succesive fires in ticks."]
10757    pub Unit_Weapon_getReloadTime: ::std::option::Option<
10758        unsafe extern "C" fn(
10759            skirmishAIId: ::std::os::raw::c_int,
10760            unitId: ::std::os::raw::c_int,
10761            weaponId: ::std::os::raw::c_int,
10762        ) -> ::std::os::raw::c_int,
10763    >,
10764    pub Unit_Weapon_getRange: ::std::option::Option<
10765        unsafe extern "C" fn(
10766            skirmishAIId: ::std::os::raw::c_int,
10767            unitId: ::std::os::raw::c_int,
10768            weaponId: ::std::os::raw::c_int,
10769        ) -> f32,
10770    >,
10771    pub Unit_Weapon_isShieldEnabled: ::std::option::Option<
10772        unsafe extern "C" fn(
10773            skirmishAIId: ::std::os::raw::c_int,
10774            unitId: ::std::os::raw::c_int,
10775            weaponId: ::std::os::raw::c_int,
10776        ) -> bool,
10777    >,
10778    pub Unit_Weapon_getShieldPower: ::std::option::Option<
10779        unsafe extern "C" fn(
10780            skirmishAIId: ::std::os::raw::c_int,
10781            unitId: ::std::os::raw::c_int,
10782            weaponId: ::std::os::raw::c_int,
10783        ) -> f32,
10784    >,
10785    pub Debug_GraphDrawer_isEnabled:
10786        ::std::option::Option<unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> bool>,
10787}
10788#[test]
10789fn bindgen_test_layout_SSkirmishAICallback() {
10790    const UNINIT: ::std::mem::MaybeUninit<SSkirmishAICallback> = ::std::mem::MaybeUninit::uninit();
10791    let ptr = UNINIT.as_ptr();
10792    assert_eq!(
10793        ::std::mem::size_of::<SSkirmishAICallback>(),
10794        4720usize,
10795        concat!("Size of: ", stringify!(SSkirmishAICallback))
10796    );
10797    assert_eq!(
10798        ::std::mem::align_of::<SSkirmishAICallback>(),
10799        8usize,
10800        concat!("Alignment of ", stringify!(SSkirmishAICallback))
10801    );
10802    assert_eq!(
10803        unsafe { ::std::ptr::addr_of!((*ptr).Engine_handleCommand) as usize - ptr as usize },
10804        0usize,
10805        concat!(
10806            "Offset of field: ",
10807            stringify!(SSkirmishAICallback),
10808            "::",
10809            stringify!(Engine_handleCommand)
10810        )
10811    );
10812    assert_eq!(
10813        unsafe { ::std::ptr::addr_of!((*ptr).Engine_executeCommand) as usize - ptr as usize },
10814        8usize,
10815        concat!(
10816            "Offset of field: ",
10817            stringify!(SSkirmishAICallback),
10818            "::",
10819            stringify!(Engine_executeCommand)
10820        )
10821    );
10822    assert_eq!(
10823        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getMajor) as usize - ptr as usize },
10824        16usize,
10825        concat!(
10826            "Offset of field: ",
10827            stringify!(SSkirmishAICallback),
10828            "::",
10829            stringify!(Engine_Version_getMajor)
10830        )
10831    );
10832    assert_eq!(
10833        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getMinor) as usize - ptr as usize },
10834        24usize,
10835        concat!(
10836            "Offset of field: ",
10837            stringify!(SSkirmishAICallback),
10838            "::",
10839            stringify!(Engine_Version_getMinor)
10840        )
10841    );
10842    assert_eq!(
10843        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getPatchset) as usize - ptr as usize },
10844        32usize,
10845        concat!(
10846            "Offset of field: ",
10847            stringify!(SSkirmishAICallback),
10848            "::",
10849            stringify!(Engine_Version_getPatchset)
10850        )
10851    );
10852    assert_eq!(
10853        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getCommits) as usize - ptr as usize },
10854        40usize,
10855        concat!(
10856            "Offset of field: ",
10857            stringify!(SSkirmishAICallback),
10858            "::",
10859            stringify!(Engine_Version_getCommits)
10860        )
10861    );
10862    assert_eq!(
10863        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getHash) as usize - ptr as usize },
10864        48usize,
10865        concat!(
10866            "Offset of field: ",
10867            stringify!(SSkirmishAICallback),
10868            "::",
10869            stringify!(Engine_Version_getHash)
10870        )
10871    );
10872    assert_eq!(
10873        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getBranch) as usize - ptr as usize },
10874        56usize,
10875        concat!(
10876            "Offset of field: ",
10877            stringify!(SSkirmishAICallback),
10878            "::",
10879            stringify!(Engine_Version_getBranch)
10880        )
10881    );
10882    assert_eq!(
10883        unsafe {
10884            ::std::ptr::addr_of!((*ptr).Engine_Version_getAdditional) as usize - ptr as usize
10885        },
10886        64usize,
10887        concat!(
10888            "Offset of field: ",
10889            stringify!(SSkirmishAICallback),
10890            "::",
10891            stringify!(Engine_Version_getAdditional)
10892        )
10893    );
10894    assert_eq!(
10895        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getBuildTime) as usize - ptr as usize },
10896        72usize,
10897        concat!(
10898            "Offset of field: ",
10899            stringify!(SSkirmishAICallback),
10900            "::",
10901            stringify!(Engine_Version_getBuildTime)
10902        )
10903    );
10904    assert_eq!(
10905        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_isRelease) as usize - ptr as usize },
10906        80usize,
10907        concat!(
10908            "Offset of field: ",
10909            stringify!(SSkirmishAICallback),
10910            "::",
10911            stringify!(Engine_Version_isRelease)
10912        )
10913    );
10914    assert_eq!(
10915        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getNormal) as usize - ptr as usize },
10916        88usize,
10917        concat!(
10918            "Offset of field: ",
10919            stringify!(SSkirmishAICallback),
10920            "::",
10921            stringify!(Engine_Version_getNormal)
10922        )
10923    );
10924    assert_eq!(
10925        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getSync) as usize - ptr as usize },
10926        96usize,
10927        concat!(
10928            "Offset of field: ",
10929            stringify!(SSkirmishAICallback),
10930            "::",
10931            stringify!(Engine_Version_getSync)
10932        )
10933    );
10934    assert_eq!(
10935        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getFull) as usize - ptr as usize },
10936        104usize,
10937        concat!(
10938            "Offset of field: ",
10939            stringify!(SSkirmishAICallback),
10940            "::",
10941            stringify!(Engine_Version_getFull)
10942        )
10943    );
10944    assert_eq!(
10945        unsafe { ::std::ptr::addr_of!((*ptr).getNumTeams) as usize - ptr as usize },
10946        112usize,
10947        concat!(
10948            "Offset of field: ",
10949            stringify!(SSkirmishAICallback),
10950            "::",
10951            stringify!(getNumTeams)
10952        )
10953    );
10954    assert_eq!(
10955        unsafe { ::std::ptr::addr_of!((*ptr).getNumSkirmishAIs) as usize - ptr as usize },
10956        120usize,
10957        concat!(
10958            "Offset of field: ",
10959            stringify!(SSkirmishAICallback),
10960            "::",
10961            stringify!(getNumSkirmishAIs)
10962        )
10963    );
10964    assert_eq!(
10965        unsafe { ::std::ptr::addr_of!((*ptr).getMaxSkirmishAIs) as usize - ptr as usize },
10966        128usize,
10967        concat!(
10968            "Offset of field: ",
10969            stringify!(SSkirmishAICallback),
10970            "::",
10971            stringify!(getMaxSkirmishAIs)
10972        )
10973    );
10974    assert_eq!(
10975        unsafe { ::std::ptr::addr_of!((*ptr).SkirmishAI_getTeamId) as usize - ptr as usize },
10976        136usize,
10977        concat!(
10978            "Offset of field: ",
10979            stringify!(SSkirmishAICallback),
10980            "::",
10981            stringify!(SkirmishAI_getTeamId)
10982        )
10983    );
10984    assert_eq!(
10985        unsafe { ::std::ptr::addr_of!((*ptr).SkirmishAI_Info_getSize) as usize - ptr as usize },
10986        144usize,
10987        concat!(
10988            "Offset of field: ",
10989            stringify!(SSkirmishAICallback),
10990            "::",
10991            stringify!(SkirmishAI_Info_getSize)
10992        )
10993    );
10994    assert_eq!(
10995        unsafe { ::std::ptr::addr_of!((*ptr).SkirmishAI_Info_getKey) as usize - ptr as usize },
10996        152usize,
10997        concat!(
10998            "Offset of field: ",
10999            stringify!(SSkirmishAICallback),
11000            "::",
11001            stringify!(SkirmishAI_Info_getKey)
11002        )
11003    );
11004    assert_eq!(
11005        unsafe { ::std::ptr::addr_of!((*ptr).SkirmishAI_Info_getValue) as usize - ptr as usize },
11006        160usize,
11007        concat!(
11008            "Offset of field: ",
11009            stringify!(SSkirmishAICallback),
11010            "::",
11011            stringify!(SkirmishAI_Info_getValue)
11012        )
11013    );
11014    assert_eq!(
11015        unsafe {
11016            ::std::ptr::addr_of!((*ptr).SkirmishAI_Info_getDescription) as usize - ptr as usize
11017        },
11018        168usize,
11019        concat!(
11020            "Offset of field: ",
11021            stringify!(SSkirmishAICallback),
11022            "::",
11023            stringify!(SkirmishAI_Info_getDescription)
11024        )
11025    );
11026    assert_eq!(
11027        unsafe {
11028            ::std::ptr::addr_of!((*ptr).SkirmishAI_Info_getValueByKey) as usize - ptr as usize
11029        },
11030        176usize,
11031        concat!(
11032            "Offset of field: ",
11033            stringify!(SSkirmishAICallback),
11034            "::",
11035            stringify!(SkirmishAI_Info_getValueByKey)
11036        )
11037    );
11038    assert_eq!(
11039        unsafe {
11040            ::std::ptr::addr_of!((*ptr).SkirmishAI_OptionValues_getSize) as usize - ptr as usize
11041        },
11042        184usize,
11043        concat!(
11044            "Offset of field: ",
11045            stringify!(SSkirmishAICallback),
11046            "::",
11047            stringify!(SkirmishAI_OptionValues_getSize)
11048        )
11049    );
11050    assert_eq!(
11051        unsafe {
11052            ::std::ptr::addr_of!((*ptr).SkirmishAI_OptionValues_getKey) as usize - ptr as usize
11053        },
11054        192usize,
11055        concat!(
11056            "Offset of field: ",
11057            stringify!(SSkirmishAICallback),
11058            "::",
11059            stringify!(SkirmishAI_OptionValues_getKey)
11060        )
11061    );
11062    assert_eq!(
11063        unsafe {
11064            ::std::ptr::addr_of!((*ptr).SkirmishAI_OptionValues_getValue) as usize - ptr as usize
11065        },
11066        200usize,
11067        concat!(
11068            "Offset of field: ",
11069            stringify!(SSkirmishAICallback),
11070            "::",
11071            stringify!(SkirmishAI_OptionValues_getValue)
11072        )
11073    );
11074    assert_eq!(
11075        unsafe {
11076            ::std::ptr::addr_of!((*ptr).SkirmishAI_OptionValues_getValueByKey) as usize
11077                - ptr as usize
11078        },
11079        208usize,
11080        concat!(
11081            "Offset of field: ",
11082            stringify!(SSkirmishAICallback),
11083            "::",
11084            stringify!(SkirmishAI_OptionValues_getValueByKey)
11085        )
11086    );
11087    assert_eq!(
11088        unsafe { ::std::ptr::addr_of!((*ptr).Log_log) as usize - ptr as usize },
11089        216usize,
11090        concat!(
11091            "Offset of field: ",
11092            stringify!(SSkirmishAICallback),
11093            "::",
11094            stringify!(Log_log)
11095        )
11096    );
11097    assert_eq!(
11098        unsafe { ::std::ptr::addr_of!((*ptr).Log_exception) as usize - ptr as usize },
11099        224usize,
11100        concat!(
11101            "Offset of field: ",
11102            stringify!(SSkirmishAICallback),
11103            "::",
11104            stringify!(Log_exception)
11105        )
11106    );
11107    assert_eq!(
11108        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_getPathSeparator) as usize - ptr as usize },
11109        232usize,
11110        concat!(
11111            "Offset of field: ",
11112            stringify!(SSkirmishAICallback),
11113            "::",
11114            stringify!(DataDirs_getPathSeparator)
11115        )
11116    );
11117    assert_eq!(
11118        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_getConfigDir) as usize - ptr as usize },
11119        240usize,
11120        concat!(
11121            "Offset of field: ",
11122            stringify!(SSkirmishAICallback),
11123            "::",
11124            stringify!(DataDirs_getConfigDir)
11125        )
11126    );
11127    assert_eq!(
11128        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_getWriteableDir) as usize - ptr as usize },
11129        248usize,
11130        concat!(
11131            "Offset of field: ",
11132            stringify!(SSkirmishAICallback),
11133            "::",
11134            stringify!(DataDirs_getWriteableDir)
11135        )
11136    );
11137    assert_eq!(
11138        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_locatePath) as usize - ptr as usize },
11139        256usize,
11140        concat!(
11141            "Offset of field: ",
11142            stringify!(SSkirmishAICallback),
11143            "::",
11144            stringify!(DataDirs_locatePath)
11145        )
11146    );
11147    assert_eq!(
11148        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_Roots_getSize) as usize - ptr as usize },
11149        264usize,
11150        concat!(
11151            "Offset of field: ",
11152            stringify!(SSkirmishAICallback),
11153            "::",
11154            stringify!(DataDirs_Roots_getSize)
11155        )
11156    );
11157    assert_eq!(
11158        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_Roots_getDir) as usize - ptr as usize },
11159        272usize,
11160        concat!(
11161            "Offset of field: ",
11162            stringify!(SSkirmishAICallback),
11163            "::",
11164            stringify!(DataDirs_Roots_getDir)
11165        )
11166    );
11167    assert_eq!(
11168        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_Roots_locatePath) as usize - ptr as usize },
11169        280usize,
11170        concat!(
11171            "Offset of field: ",
11172            stringify!(SSkirmishAICallback),
11173            "::",
11174            stringify!(DataDirs_Roots_locatePath)
11175        )
11176    );
11177    assert_eq!(
11178        unsafe { ::std::ptr::addr_of!((*ptr).Game_getCurrentFrame) as usize - ptr as usize },
11179        288usize,
11180        concat!(
11181            "Offset of field: ",
11182            stringify!(SSkirmishAICallback),
11183            "::",
11184            stringify!(Game_getCurrentFrame)
11185        )
11186    );
11187    assert_eq!(
11188        unsafe { ::std::ptr::addr_of!((*ptr).Game_getAiInterfaceVersion) as usize - ptr as usize },
11189        296usize,
11190        concat!(
11191            "Offset of field: ",
11192            stringify!(SSkirmishAICallback),
11193            "::",
11194            stringify!(Game_getAiInterfaceVersion)
11195        )
11196    );
11197    assert_eq!(
11198        unsafe { ::std::ptr::addr_of!((*ptr).Game_getMyTeam) as usize - ptr as usize },
11199        304usize,
11200        concat!(
11201            "Offset of field: ",
11202            stringify!(SSkirmishAICallback),
11203            "::",
11204            stringify!(Game_getMyTeam)
11205        )
11206    );
11207    assert_eq!(
11208        unsafe { ::std::ptr::addr_of!((*ptr).Game_getMyAllyTeam) as usize - ptr as usize },
11209        312usize,
11210        concat!(
11211            "Offset of field: ",
11212            stringify!(SSkirmishAICallback),
11213            "::",
11214            stringify!(Game_getMyAllyTeam)
11215        )
11216    );
11217    assert_eq!(
11218        unsafe { ::std::ptr::addr_of!((*ptr).Game_getPlayerTeam) as usize - ptr as usize },
11219        320usize,
11220        concat!(
11221            "Offset of field: ",
11222            stringify!(SSkirmishAICallback),
11223            "::",
11224            stringify!(Game_getPlayerTeam)
11225        )
11226    );
11227    assert_eq!(
11228        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeams) as usize - ptr as usize },
11229        328usize,
11230        concat!(
11231            "Offset of field: ",
11232            stringify!(SSkirmishAICallback),
11233            "::",
11234            stringify!(Game_getTeams)
11235        )
11236    );
11237    assert_eq!(
11238        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeamSide) as usize - ptr as usize },
11239        336usize,
11240        concat!(
11241            "Offset of field: ",
11242            stringify!(SSkirmishAICallback),
11243            "::",
11244            stringify!(Game_getTeamSide)
11245        )
11246    );
11247    assert_eq!(
11248        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeamColor) as usize - ptr as usize },
11249        344usize,
11250        concat!(
11251            "Offset of field: ",
11252            stringify!(SSkirmishAICallback),
11253            "::",
11254            stringify!(Game_getTeamColor)
11255        )
11256    );
11257    assert_eq!(
11258        unsafe {
11259            ::std::ptr::addr_of!((*ptr).Game_getTeamIncomeMultiplier) as usize - ptr as usize
11260        },
11261        352usize,
11262        concat!(
11263            "Offset of field: ",
11264            stringify!(SSkirmishAICallback),
11265            "::",
11266            stringify!(Game_getTeamIncomeMultiplier)
11267        )
11268    );
11269    assert_eq!(
11270        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeamAllyTeam) as usize - ptr as usize },
11271        360usize,
11272        concat!(
11273            "Offset of field: ",
11274            stringify!(SSkirmishAICallback),
11275            "::",
11276            stringify!(Game_getTeamAllyTeam)
11277        )
11278    );
11279    assert_eq!(
11280        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeamResourceCurrent) as usize - ptr as usize },
11281        368usize,
11282        concat!(
11283            "Offset of field: ",
11284            stringify!(SSkirmishAICallback),
11285            "::",
11286            stringify!(Game_getTeamResourceCurrent)
11287        )
11288    );
11289    assert_eq!(
11290        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeamResourceIncome) as usize - ptr as usize },
11291        376usize,
11292        concat!(
11293            "Offset of field: ",
11294            stringify!(SSkirmishAICallback),
11295            "::",
11296            stringify!(Game_getTeamResourceIncome)
11297        )
11298    );
11299    assert_eq!(
11300        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeamResourceUsage) as usize - ptr as usize },
11301        384usize,
11302        concat!(
11303            "Offset of field: ",
11304            stringify!(SSkirmishAICallback),
11305            "::",
11306            stringify!(Game_getTeamResourceUsage)
11307        )
11308    );
11309    assert_eq!(
11310        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeamResourceStorage) as usize - ptr as usize },
11311        392usize,
11312        concat!(
11313            "Offset of field: ",
11314            stringify!(SSkirmishAICallback),
11315            "::",
11316            stringify!(Game_getTeamResourceStorage)
11317        )
11318    );
11319    assert_eq!(
11320        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeamResourcePull) as usize - ptr as usize },
11321        400usize,
11322        concat!(
11323            "Offset of field: ",
11324            stringify!(SSkirmishAICallback),
11325            "::",
11326            stringify!(Game_getTeamResourcePull)
11327        )
11328    );
11329    assert_eq!(
11330        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeamResourceShare) as usize - ptr as usize },
11331        408usize,
11332        concat!(
11333            "Offset of field: ",
11334            stringify!(SSkirmishAICallback),
11335            "::",
11336            stringify!(Game_getTeamResourceShare)
11337        )
11338    );
11339    assert_eq!(
11340        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeamResourceSent) as usize - ptr as usize },
11341        416usize,
11342        concat!(
11343            "Offset of field: ",
11344            stringify!(SSkirmishAICallback),
11345            "::",
11346            stringify!(Game_getTeamResourceSent)
11347        )
11348    );
11349    assert_eq!(
11350        unsafe {
11351            ::std::ptr::addr_of!((*ptr).Game_getTeamResourceReceived) as usize - ptr as usize
11352        },
11353        424usize,
11354        concat!(
11355            "Offset of field: ",
11356            stringify!(SSkirmishAICallback),
11357            "::",
11358            stringify!(Game_getTeamResourceReceived)
11359        )
11360    );
11361    assert_eq!(
11362        unsafe { ::std::ptr::addr_of!((*ptr).Game_getTeamResourceExcess) as usize - ptr as usize },
11363        432usize,
11364        concat!(
11365            "Offset of field: ",
11366            stringify!(SSkirmishAICallback),
11367            "::",
11368            stringify!(Game_getTeamResourceExcess)
11369        )
11370    );
11371    assert_eq!(
11372        unsafe { ::std::ptr::addr_of!((*ptr).Game_isAllied) as usize - ptr as usize },
11373        440usize,
11374        concat!(
11375            "Offset of field: ",
11376            stringify!(SSkirmishAICallback),
11377            "::",
11378            stringify!(Game_isAllied)
11379        )
11380    );
11381    assert_eq!(
11382        unsafe { ::std::ptr::addr_of!((*ptr).Game_isDebugModeEnabled) as usize - ptr as usize },
11383        448usize,
11384        concat!(
11385            "Offset of field: ",
11386            stringify!(SSkirmishAICallback),
11387            "::",
11388            stringify!(Game_isDebugModeEnabled)
11389        )
11390    );
11391    assert_eq!(
11392        unsafe { ::std::ptr::addr_of!((*ptr).Game_getMode) as usize - ptr as usize },
11393        456usize,
11394        concat!(
11395            "Offset of field: ",
11396            stringify!(SSkirmishAICallback),
11397            "::",
11398            stringify!(Game_getMode)
11399        )
11400    );
11401    assert_eq!(
11402        unsafe { ::std::ptr::addr_of!((*ptr).Game_isPaused) as usize - ptr as usize },
11403        464usize,
11404        concat!(
11405            "Offset of field: ",
11406            stringify!(SSkirmishAICallback),
11407            "::",
11408            stringify!(Game_isPaused)
11409        )
11410    );
11411    assert_eq!(
11412        unsafe { ::std::ptr::addr_of!((*ptr).Game_getSpeedFactor) as usize - ptr as usize },
11413        472usize,
11414        concat!(
11415            "Offset of field: ",
11416            stringify!(SSkirmishAICallback),
11417            "::",
11418            stringify!(Game_getSpeedFactor)
11419        )
11420    );
11421    assert_eq!(
11422        unsafe { ::std::ptr::addr_of!((*ptr).Game_getSetupScript) as usize - ptr as usize },
11423        480usize,
11424        concat!(
11425            "Offset of field: ",
11426            stringify!(SSkirmishAICallback),
11427            "::",
11428            stringify!(Game_getSetupScript)
11429        )
11430    );
11431    assert_eq!(
11432        unsafe { ::std::ptr::addr_of!((*ptr).Game_getCategoryFlag) as usize - ptr as usize },
11433        488usize,
11434        concat!(
11435            "Offset of field: ",
11436            stringify!(SSkirmishAICallback),
11437            "::",
11438            stringify!(Game_getCategoryFlag)
11439        )
11440    );
11441    assert_eq!(
11442        unsafe { ::std::ptr::addr_of!((*ptr).Game_getCategoriesFlag) as usize - ptr as usize },
11443        496usize,
11444        concat!(
11445            "Offset of field: ",
11446            stringify!(SSkirmishAICallback),
11447            "::",
11448            stringify!(Game_getCategoriesFlag)
11449        )
11450    );
11451    assert_eq!(
11452        unsafe { ::std::ptr::addr_of!((*ptr).Game_getCategoryName) as usize - ptr as usize },
11453        504usize,
11454        concat!(
11455            "Offset of field: ",
11456            stringify!(SSkirmishAICallback),
11457            "::",
11458            stringify!(Game_getCategoryName)
11459        )
11460    );
11461    assert_eq!(
11462        unsafe { ::std::ptr::addr_of!((*ptr).Game_getRulesParamFloat) as usize - ptr as usize },
11463        512usize,
11464        concat!(
11465            "Offset of field: ",
11466            stringify!(SSkirmishAICallback),
11467            "::",
11468            stringify!(Game_getRulesParamFloat)
11469        )
11470    );
11471    assert_eq!(
11472        unsafe { ::std::ptr::addr_of!((*ptr).Game_getRulesParamString) as usize - ptr as usize },
11473        520usize,
11474        concat!(
11475            "Offset of field: ",
11476            stringify!(SSkirmishAICallback),
11477            "::",
11478            stringify!(Game_getRulesParamString)
11479        )
11480    );
11481    assert_eq!(
11482        unsafe { ::std::ptr::addr_of!((*ptr).Cheats_isEnabled) as usize - ptr as usize },
11483        528usize,
11484        concat!(
11485            "Offset of field: ",
11486            stringify!(SSkirmishAICallback),
11487            "::",
11488            stringify!(Cheats_isEnabled)
11489        )
11490    );
11491    assert_eq!(
11492        unsafe { ::std::ptr::addr_of!((*ptr).Cheats_setEnabled) as usize - ptr as usize },
11493        536usize,
11494        concat!(
11495            "Offset of field: ",
11496            stringify!(SSkirmishAICallback),
11497            "::",
11498            stringify!(Cheats_setEnabled)
11499        )
11500    );
11501    assert_eq!(
11502        unsafe { ::std::ptr::addr_of!((*ptr).Cheats_setEventsEnabled) as usize - ptr as usize },
11503        544usize,
11504        concat!(
11505            "Offset of field: ",
11506            stringify!(SSkirmishAICallback),
11507            "::",
11508            stringify!(Cheats_setEventsEnabled)
11509        )
11510    );
11511    assert_eq!(
11512        unsafe { ::std::ptr::addr_of!((*ptr).Cheats_isOnlyPassive) as usize - ptr as usize },
11513        552usize,
11514        concat!(
11515            "Offset of field: ",
11516            stringify!(SSkirmishAICallback),
11517            "::",
11518            stringify!(Cheats_isOnlyPassive)
11519        )
11520    );
11521    assert_eq!(
11522        unsafe { ::std::ptr::addr_of!((*ptr).getResources) as usize - ptr as usize },
11523        560usize,
11524        concat!(
11525            "Offset of field: ",
11526            stringify!(SSkirmishAICallback),
11527            "::",
11528            stringify!(getResources)
11529        )
11530    );
11531    assert_eq!(
11532        unsafe { ::std::ptr::addr_of!((*ptr).getResourceByName) as usize - ptr as usize },
11533        568usize,
11534        concat!(
11535            "Offset of field: ",
11536            stringify!(SSkirmishAICallback),
11537            "::",
11538            stringify!(getResourceByName)
11539        )
11540    );
11541    assert_eq!(
11542        unsafe { ::std::ptr::addr_of!((*ptr).Resource_getName) as usize - ptr as usize },
11543        576usize,
11544        concat!(
11545            "Offset of field: ",
11546            stringify!(SSkirmishAICallback),
11547            "::",
11548            stringify!(Resource_getName)
11549        )
11550    );
11551    assert_eq!(
11552        unsafe { ::std::ptr::addr_of!((*ptr).Resource_getOptimum) as usize - ptr as usize },
11553        584usize,
11554        concat!(
11555            "Offset of field: ",
11556            stringify!(SSkirmishAICallback),
11557            "::",
11558            stringify!(Resource_getOptimum)
11559        )
11560    );
11561    assert_eq!(
11562        unsafe { ::std::ptr::addr_of!((*ptr).Economy_getCurrent) as usize - ptr as usize },
11563        592usize,
11564        concat!(
11565            "Offset of field: ",
11566            stringify!(SSkirmishAICallback),
11567            "::",
11568            stringify!(Economy_getCurrent)
11569        )
11570    );
11571    assert_eq!(
11572        unsafe { ::std::ptr::addr_of!((*ptr).Economy_getIncome) as usize - ptr as usize },
11573        600usize,
11574        concat!(
11575            "Offset of field: ",
11576            stringify!(SSkirmishAICallback),
11577            "::",
11578            stringify!(Economy_getIncome)
11579        )
11580    );
11581    assert_eq!(
11582        unsafe { ::std::ptr::addr_of!((*ptr).Economy_getUsage) as usize - ptr as usize },
11583        608usize,
11584        concat!(
11585            "Offset of field: ",
11586            stringify!(SSkirmishAICallback),
11587            "::",
11588            stringify!(Economy_getUsage)
11589        )
11590    );
11591    assert_eq!(
11592        unsafe { ::std::ptr::addr_of!((*ptr).Economy_getStorage) as usize - ptr as usize },
11593        616usize,
11594        concat!(
11595            "Offset of field: ",
11596            stringify!(SSkirmishAICallback),
11597            "::",
11598            stringify!(Economy_getStorage)
11599        )
11600    );
11601    assert_eq!(
11602        unsafe { ::std::ptr::addr_of!((*ptr).Economy_getPull) as usize - ptr as usize },
11603        624usize,
11604        concat!(
11605            "Offset of field: ",
11606            stringify!(SSkirmishAICallback),
11607            "::",
11608            stringify!(Economy_getPull)
11609        )
11610    );
11611    assert_eq!(
11612        unsafe { ::std::ptr::addr_of!((*ptr).Economy_getShare) as usize - ptr as usize },
11613        632usize,
11614        concat!(
11615            "Offset of field: ",
11616            stringify!(SSkirmishAICallback),
11617            "::",
11618            stringify!(Economy_getShare)
11619        )
11620    );
11621    assert_eq!(
11622        unsafe { ::std::ptr::addr_of!((*ptr).Economy_getSent) as usize - ptr as usize },
11623        640usize,
11624        concat!(
11625            "Offset of field: ",
11626            stringify!(SSkirmishAICallback),
11627            "::",
11628            stringify!(Economy_getSent)
11629        )
11630    );
11631    assert_eq!(
11632        unsafe { ::std::ptr::addr_of!((*ptr).Economy_getReceived) as usize - ptr as usize },
11633        648usize,
11634        concat!(
11635            "Offset of field: ",
11636            stringify!(SSkirmishAICallback),
11637            "::",
11638            stringify!(Economy_getReceived)
11639        )
11640    );
11641    assert_eq!(
11642        unsafe { ::std::ptr::addr_of!((*ptr).Economy_getExcess) as usize - ptr as usize },
11643        656usize,
11644        concat!(
11645            "Offset of field: ",
11646            stringify!(SSkirmishAICallback),
11647            "::",
11648            stringify!(Economy_getExcess)
11649        )
11650    );
11651    assert_eq!(
11652        unsafe { ::std::ptr::addr_of!((*ptr).File_getSize) as usize - ptr as usize },
11653        664usize,
11654        concat!(
11655            "Offset of field: ",
11656            stringify!(SSkirmishAICallback),
11657            "::",
11658            stringify!(File_getSize)
11659        )
11660    );
11661    assert_eq!(
11662        unsafe { ::std::ptr::addr_of!((*ptr).File_getContent) as usize - ptr as usize },
11663        672usize,
11664        concat!(
11665            "Offset of field: ",
11666            stringify!(SSkirmishAICallback),
11667            "::",
11668            stringify!(File_getContent)
11669        )
11670    );
11671    assert_eq!(
11672        unsafe { ::std::ptr::addr_of!((*ptr).getUnitDefs) as usize - ptr as usize },
11673        680usize,
11674        concat!(
11675            "Offset of field: ",
11676            stringify!(SSkirmishAICallback),
11677            "::",
11678            stringify!(getUnitDefs)
11679        )
11680    );
11681    assert_eq!(
11682        unsafe { ::std::ptr::addr_of!((*ptr).getUnitDefByName) as usize - ptr as usize },
11683        688usize,
11684        concat!(
11685            "Offset of field: ",
11686            stringify!(SSkirmishAICallback),
11687            "::",
11688            stringify!(getUnitDefByName)
11689        )
11690    );
11691    assert_eq!(
11692        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getHeight) as usize - ptr as usize },
11693        696usize,
11694        concat!(
11695            "Offset of field: ",
11696            stringify!(SSkirmishAICallback),
11697            "::",
11698            stringify!(UnitDef_getHeight)
11699        )
11700    );
11701    assert_eq!(
11702        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getRadius) as usize - ptr as usize },
11703        704usize,
11704        concat!(
11705            "Offset of field: ",
11706            stringify!(SSkirmishAICallback),
11707            "::",
11708            stringify!(UnitDef_getRadius)
11709        )
11710    );
11711    assert_eq!(
11712        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getName) as usize - ptr as usize },
11713        712usize,
11714        concat!(
11715            "Offset of field: ",
11716            stringify!(SSkirmishAICallback),
11717            "::",
11718            stringify!(UnitDef_getName)
11719        )
11720    );
11721    assert_eq!(
11722        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getHumanName) as usize - ptr as usize },
11723        720usize,
11724        concat!(
11725            "Offset of field: ",
11726            stringify!(SSkirmishAICallback),
11727            "::",
11728            stringify!(UnitDef_getHumanName)
11729        )
11730    );
11731    assert_eq!(
11732        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getUpkeep) as usize - ptr as usize },
11733        728usize,
11734        concat!(
11735            "Offset of field: ",
11736            stringify!(SSkirmishAICallback),
11737            "::",
11738            stringify!(UnitDef_getUpkeep)
11739        )
11740    );
11741    assert_eq!(
11742        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getResourceMake) as usize - ptr as usize },
11743        736usize,
11744        concat!(
11745            "Offset of field: ",
11746            stringify!(SSkirmishAICallback),
11747            "::",
11748            stringify!(UnitDef_getResourceMake)
11749        )
11750    );
11751    assert_eq!(
11752        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMakesResource) as usize - ptr as usize },
11753        744usize,
11754        concat!(
11755            "Offset of field: ",
11756            stringify!(SSkirmishAICallback),
11757            "::",
11758            stringify!(UnitDef_getMakesResource)
11759        )
11760    );
11761    assert_eq!(
11762        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getCost) as usize - ptr as usize },
11763        752usize,
11764        concat!(
11765            "Offset of field: ",
11766            stringify!(SSkirmishAICallback),
11767            "::",
11768            stringify!(UnitDef_getCost)
11769        )
11770    );
11771    assert_eq!(
11772        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getExtractsResource) as usize - ptr as usize },
11773        760usize,
11774        concat!(
11775            "Offset of field: ",
11776            stringify!(SSkirmishAICallback),
11777            "::",
11778            stringify!(UnitDef_getExtractsResource)
11779        )
11780    );
11781    assert_eq!(
11782        unsafe {
11783            ::std::ptr::addr_of!((*ptr).UnitDef_getResourceExtractorRange) as usize - ptr as usize
11784        },
11785        768usize,
11786        concat!(
11787            "Offset of field: ",
11788            stringify!(SSkirmishAICallback),
11789            "::",
11790            stringify!(UnitDef_getResourceExtractorRange)
11791        )
11792    );
11793    assert_eq!(
11794        unsafe {
11795            ::std::ptr::addr_of!((*ptr).UnitDef_getWindResourceGenerator) as usize - ptr as usize
11796        },
11797        776usize,
11798        concat!(
11799            "Offset of field: ",
11800            stringify!(SSkirmishAICallback),
11801            "::",
11802            stringify!(UnitDef_getWindResourceGenerator)
11803        )
11804    );
11805    assert_eq!(
11806        unsafe {
11807            ::std::ptr::addr_of!((*ptr).UnitDef_getTidalResourceGenerator) as usize - ptr as usize
11808        },
11809        784usize,
11810        concat!(
11811            "Offset of field: ",
11812            stringify!(SSkirmishAICallback),
11813            "::",
11814            stringify!(UnitDef_getTidalResourceGenerator)
11815        )
11816    );
11817    assert_eq!(
11818        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getStorage) as usize - ptr as usize },
11819        792usize,
11820        concat!(
11821            "Offset of field: ",
11822            stringify!(SSkirmishAICallback),
11823            "::",
11824            stringify!(UnitDef_getStorage)
11825        )
11826    );
11827    assert_eq!(
11828        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getBuildTime) as usize - ptr as usize },
11829        800usize,
11830        concat!(
11831            "Offset of field: ",
11832            stringify!(SSkirmishAICallback),
11833            "::",
11834            stringify!(UnitDef_getBuildTime)
11835        )
11836    );
11837    assert_eq!(
11838        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getAutoHeal) as usize - ptr as usize },
11839        808usize,
11840        concat!(
11841            "Offset of field: ",
11842            stringify!(SSkirmishAICallback),
11843            "::",
11844            stringify!(UnitDef_getAutoHeal)
11845        )
11846    );
11847    assert_eq!(
11848        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getIdleAutoHeal) as usize - ptr as usize },
11849        816usize,
11850        concat!(
11851            "Offset of field: ",
11852            stringify!(SSkirmishAICallback),
11853            "::",
11854            stringify!(UnitDef_getIdleAutoHeal)
11855        )
11856    );
11857    assert_eq!(
11858        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getIdleTime) as usize - ptr as usize },
11859        824usize,
11860        concat!(
11861            "Offset of field: ",
11862            stringify!(SSkirmishAICallback),
11863            "::",
11864            stringify!(UnitDef_getIdleTime)
11865        )
11866    );
11867    assert_eq!(
11868        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getPower) as usize - ptr as usize },
11869        832usize,
11870        concat!(
11871            "Offset of field: ",
11872            stringify!(SSkirmishAICallback),
11873            "::",
11874            stringify!(UnitDef_getPower)
11875        )
11876    );
11877    assert_eq!(
11878        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getHealth) as usize - ptr as usize },
11879        840usize,
11880        concat!(
11881            "Offset of field: ",
11882            stringify!(SSkirmishAICallback),
11883            "::",
11884            stringify!(UnitDef_getHealth)
11885        )
11886    );
11887    assert_eq!(
11888        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getCategory) as usize - ptr as usize },
11889        848usize,
11890        concat!(
11891            "Offset of field: ",
11892            stringify!(SSkirmishAICallback),
11893            "::",
11894            stringify!(UnitDef_getCategory)
11895        )
11896    );
11897    assert_eq!(
11898        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getSpeed) as usize - ptr as usize },
11899        856usize,
11900        concat!(
11901            "Offset of field: ",
11902            stringify!(SSkirmishAICallback),
11903            "::",
11904            stringify!(UnitDef_getSpeed)
11905        )
11906    );
11907    assert_eq!(
11908        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getTurnRate) as usize - ptr as usize },
11909        864usize,
11910        concat!(
11911            "Offset of field: ",
11912            stringify!(SSkirmishAICallback),
11913            "::",
11914            stringify!(UnitDef_getTurnRate)
11915        )
11916    );
11917    assert_eq!(
11918        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isTurnInPlace) as usize - ptr as usize },
11919        872usize,
11920        concat!(
11921            "Offset of field: ",
11922            stringify!(SSkirmishAICallback),
11923            "::",
11924            stringify!(UnitDef_isTurnInPlace)
11925        )
11926    );
11927    assert_eq!(
11928        unsafe {
11929            ::std::ptr::addr_of!((*ptr).UnitDef_getTurnInPlaceDistance) as usize - ptr as usize
11930        },
11931        880usize,
11932        concat!(
11933            "Offset of field: ",
11934            stringify!(SSkirmishAICallback),
11935            "::",
11936            stringify!(UnitDef_getTurnInPlaceDistance)
11937        )
11938    );
11939    assert_eq!(
11940        unsafe {
11941            ::std::ptr::addr_of!((*ptr).UnitDef_getTurnInPlaceSpeedLimit) as usize - ptr as usize
11942        },
11943        888usize,
11944        concat!(
11945            "Offset of field: ",
11946            stringify!(SSkirmishAICallback),
11947            "::",
11948            stringify!(UnitDef_getTurnInPlaceSpeedLimit)
11949        )
11950    );
11951    assert_eq!(
11952        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isUpright) as usize - ptr as usize },
11953        896usize,
11954        concat!(
11955            "Offset of field: ",
11956            stringify!(SSkirmishAICallback),
11957            "::",
11958            stringify!(UnitDef_isUpright)
11959        )
11960    );
11961    assert_eq!(
11962        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isCollide) as usize - ptr as usize },
11963        904usize,
11964        concat!(
11965            "Offset of field: ",
11966            stringify!(SSkirmishAICallback),
11967            "::",
11968            stringify!(UnitDef_isCollide)
11969        )
11970    );
11971    assert_eq!(
11972        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getLosRadius) as usize - ptr as usize },
11973        912usize,
11974        concat!(
11975            "Offset of field: ",
11976            stringify!(SSkirmishAICallback),
11977            "::",
11978            stringify!(UnitDef_getLosRadius)
11979        )
11980    );
11981    assert_eq!(
11982        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getAirLosRadius) as usize - ptr as usize },
11983        920usize,
11984        concat!(
11985            "Offset of field: ",
11986            stringify!(SSkirmishAICallback),
11987            "::",
11988            stringify!(UnitDef_getAirLosRadius)
11989        )
11990    );
11991    assert_eq!(
11992        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getLosHeight) as usize - ptr as usize },
11993        928usize,
11994        concat!(
11995            "Offset of field: ",
11996            stringify!(SSkirmishAICallback),
11997            "::",
11998            stringify!(UnitDef_getLosHeight)
11999        )
12000    );
12001    assert_eq!(
12002        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getRadarRadius) as usize - ptr as usize },
12003        936usize,
12004        concat!(
12005            "Offset of field: ",
12006            stringify!(SSkirmishAICallback),
12007            "::",
12008            stringify!(UnitDef_getRadarRadius)
12009        )
12010    );
12011    assert_eq!(
12012        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getSonarRadius) as usize - ptr as usize },
12013        944usize,
12014        concat!(
12015            "Offset of field: ",
12016            stringify!(SSkirmishAICallback),
12017            "::",
12018            stringify!(UnitDef_getSonarRadius)
12019        )
12020    );
12021    assert_eq!(
12022        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getJammerRadius) as usize - ptr as usize },
12023        952usize,
12024        concat!(
12025            "Offset of field: ",
12026            stringify!(SSkirmishAICallback),
12027            "::",
12028            stringify!(UnitDef_getJammerRadius)
12029        )
12030    );
12031    assert_eq!(
12032        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getSonarJamRadius) as usize - ptr as usize },
12033        960usize,
12034        concat!(
12035            "Offset of field: ",
12036            stringify!(SSkirmishAICallback),
12037            "::",
12038            stringify!(UnitDef_getSonarJamRadius)
12039        )
12040    );
12041    assert_eq!(
12042        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getSeismicRadius) as usize - ptr as usize },
12043        968usize,
12044        concat!(
12045            "Offset of field: ",
12046            stringify!(SSkirmishAICallback),
12047            "::",
12048            stringify!(UnitDef_getSeismicRadius)
12049        )
12050    );
12051    assert_eq!(
12052        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getSeismicSignature) as usize - ptr as usize },
12053        976usize,
12054        concat!(
12055            "Offset of field: ",
12056            stringify!(SSkirmishAICallback),
12057            "::",
12058            stringify!(UnitDef_getSeismicSignature)
12059        )
12060    );
12061    assert_eq!(
12062        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isStealth) as usize - ptr as usize },
12063        984usize,
12064        concat!(
12065            "Offset of field: ",
12066            stringify!(SSkirmishAICallback),
12067            "::",
12068            stringify!(UnitDef_isStealth)
12069        )
12070    );
12071    assert_eq!(
12072        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isSonarStealth) as usize - ptr as usize },
12073        992usize,
12074        concat!(
12075            "Offset of field: ",
12076            stringify!(SSkirmishAICallback),
12077            "::",
12078            stringify!(UnitDef_isSonarStealth)
12079        )
12080    );
12081    assert_eq!(
12082        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isBuildRange3D) as usize - ptr as usize },
12083        1000usize,
12084        concat!(
12085            "Offset of field: ",
12086            stringify!(SSkirmishAICallback),
12087            "::",
12088            stringify!(UnitDef_isBuildRange3D)
12089        )
12090    );
12091    assert_eq!(
12092        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getBuildDistance) as usize - ptr as usize },
12093        1008usize,
12094        concat!(
12095            "Offset of field: ",
12096            stringify!(SSkirmishAICallback),
12097            "::",
12098            stringify!(UnitDef_getBuildDistance)
12099        )
12100    );
12101    assert_eq!(
12102        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getBuildSpeed) as usize - ptr as usize },
12103        1016usize,
12104        concat!(
12105            "Offset of field: ",
12106            stringify!(SSkirmishAICallback),
12107            "::",
12108            stringify!(UnitDef_getBuildSpeed)
12109        )
12110    );
12111    assert_eq!(
12112        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getReclaimSpeed) as usize - ptr as usize },
12113        1024usize,
12114        concat!(
12115            "Offset of field: ",
12116            stringify!(SSkirmishAICallback),
12117            "::",
12118            stringify!(UnitDef_getReclaimSpeed)
12119        )
12120    );
12121    assert_eq!(
12122        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getRepairSpeed) as usize - ptr as usize },
12123        1032usize,
12124        concat!(
12125            "Offset of field: ",
12126            stringify!(SSkirmishAICallback),
12127            "::",
12128            stringify!(UnitDef_getRepairSpeed)
12129        )
12130    );
12131    assert_eq!(
12132        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxRepairSpeed) as usize - ptr as usize },
12133        1040usize,
12134        concat!(
12135            "Offset of field: ",
12136            stringify!(SSkirmishAICallback),
12137            "::",
12138            stringify!(UnitDef_getMaxRepairSpeed)
12139        )
12140    );
12141    assert_eq!(
12142        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getResurrectSpeed) as usize - ptr as usize },
12143        1048usize,
12144        concat!(
12145            "Offset of field: ",
12146            stringify!(SSkirmishAICallback),
12147            "::",
12148            stringify!(UnitDef_getResurrectSpeed)
12149        )
12150    );
12151    assert_eq!(
12152        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getCaptureSpeed) as usize - ptr as usize },
12153        1056usize,
12154        concat!(
12155            "Offset of field: ",
12156            stringify!(SSkirmishAICallback),
12157            "::",
12158            stringify!(UnitDef_getCaptureSpeed)
12159        )
12160    );
12161    assert_eq!(
12162        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getTerraformSpeed) as usize - ptr as usize },
12163        1064usize,
12164        concat!(
12165            "Offset of field: ",
12166            stringify!(SSkirmishAICallback),
12167            "::",
12168            stringify!(UnitDef_getTerraformSpeed)
12169        )
12170    );
12171    assert_eq!(
12172        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getUpDirSmoothing) as usize - ptr as usize },
12173        1072usize,
12174        concat!(
12175            "Offset of field: ",
12176            stringify!(SSkirmishAICallback),
12177            "::",
12178            stringify!(UnitDef_getUpDirSmoothing)
12179        )
12180    );
12181    assert_eq!(
12182        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMass) as usize - ptr as usize },
12183        1080usize,
12184        concat!(
12185            "Offset of field: ",
12186            stringify!(SSkirmishAICallback),
12187            "::",
12188            stringify!(UnitDef_getMass)
12189        )
12190    );
12191    assert_eq!(
12192        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isPushResistant) as usize - ptr as usize },
12193        1088usize,
12194        concat!(
12195            "Offset of field: ",
12196            stringify!(SSkirmishAICallback),
12197            "::",
12198            stringify!(UnitDef_isPushResistant)
12199        )
12200    );
12201    assert_eq!(
12202        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isStrafeToAttack) as usize - ptr as usize },
12203        1096usize,
12204        concat!(
12205            "Offset of field: ",
12206            stringify!(SSkirmishAICallback),
12207            "::",
12208            stringify!(UnitDef_isStrafeToAttack)
12209        )
12210    );
12211    assert_eq!(
12212        unsafe {
12213            ::std::ptr::addr_of!((*ptr).UnitDef_getMinCollisionSpeed) as usize - ptr as usize
12214        },
12215        1104usize,
12216        concat!(
12217            "Offset of field: ",
12218            stringify!(SSkirmishAICallback),
12219            "::",
12220            stringify!(UnitDef_getMinCollisionSpeed)
12221        )
12222    );
12223    assert_eq!(
12224        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getSlideTolerance) as usize - ptr as usize },
12225        1112usize,
12226        concat!(
12227            "Offset of field: ",
12228            stringify!(SSkirmishAICallback),
12229            "::",
12230            stringify!(UnitDef_getSlideTolerance)
12231        )
12232    );
12233    assert_eq!(
12234        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxHeightDif) as usize - ptr as usize },
12235        1120usize,
12236        concat!(
12237            "Offset of field: ",
12238            stringify!(SSkirmishAICallback),
12239            "::",
12240            stringify!(UnitDef_getMaxHeightDif)
12241        )
12242    );
12243    assert_eq!(
12244        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMinWaterDepth) as usize - ptr as usize },
12245        1128usize,
12246        concat!(
12247            "Offset of field: ",
12248            stringify!(SSkirmishAICallback),
12249            "::",
12250            stringify!(UnitDef_getMinWaterDepth)
12251        )
12252    );
12253    assert_eq!(
12254        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getWaterline) as usize - ptr as usize },
12255        1136usize,
12256        concat!(
12257            "Offset of field: ",
12258            stringify!(SSkirmishAICallback),
12259            "::",
12260            stringify!(UnitDef_getWaterline)
12261        )
12262    );
12263    assert_eq!(
12264        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxWaterDepth) as usize - ptr as usize },
12265        1144usize,
12266        concat!(
12267            "Offset of field: ",
12268            stringify!(SSkirmishAICallback),
12269            "::",
12270            stringify!(UnitDef_getMaxWaterDepth)
12271        )
12272    );
12273    assert_eq!(
12274        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getArmoredMultiple) as usize - ptr as usize },
12275        1152usize,
12276        concat!(
12277            "Offset of field: ",
12278            stringify!(SSkirmishAICallback),
12279            "::",
12280            stringify!(UnitDef_getArmoredMultiple)
12281        )
12282    );
12283    assert_eq!(
12284        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getArmorType) as usize - ptr as usize },
12285        1160usize,
12286        concat!(
12287            "Offset of field: ",
12288            stringify!(SSkirmishAICallback),
12289            "::",
12290            stringify!(UnitDef_getArmorType)
12291        )
12292    );
12293    assert_eq!(
12294        unsafe {
12295            ::std::ptr::addr_of!((*ptr).UnitDef_FlankingBonus_getMode) as usize - ptr as usize
12296        },
12297        1168usize,
12298        concat!(
12299            "Offset of field: ",
12300            stringify!(SSkirmishAICallback),
12301            "::",
12302            stringify!(UnitDef_FlankingBonus_getMode)
12303        )
12304    );
12305    assert_eq!(
12306        unsafe {
12307            ::std::ptr::addr_of!((*ptr).UnitDef_FlankingBonus_getDir) as usize - ptr as usize
12308        },
12309        1176usize,
12310        concat!(
12311            "Offset of field: ",
12312            stringify!(SSkirmishAICallback),
12313            "::",
12314            stringify!(UnitDef_FlankingBonus_getDir)
12315        )
12316    );
12317    assert_eq!(
12318        unsafe {
12319            ::std::ptr::addr_of!((*ptr).UnitDef_FlankingBonus_getMax) as usize - ptr as usize
12320        },
12321        1184usize,
12322        concat!(
12323            "Offset of field: ",
12324            stringify!(SSkirmishAICallback),
12325            "::",
12326            stringify!(UnitDef_FlankingBonus_getMax)
12327        )
12328    );
12329    assert_eq!(
12330        unsafe {
12331            ::std::ptr::addr_of!((*ptr).UnitDef_FlankingBonus_getMin) as usize - ptr as usize
12332        },
12333        1192usize,
12334        concat!(
12335            "Offset of field: ",
12336            stringify!(SSkirmishAICallback),
12337            "::",
12338            stringify!(UnitDef_FlankingBonus_getMin)
12339        )
12340    );
12341    assert_eq!(
12342        unsafe {
12343            ::std::ptr::addr_of!((*ptr).UnitDef_FlankingBonus_getMobilityAdd) as usize
12344                - ptr as usize
12345        },
12346        1200usize,
12347        concat!(
12348            "Offset of field: ",
12349            stringify!(SSkirmishAICallback),
12350            "::",
12351            stringify!(UnitDef_FlankingBonus_getMobilityAdd)
12352        )
12353    );
12354    assert_eq!(
12355        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxWeaponRange) as usize - ptr as usize },
12356        1208usize,
12357        concat!(
12358            "Offset of field: ",
12359            stringify!(SSkirmishAICallback),
12360            "::",
12361            stringify!(UnitDef_getMaxWeaponRange)
12362        )
12363    );
12364    assert_eq!(
12365        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getTooltip) as usize - ptr as usize },
12366        1216usize,
12367        concat!(
12368            "Offset of field: ",
12369            stringify!(SSkirmishAICallback),
12370            "::",
12371            stringify!(UnitDef_getTooltip)
12372        )
12373    );
12374    assert_eq!(
12375        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getWreckName) as usize - ptr as usize },
12376        1224usize,
12377        concat!(
12378            "Offset of field: ",
12379            stringify!(SSkirmishAICallback),
12380            "::",
12381            stringify!(UnitDef_getWreckName)
12382        )
12383    );
12384    assert_eq!(
12385        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getDeathExplosion) as usize - ptr as usize },
12386        1232usize,
12387        concat!(
12388            "Offset of field: ",
12389            stringify!(SSkirmishAICallback),
12390            "::",
12391            stringify!(UnitDef_getDeathExplosion)
12392        )
12393    );
12394    assert_eq!(
12395        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getSelfDExplosion) as usize - ptr as usize },
12396        1240usize,
12397        concat!(
12398            "Offset of field: ",
12399            stringify!(SSkirmishAICallback),
12400            "::",
12401            stringify!(UnitDef_getSelfDExplosion)
12402        )
12403    );
12404    assert_eq!(
12405        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getCategoryString) as usize - ptr as usize },
12406        1248usize,
12407        concat!(
12408            "Offset of field: ",
12409            stringify!(SSkirmishAICallback),
12410            "::",
12411            stringify!(UnitDef_getCategoryString)
12412        )
12413    );
12414    assert_eq!(
12415        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToSelfD) as usize - ptr as usize },
12416        1256usize,
12417        concat!(
12418            "Offset of field: ",
12419            stringify!(SSkirmishAICallback),
12420            "::",
12421            stringify!(UnitDef_isAbleToSelfD)
12422        )
12423    );
12424    assert_eq!(
12425        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getSelfDCountdown) as usize - ptr as usize },
12426        1264usize,
12427        concat!(
12428            "Offset of field: ",
12429            stringify!(SSkirmishAICallback),
12430            "::",
12431            stringify!(UnitDef_getSelfDCountdown)
12432        )
12433    );
12434    assert_eq!(
12435        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToSubmerge) as usize - ptr as usize },
12436        1272usize,
12437        concat!(
12438            "Offset of field: ",
12439            stringify!(SSkirmishAICallback),
12440            "::",
12441            stringify!(UnitDef_isAbleToSubmerge)
12442        )
12443    );
12444    assert_eq!(
12445        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToFly) as usize - ptr as usize },
12446        1280usize,
12447        concat!(
12448            "Offset of field: ",
12449            stringify!(SSkirmishAICallback),
12450            "::",
12451            stringify!(UnitDef_isAbleToFly)
12452        )
12453    );
12454    assert_eq!(
12455        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToMove) as usize - ptr as usize },
12456        1288usize,
12457        concat!(
12458            "Offset of field: ",
12459            stringify!(SSkirmishAICallback),
12460            "::",
12461            stringify!(UnitDef_isAbleToMove)
12462        )
12463    );
12464    assert_eq!(
12465        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToHover) as usize - ptr as usize },
12466        1296usize,
12467        concat!(
12468            "Offset of field: ",
12469            stringify!(SSkirmishAICallback),
12470            "::",
12471            stringify!(UnitDef_isAbleToHover)
12472        )
12473    );
12474    assert_eq!(
12475        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isFloater) as usize - ptr as usize },
12476        1304usize,
12477        concat!(
12478            "Offset of field: ",
12479            stringify!(SSkirmishAICallback),
12480            "::",
12481            stringify!(UnitDef_isFloater)
12482        )
12483    );
12484    assert_eq!(
12485        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isBuilder) as usize - ptr as usize },
12486        1312usize,
12487        concat!(
12488            "Offset of field: ",
12489            stringify!(SSkirmishAICallback),
12490            "::",
12491            stringify!(UnitDef_isBuilder)
12492        )
12493    );
12494    assert_eq!(
12495        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isActivateWhenBuilt) as usize - ptr as usize },
12496        1320usize,
12497        concat!(
12498            "Offset of field: ",
12499            stringify!(SSkirmishAICallback),
12500            "::",
12501            stringify!(UnitDef_isActivateWhenBuilt)
12502        )
12503    );
12504    assert_eq!(
12505        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isOnOffable) as usize - ptr as usize },
12506        1328usize,
12507        concat!(
12508            "Offset of field: ",
12509            stringify!(SSkirmishAICallback),
12510            "::",
12511            stringify!(UnitDef_isOnOffable)
12512        )
12513    );
12514    assert_eq!(
12515        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isFullHealthFactory) as usize - ptr as usize },
12516        1336usize,
12517        concat!(
12518            "Offset of field: ",
12519            stringify!(SSkirmishAICallback),
12520            "::",
12521            stringify!(UnitDef_isFullHealthFactory)
12522        )
12523    );
12524    assert_eq!(
12525        unsafe {
12526            ::std::ptr::addr_of!((*ptr).UnitDef_isFactoryHeadingTakeoff) as usize - ptr as usize
12527        },
12528        1344usize,
12529        concat!(
12530            "Offset of field: ",
12531            stringify!(SSkirmishAICallback),
12532            "::",
12533            stringify!(UnitDef_isFactoryHeadingTakeoff)
12534        )
12535    );
12536    assert_eq!(
12537        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isReclaimable) as usize - ptr as usize },
12538        1352usize,
12539        concat!(
12540            "Offset of field: ",
12541            stringify!(SSkirmishAICallback),
12542            "::",
12543            stringify!(UnitDef_isReclaimable)
12544        )
12545    );
12546    assert_eq!(
12547        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isCapturable) as usize - ptr as usize },
12548        1360usize,
12549        concat!(
12550            "Offset of field: ",
12551            stringify!(SSkirmishAICallback),
12552            "::",
12553            stringify!(UnitDef_isCapturable)
12554        )
12555    );
12556    assert_eq!(
12557        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToRestore) as usize - ptr as usize },
12558        1368usize,
12559        concat!(
12560            "Offset of field: ",
12561            stringify!(SSkirmishAICallback),
12562            "::",
12563            stringify!(UnitDef_isAbleToRestore)
12564        )
12565    );
12566    assert_eq!(
12567        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToRepair) as usize - ptr as usize },
12568        1376usize,
12569        concat!(
12570            "Offset of field: ",
12571            stringify!(SSkirmishAICallback),
12572            "::",
12573            stringify!(UnitDef_isAbleToRepair)
12574        )
12575    );
12576    assert_eq!(
12577        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToSelfRepair) as usize - ptr as usize },
12578        1384usize,
12579        concat!(
12580            "Offset of field: ",
12581            stringify!(SSkirmishAICallback),
12582            "::",
12583            stringify!(UnitDef_isAbleToSelfRepair)
12584        )
12585    );
12586    assert_eq!(
12587        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToReclaim) as usize - ptr as usize },
12588        1392usize,
12589        concat!(
12590            "Offset of field: ",
12591            stringify!(SSkirmishAICallback),
12592            "::",
12593            stringify!(UnitDef_isAbleToReclaim)
12594        )
12595    );
12596    assert_eq!(
12597        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToAttack) as usize - ptr as usize },
12598        1400usize,
12599        concat!(
12600            "Offset of field: ",
12601            stringify!(SSkirmishAICallback),
12602            "::",
12603            stringify!(UnitDef_isAbleToAttack)
12604        )
12605    );
12606    assert_eq!(
12607        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToPatrol) as usize - ptr as usize },
12608        1408usize,
12609        concat!(
12610            "Offset of field: ",
12611            stringify!(SSkirmishAICallback),
12612            "::",
12613            stringify!(UnitDef_isAbleToPatrol)
12614        )
12615    );
12616    assert_eq!(
12617        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToFight) as usize - ptr as usize },
12618        1416usize,
12619        concat!(
12620            "Offset of field: ",
12621            stringify!(SSkirmishAICallback),
12622            "::",
12623            stringify!(UnitDef_isAbleToFight)
12624        )
12625    );
12626    assert_eq!(
12627        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToGuard) as usize - ptr as usize },
12628        1424usize,
12629        concat!(
12630            "Offset of field: ",
12631            stringify!(SSkirmishAICallback),
12632            "::",
12633            stringify!(UnitDef_isAbleToGuard)
12634        )
12635    );
12636    assert_eq!(
12637        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToAssist) as usize - ptr as usize },
12638        1432usize,
12639        concat!(
12640            "Offset of field: ",
12641            stringify!(SSkirmishAICallback),
12642            "::",
12643            stringify!(UnitDef_isAbleToAssist)
12644        )
12645    );
12646    assert_eq!(
12647        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAssistable) as usize - ptr as usize },
12648        1440usize,
12649        concat!(
12650            "Offset of field: ",
12651            stringify!(SSkirmishAICallback),
12652            "::",
12653            stringify!(UnitDef_isAssistable)
12654        )
12655    );
12656    assert_eq!(
12657        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToRepeat) as usize - ptr as usize },
12658        1448usize,
12659        concat!(
12660            "Offset of field: ",
12661            stringify!(SSkirmishAICallback),
12662            "::",
12663            stringify!(UnitDef_isAbleToRepeat)
12664        )
12665    );
12666    assert_eq!(
12667        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToFireControl) as usize - ptr as usize },
12668        1456usize,
12669        concat!(
12670            "Offset of field: ",
12671            stringify!(SSkirmishAICallback),
12672            "::",
12673            stringify!(UnitDef_isAbleToFireControl)
12674        )
12675    );
12676    assert_eq!(
12677        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getFireState) as usize - ptr as usize },
12678        1464usize,
12679        concat!(
12680            "Offset of field: ",
12681            stringify!(SSkirmishAICallback),
12682            "::",
12683            stringify!(UnitDef_getFireState)
12684        )
12685    );
12686    assert_eq!(
12687        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMoveState) as usize - ptr as usize },
12688        1472usize,
12689        concat!(
12690            "Offset of field: ",
12691            stringify!(SSkirmishAICallback),
12692            "::",
12693            stringify!(UnitDef_getMoveState)
12694        )
12695    );
12696    assert_eq!(
12697        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getWingDrag) as usize - ptr as usize },
12698        1480usize,
12699        concat!(
12700            "Offset of field: ",
12701            stringify!(SSkirmishAICallback),
12702            "::",
12703            stringify!(UnitDef_getWingDrag)
12704        )
12705    );
12706    assert_eq!(
12707        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getWingAngle) as usize - ptr as usize },
12708        1488usize,
12709        concat!(
12710            "Offset of field: ",
12711            stringify!(SSkirmishAICallback),
12712            "::",
12713            stringify!(UnitDef_getWingAngle)
12714        )
12715    );
12716    assert_eq!(
12717        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getFrontToSpeed) as usize - ptr as usize },
12718        1496usize,
12719        concat!(
12720            "Offset of field: ",
12721            stringify!(SSkirmishAICallback),
12722            "::",
12723            stringify!(UnitDef_getFrontToSpeed)
12724        )
12725    );
12726    assert_eq!(
12727        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getSpeedToFront) as usize - ptr as usize },
12728        1504usize,
12729        concat!(
12730            "Offset of field: ",
12731            stringify!(SSkirmishAICallback),
12732            "::",
12733            stringify!(UnitDef_getSpeedToFront)
12734        )
12735    );
12736    assert_eq!(
12737        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMyGravity) as usize - ptr as usize },
12738        1512usize,
12739        concat!(
12740            "Offset of field: ",
12741            stringify!(SSkirmishAICallback),
12742            "::",
12743            stringify!(UnitDef_getMyGravity)
12744        )
12745    );
12746    assert_eq!(
12747        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxBank) as usize - ptr as usize },
12748        1520usize,
12749        concat!(
12750            "Offset of field: ",
12751            stringify!(SSkirmishAICallback),
12752            "::",
12753            stringify!(UnitDef_getMaxBank)
12754        )
12755    );
12756    assert_eq!(
12757        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxPitch) as usize - ptr as usize },
12758        1528usize,
12759        concat!(
12760            "Offset of field: ",
12761            stringify!(SSkirmishAICallback),
12762            "::",
12763            stringify!(UnitDef_getMaxPitch)
12764        )
12765    );
12766    assert_eq!(
12767        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getTurnRadius) as usize - ptr as usize },
12768        1536usize,
12769        concat!(
12770            "Offset of field: ",
12771            stringify!(SSkirmishAICallback),
12772            "::",
12773            stringify!(UnitDef_getTurnRadius)
12774        )
12775    );
12776    assert_eq!(
12777        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getWantedHeight) as usize - ptr as usize },
12778        1544usize,
12779        concat!(
12780            "Offset of field: ",
12781            stringify!(SSkirmishAICallback),
12782            "::",
12783            stringify!(UnitDef_getWantedHeight)
12784        )
12785    );
12786    assert_eq!(
12787        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getVerticalSpeed) as usize - ptr as usize },
12788        1552usize,
12789        concat!(
12790            "Offset of field: ",
12791            stringify!(SSkirmishAICallback),
12792            "::",
12793            stringify!(UnitDef_getVerticalSpeed)
12794        )
12795    );
12796    assert_eq!(
12797        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isHoverAttack) as usize - ptr as usize },
12798        1560usize,
12799        concat!(
12800            "Offset of field: ",
12801            stringify!(SSkirmishAICallback),
12802            "::",
12803            stringify!(UnitDef_isHoverAttack)
12804        )
12805    );
12806    assert_eq!(
12807        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAirStrafe) as usize - ptr as usize },
12808        1568usize,
12809        concat!(
12810            "Offset of field: ",
12811            stringify!(SSkirmishAICallback),
12812            "::",
12813            stringify!(UnitDef_isAirStrafe)
12814        )
12815    );
12816    assert_eq!(
12817        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getDlHoverFactor) as usize - ptr as usize },
12818        1576usize,
12819        concat!(
12820            "Offset of field: ",
12821            stringify!(SSkirmishAICallback),
12822            "::",
12823            stringify!(UnitDef_getDlHoverFactor)
12824        )
12825    );
12826    assert_eq!(
12827        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxAcceleration) as usize - ptr as usize },
12828        1584usize,
12829        concat!(
12830            "Offset of field: ",
12831            stringify!(SSkirmishAICallback),
12832            "::",
12833            stringify!(UnitDef_getMaxAcceleration)
12834        )
12835    );
12836    assert_eq!(
12837        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxDeceleration) as usize - ptr as usize },
12838        1592usize,
12839        concat!(
12840            "Offset of field: ",
12841            stringify!(SSkirmishAICallback),
12842            "::",
12843            stringify!(UnitDef_getMaxDeceleration)
12844        )
12845    );
12846    assert_eq!(
12847        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxAileron) as usize - ptr as usize },
12848        1600usize,
12849        concat!(
12850            "Offset of field: ",
12851            stringify!(SSkirmishAICallback),
12852            "::",
12853            stringify!(UnitDef_getMaxAileron)
12854        )
12855    );
12856    assert_eq!(
12857        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxElevator) as usize - ptr as usize },
12858        1608usize,
12859        concat!(
12860            "Offset of field: ",
12861            stringify!(SSkirmishAICallback),
12862            "::",
12863            stringify!(UnitDef_getMaxElevator)
12864        )
12865    );
12866    assert_eq!(
12867        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxRudder) as usize - ptr as usize },
12868        1616usize,
12869        concat!(
12870            "Offset of field: ",
12871            stringify!(SSkirmishAICallback),
12872            "::",
12873            stringify!(UnitDef_getMaxRudder)
12874        )
12875    );
12876    assert_eq!(
12877        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getYardMap) as usize - ptr as usize },
12878        1624usize,
12879        concat!(
12880            "Offset of field: ",
12881            stringify!(SSkirmishAICallback),
12882            "::",
12883            stringify!(UnitDef_getYardMap)
12884        )
12885    );
12886    assert_eq!(
12887        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getXSize) as usize - ptr as usize },
12888        1632usize,
12889        concat!(
12890            "Offset of field: ",
12891            stringify!(SSkirmishAICallback),
12892            "::",
12893            stringify!(UnitDef_getXSize)
12894        )
12895    );
12896    assert_eq!(
12897        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getZSize) as usize - ptr as usize },
12898        1640usize,
12899        concat!(
12900            "Offset of field: ",
12901            stringify!(SSkirmishAICallback),
12902            "::",
12903            stringify!(UnitDef_getZSize)
12904        )
12905    );
12906    assert_eq!(
12907        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getLoadingRadius) as usize - ptr as usize },
12908        1648usize,
12909        concat!(
12910            "Offset of field: ",
12911            stringify!(SSkirmishAICallback),
12912            "::",
12913            stringify!(UnitDef_getLoadingRadius)
12914        )
12915    );
12916    assert_eq!(
12917        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getUnloadSpread) as usize - ptr as usize },
12918        1656usize,
12919        concat!(
12920            "Offset of field: ",
12921            stringify!(SSkirmishAICallback),
12922            "::",
12923            stringify!(UnitDef_getUnloadSpread)
12924        )
12925    );
12926    assert_eq!(
12927        unsafe {
12928            ::std::ptr::addr_of!((*ptr).UnitDef_getTransportCapacity) as usize - ptr as usize
12929        },
12930        1664usize,
12931        concat!(
12932            "Offset of field: ",
12933            stringify!(SSkirmishAICallback),
12934            "::",
12935            stringify!(UnitDef_getTransportCapacity)
12936        )
12937    );
12938    assert_eq!(
12939        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getTransportSize) as usize - ptr as usize },
12940        1672usize,
12941        concat!(
12942            "Offset of field: ",
12943            stringify!(SSkirmishAICallback),
12944            "::",
12945            stringify!(UnitDef_getTransportSize)
12946        )
12947    );
12948    assert_eq!(
12949        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMinTransportSize) as usize - ptr as usize },
12950        1680usize,
12951        concat!(
12952            "Offset of field: ",
12953            stringify!(SSkirmishAICallback),
12954            "::",
12955            stringify!(UnitDef_getMinTransportSize)
12956        )
12957    );
12958    assert_eq!(
12959        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAirBase) as usize - ptr as usize },
12960        1688usize,
12961        concat!(
12962            "Offset of field: ",
12963            stringify!(SSkirmishAICallback),
12964            "::",
12965            stringify!(UnitDef_isAirBase)
12966        )
12967    );
12968    assert_eq!(
12969        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isFirePlatform) as usize - ptr as usize },
12970        1696usize,
12971        concat!(
12972            "Offset of field: ",
12973            stringify!(SSkirmishAICallback),
12974            "::",
12975            stringify!(UnitDef_isFirePlatform)
12976        )
12977    );
12978    assert_eq!(
12979        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getTransportMass) as usize - ptr as usize },
12980        1704usize,
12981        concat!(
12982            "Offset of field: ",
12983            stringify!(SSkirmishAICallback),
12984            "::",
12985            stringify!(UnitDef_getTransportMass)
12986        )
12987    );
12988    assert_eq!(
12989        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMinTransportMass) as usize - ptr as usize },
12990        1712usize,
12991        concat!(
12992            "Offset of field: ",
12993            stringify!(SSkirmishAICallback),
12994            "::",
12995            stringify!(UnitDef_getMinTransportMass)
12996        )
12997    );
12998    assert_eq!(
12999        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isHoldSteady) as usize - ptr as usize },
13000        1720usize,
13001        concat!(
13002            "Offset of field: ",
13003            stringify!(SSkirmishAICallback),
13004            "::",
13005            stringify!(UnitDef_isHoldSteady)
13006        )
13007    );
13008    assert_eq!(
13009        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isReleaseHeld) as usize - ptr as usize },
13010        1728usize,
13011        concat!(
13012            "Offset of field: ",
13013            stringify!(SSkirmishAICallback),
13014            "::",
13015            stringify!(UnitDef_isReleaseHeld)
13016        )
13017    );
13018    assert_eq!(
13019        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isNotTransportable) as usize - ptr as usize },
13020        1736usize,
13021        concat!(
13022            "Offset of field: ",
13023            stringify!(SSkirmishAICallback),
13024            "::",
13025            stringify!(UnitDef_isNotTransportable)
13026        )
13027    );
13028    assert_eq!(
13029        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isTransportByEnemy) as usize - ptr as usize },
13030        1744usize,
13031        concat!(
13032            "Offset of field: ",
13033            stringify!(SSkirmishAICallback),
13034            "::",
13035            stringify!(UnitDef_isTransportByEnemy)
13036        )
13037    );
13038    assert_eq!(
13039        unsafe {
13040            ::std::ptr::addr_of!((*ptr).UnitDef_getTransportUnloadMethod) as usize - ptr as usize
13041        },
13042        1752usize,
13043        concat!(
13044            "Offset of field: ",
13045            stringify!(SSkirmishAICallback),
13046            "::",
13047            stringify!(UnitDef_getTransportUnloadMethod)
13048        )
13049    );
13050    assert_eq!(
13051        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getFallSpeed) as usize - ptr as usize },
13052        1760usize,
13053        concat!(
13054            "Offset of field: ",
13055            stringify!(SSkirmishAICallback),
13056            "::",
13057            stringify!(UnitDef_getFallSpeed)
13058        )
13059    );
13060    assert_eq!(
13061        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getUnitFallSpeed) as usize - ptr as usize },
13062        1768usize,
13063        concat!(
13064            "Offset of field: ",
13065            stringify!(SSkirmishAICallback),
13066            "::",
13067            stringify!(UnitDef_getUnitFallSpeed)
13068        )
13069    );
13070    assert_eq!(
13071        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToCloak) as usize - ptr as usize },
13072        1776usize,
13073        concat!(
13074            "Offset of field: ",
13075            stringify!(SSkirmishAICallback),
13076            "::",
13077            stringify!(UnitDef_isAbleToCloak)
13078        )
13079    );
13080    assert_eq!(
13081        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isStartCloaked) as usize - ptr as usize },
13082        1784usize,
13083        concat!(
13084            "Offset of field: ",
13085            stringify!(SSkirmishAICallback),
13086            "::",
13087            stringify!(UnitDef_isStartCloaked)
13088        )
13089    );
13090    assert_eq!(
13091        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getCloakCost) as usize - ptr as usize },
13092        1792usize,
13093        concat!(
13094            "Offset of field: ",
13095            stringify!(SSkirmishAICallback),
13096            "::",
13097            stringify!(UnitDef_getCloakCost)
13098        )
13099    );
13100    assert_eq!(
13101        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getCloakCostMoving) as usize - ptr as usize },
13102        1800usize,
13103        concat!(
13104            "Offset of field: ",
13105            stringify!(SSkirmishAICallback),
13106            "::",
13107            stringify!(UnitDef_getCloakCostMoving)
13108        )
13109    );
13110    assert_eq!(
13111        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getDecloakDistance) as usize - ptr as usize },
13112        1808usize,
13113        concat!(
13114            "Offset of field: ",
13115            stringify!(SSkirmishAICallback),
13116            "::",
13117            stringify!(UnitDef_getDecloakDistance)
13118        )
13119    );
13120    assert_eq!(
13121        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isDecloakSpherical) as usize - ptr as usize },
13122        1816usize,
13123        concat!(
13124            "Offset of field: ",
13125            stringify!(SSkirmishAICallback),
13126            "::",
13127            stringify!(UnitDef_isDecloakSpherical)
13128        )
13129    );
13130    assert_eq!(
13131        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isDecloakOnFire) as usize - ptr as usize },
13132        1824usize,
13133        concat!(
13134            "Offset of field: ",
13135            stringify!(SSkirmishAICallback),
13136            "::",
13137            stringify!(UnitDef_isDecloakOnFire)
13138        )
13139    );
13140    assert_eq!(
13141        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToKamikaze) as usize - ptr as usize },
13142        1832usize,
13143        concat!(
13144            "Offset of field: ",
13145            stringify!(SSkirmishAICallback),
13146            "::",
13147            stringify!(UnitDef_isAbleToKamikaze)
13148        )
13149    );
13150    assert_eq!(
13151        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getKamikazeDist) as usize - ptr as usize },
13152        1840usize,
13153        concat!(
13154            "Offset of field: ",
13155            stringify!(SSkirmishAICallback),
13156            "::",
13157            stringify!(UnitDef_getKamikazeDist)
13158        )
13159    );
13160    assert_eq!(
13161        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isTargetingFacility) as usize - ptr as usize },
13162        1848usize,
13163        concat!(
13164            "Offset of field: ",
13165            stringify!(SSkirmishAICallback),
13166            "::",
13167            stringify!(UnitDef_isTargetingFacility)
13168        )
13169    );
13170    assert_eq!(
13171        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_canManualFire) as usize - ptr as usize },
13172        1856usize,
13173        concat!(
13174            "Offset of field: ",
13175            stringify!(SSkirmishAICallback),
13176            "::",
13177            stringify!(UnitDef_canManualFire)
13178        )
13179    );
13180    assert_eq!(
13181        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isNeedGeo) as usize - ptr as usize },
13182        1864usize,
13183        concat!(
13184            "Offset of field: ",
13185            stringify!(SSkirmishAICallback),
13186            "::",
13187            stringify!(UnitDef_isNeedGeo)
13188        )
13189    );
13190    assert_eq!(
13191        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isFeature) as usize - ptr as usize },
13192        1872usize,
13193        concat!(
13194            "Offset of field: ",
13195            stringify!(SSkirmishAICallback),
13196            "::",
13197            stringify!(UnitDef_isFeature)
13198        )
13199    );
13200    assert_eq!(
13201        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isHideDamage) as usize - ptr as usize },
13202        1880usize,
13203        concat!(
13204            "Offset of field: ",
13205            stringify!(SSkirmishAICallback),
13206            "::",
13207            stringify!(UnitDef_isHideDamage)
13208        )
13209    );
13210    assert_eq!(
13211        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isShowPlayerName) as usize - ptr as usize },
13212        1888usize,
13213        concat!(
13214            "Offset of field: ",
13215            stringify!(SSkirmishAICallback),
13216            "::",
13217            stringify!(UnitDef_isShowPlayerName)
13218        )
13219    );
13220    assert_eq!(
13221        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToResurrect) as usize - ptr as usize },
13222        1896usize,
13223        concat!(
13224            "Offset of field: ",
13225            stringify!(SSkirmishAICallback),
13226            "::",
13227            stringify!(UnitDef_isAbleToResurrect)
13228        )
13229    );
13230    assert_eq!(
13231        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToCapture) as usize - ptr as usize },
13232        1904usize,
13233        concat!(
13234            "Offset of field: ",
13235            stringify!(SSkirmishAICallback),
13236            "::",
13237            stringify!(UnitDef_isAbleToCapture)
13238        )
13239    );
13240    assert_eq!(
13241        unsafe {
13242            ::std::ptr::addr_of!((*ptr).UnitDef_getHighTrajectoryType) as usize - ptr as usize
13243        },
13244        1912usize,
13245        concat!(
13246            "Offset of field: ",
13247            stringify!(SSkirmishAICallback),
13248            "::",
13249            stringify!(UnitDef_getHighTrajectoryType)
13250        )
13251    );
13252    assert_eq!(
13253        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getNoChaseCategory) as usize - ptr as usize },
13254        1920usize,
13255        concat!(
13256            "Offset of field: ",
13257            stringify!(SSkirmishAICallback),
13258            "::",
13259            stringify!(UnitDef_getNoChaseCategory)
13260        )
13261    );
13262    assert_eq!(
13263        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToDropFlare) as usize - ptr as usize },
13264        1928usize,
13265        concat!(
13266            "Offset of field: ",
13267            stringify!(SSkirmishAICallback),
13268            "::",
13269            stringify!(UnitDef_isAbleToDropFlare)
13270        )
13271    );
13272    assert_eq!(
13273        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getFlareReloadTime) as usize - ptr as usize },
13274        1936usize,
13275        concat!(
13276            "Offset of field: ",
13277            stringify!(SSkirmishAICallback),
13278            "::",
13279            stringify!(UnitDef_getFlareReloadTime)
13280        )
13281    );
13282    assert_eq!(
13283        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getFlareEfficiency) as usize - ptr as usize },
13284        1944usize,
13285        concat!(
13286            "Offset of field: ",
13287            stringify!(SSkirmishAICallback),
13288            "::",
13289            stringify!(UnitDef_getFlareEfficiency)
13290        )
13291    );
13292    assert_eq!(
13293        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getFlareDelay) as usize - ptr as usize },
13294        1952usize,
13295        concat!(
13296            "Offset of field: ",
13297            stringify!(SSkirmishAICallback),
13298            "::",
13299            stringify!(UnitDef_getFlareDelay)
13300        )
13301    );
13302    assert_eq!(
13303        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getFlareDropVector) as usize - ptr as usize },
13304        1960usize,
13305        concat!(
13306            "Offset of field: ",
13307            stringify!(SSkirmishAICallback),
13308            "::",
13309            stringify!(UnitDef_getFlareDropVector)
13310        )
13311    );
13312    assert_eq!(
13313        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getFlareTime) as usize - ptr as usize },
13314        1968usize,
13315        concat!(
13316            "Offset of field: ",
13317            stringify!(SSkirmishAICallback),
13318            "::",
13319            stringify!(UnitDef_getFlareTime)
13320        )
13321    );
13322    assert_eq!(
13323        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getFlareSalvoSize) as usize - ptr as usize },
13324        1976usize,
13325        concat!(
13326            "Offset of field: ",
13327            stringify!(SSkirmishAICallback),
13328            "::",
13329            stringify!(UnitDef_getFlareSalvoSize)
13330        )
13331    );
13332    assert_eq!(
13333        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getFlareSalvoDelay) as usize - ptr as usize },
13334        1984usize,
13335        concat!(
13336            "Offset of field: ",
13337            stringify!(SSkirmishAICallback),
13338            "::",
13339            stringify!(UnitDef_getFlareSalvoDelay)
13340        )
13341    );
13342    assert_eq!(
13343        unsafe {
13344            ::std::ptr::addr_of!((*ptr).UnitDef_isAbleToLoopbackAttack) as usize - ptr as usize
13345        },
13346        1992usize,
13347        concat!(
13348            "Offset of field: ",
13349            stringify!(SSkirmishAICallback),
13350            "::",
13351            stringify!(UnitDef_isAbleToLoopbackAttack)
13352        )
13353    );
13354    assert_eq!(
13355        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isLevelGround) as usize - ptr as usize },
13356        2000usize,
13357        concat!(
13358            "Offset of field: ",
13359            stringify!(SSkirmishAICallback),
13360            "::",
13361            stringify!(UnitDef_isLevelGround)
13362        )
13363    );
13364    assert_eq!(
13365        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getMaxThisUnit) as usize - ptr as usize },
13366        2008usize,
13367        concat!(
13368            "Offset of field: ",
13369            stringify!(SSkirmishAICallback),
13370            "::",
13371            stringify!(UnitDef_getMaxThisUnit)
13372        )
13373    );
13374    assert_eq!(
13375        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getDecoyDef) as usize - ptr as usize },
13376        2016usize,
13377        concat!(
13378            "Offset of field: ",
13379            stringify!(SSkirmishAICallback),
13380            "::",
13381            stringify!(UnitDef_getDecoyDef)
13382        )
13383    );
13384    assert_eq!(
13385        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isDontLand) as usize - ptr as usize },
13386        2024usize,
13387        concat!(
13388            "Offset of field: ",
13389            stringify!(SSkirmishAICallback),
13390            "::",
13391            stringify!(UnitDef_isDontLand)
13392        )
13393    );
13394    assert_eq!(
13395        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getShieldDef) as usize - ptr as usize },
13396        2032usize,
13397        concat!(
13398            "Offset of field: ",
13399            stringify!(SSkirmishAICallback),
13400            "::",
13401            stringify!(UnitDef_getShieldDef)
13402        )
13403    );
13404    assert_eq!(
13405        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getStockpileDef) as usize - ptr as usize },
13406        2040usize,
13407        concat!(
13408            "Offset of field: ",
13409            stringify!(SSkirmishAICallback),
13410            "::",
13411            stringify!(UnitDef_getStockpileDef)
13412        )
13413    );
13414    assert_eq!(
13415        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getBuildOptions) as usize - ptr as usize },
13416        2048usize,
13417        concat!(
13418            "Offset of field: ",
13419            stringify!(SSkirmishAICallback),
13420            "::",
13421            stringify!(UnitDef_getBuildOptions)
13422        )
13423    );
13424    assert_eq!(
13425        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getCustomParams) as usize - ptr as usize },
13426        2056usize,
13427        concat!(
13428            "Offset of field: ",
13429            stringify!(SSkirmishAICallback),
13430            "::",
13431            stringify!(UnitDef_getCustomParams)
13432        )
13433    );
13434    assert_eq!(
13435        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_isMoveDataAvailable) as usize - ptr as usize },
13436        2064usize,
13437        concat!(
13438            "Offset of field: ",
13439            stringify!(SSkirmishAICallback),
13440            "::",
13441            stringify!(UnitDef_isMoveDataAvailable)
13442        )
13443    );
13444    assert_eq!(
13445        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getXSize) as usize - ptr as usize },
13446        2072usize,
13447        concat!(
13448            "Offset of field: ",
13449            stringify!(SSkirmishAICallback),
13450            "::",
13451            stringify!(UnitDef_MoveData_getXSize)
13452        )
13453    );
13454    assert_eq!(
13455        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getZSize) as usize - ptr as usize },
13456        2080usize,
13457        concat!(
13458            "Offset of field: ",
13459            stringify!(SSkirmishAICallback),
13460            "::",
13461            stringify!(UnitDef_MoveData_getZSize)
13462        )
13463    );
13464    assert_eq!(
13465        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getDepth) as usize - ptr as usize },
13466        2088usize,
13467        concat!(
13468            "Offset of field: ",
13469            stringify!(SSkirmishAICallback),
13470            "::",
13471            stringify!(UnitDef_MoveData_getDepth)
13472        )
13473    );
13474    assert_eq!(
13475        unsafe {
13476            ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getMaxSlope) as usize - ptr as usize
13477        },
13478        2096usize,
13479        concat!(
13480            "Offset of field: ",
13481            stringify!(SSkirmishAICallback),
13482            "::",
13483            stringify!(UnitDef_MoveData_getMaxSlope)
13484        )
13485    );
13486    assert_eq!(
13487        unsafe {
13488            ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getSlopeMod) as usize - ptr as usize
13489        },
13490        2104usize,
13491        concat!(
13492            "Offset of field: ",
13493            stringify!(SSkirmishAICallback),
13494            "::",
13495            stringify!(UnitDef_MoveData_getSlopeMod)
13496        )
13497    );
13498    assert_eq!(
13499        unsafe {
13500            ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getDepthMod) as usize - ptr as usize
13501        },
13502        2112usize,
13503        concat!(
13504            "Offset of field: ",
13505            stringify!(SSkirmishAICallback),
13506            "::",
13507            stringify!(UnitDef_MoveData_getDepthMod)
13508        )
13509    );
13510    assert_eq!(
13511        unsafe {
13512            ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getPathType) as usize - ptr as usize
13513        },
13514        2120usize,
13515        concat!(
13516            "Offset of field: ",
13517            stringify!(SSkirmishAICallback),
13518            "::",
13519            stringify!(UnitDef_MoveData_getPathType)
13520        )
13521    );
13522    assert_eq!(
13523        unsafe {
13524            ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getCrushStrength) as usize - ptr as usize
13525        },
13526        2128usize,
13527        concat!(
13528            "Offset of field: ",
13529            stringify!(SSkirmishAICallback),
13530            "::",
13531            stringify!(UnitDef_MoveData_getCrushStrength)
13532        )
13533    );
13534    assert_eq!(
13535        unsafe {
13536            ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getSpeedModClass) as usize - ptr as usize
13537        },
13538        2136usize,
13539        concat!(
13540            "Offset of field: ",
13541            stringify!(SSkirmishAICallback),
13542            "::",
13543            stringify!(UnitDef_MoveData_getSpeedModClass)
13544        )
13545    );
13546    assert_eq!(
13547        unsafe {
13548            ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getTerrainClass) as usize - ptr as usize
13549        },
13550        2144usize,
13551        concat!(
13552            "Offset of field: ",
13553            stringify!(SSkirmishAICallback),
13554            "::",
13555            stringify!(UnitDef_MoveData_getTerrainClass)
13556        )
13557    );
13558    assert_eq!(
13559        unsafe {
13560            ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getFollowGround) as usize - ptr as usize
13561        },
13562        2152usize,
13563        concat!(
13564            "Offset of field: ",
13565            stringify!(SSkirmishAICallback),
13566            "::",
13567            stringify!(UnitDef_MoveData_getFollowGround)
13568        )
13569    );
13570    assert_eq!(
13571        unsafe {
13572            ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_isSubMarine) as usize - ptr as usize
13573        },
13574        2160usize,
13575        concat!(
13576            "Offset of field: ",
13577            stringify!(SSkirmishAICallback),
13578            "::",
13579            stringify!(UnitDef_MoveData_isSubMarine)
13580        )
13581    );
13582    assert_eq!(
13583        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_MoveData_getName) as usize - ptr as usize },
13584        2168usize,
13585        concat!(
13586            "Offset of field: ",
13587            stringify!(SSkirmishAICallback),
13588            "::",
13589            stringify!(UnitDef_MoveData_getName)
13590        )
13591    );
13592    assert_eq!(
13593        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_getWeaponMounts) as usize - ptr as usize },
13594        2176usize,
13595        concat!(
13596            "Offset of field: ",
13597            stringify!(SSkirmishAICallback),
13598            "::",
13599            stringify!(UnitDef_getWeaponMounts)
13600        )
13601    );
13602    assert_eq!(
13603        unsafe { ::std::ptr::addr_of!((*ptr).UnitDef_WeaponMount_getName) as usize - ptr as usize },
13604        2184usize,
13605        concat!(
13606            "Offset of field: ",
13607            stringify!(SSkirmishAICallback),
13608            "::",
13609            stringify!(UnitDef_WeaponMount_getName)
13610        )
13611    );
13612    assert_eq!(
13613        unsafe {
13614            ::std::ptr::addr_of!((*ptr).UnitDef_WeaponMount_getWeaponDef) as usize - ptr as usize
13615        },
13616        2192usize,
13617        concat!(
13618            "Offset of field: ",
13619            stringify!(SSkirmishAICallback),
13620            "::",
13621            stringify!(UnitDef_WeaponMount_getWeaponDef)
13622        )
13623    );
13624    assert_eq!(
13625        unsafe {
13626            ::std::ptr::addr_of!((*ptr).UnitDef_WeaponMount_getSlavedTo) as usize - ptr as usize
13627        },
13628        2200usize,
13629        concat!(
13630            "Offset of field: ",
13631            stringify!(SSkirmishAICallback),
13632            "::",
13633            stringify!(UnitDef_WeaponMount_getSlavedTo)
13634        )
13635    );
13636    assert_eq!(
13637        unsafe {
13638            ::std::ptr::addr_of!((*ptr).UnitDef_WeaponMount_getMainDir) as usize - ptr as usize
13639        },
13640        2208usize,
13641        concat!(
13642            "Offset of field: ",
13643            stringify!(SSkirmishAICallback),
13644            "::",
13645            stringify!(UnitDef_WeaponMount_getMainDir)
13646        )
13647    );
13648    assert_eq!(
13649        unsafe {
13650            ::std::ptr::addr_of!((*ptr).UnitDef_WeaponMount_getMaxAngleDif) as usize - ptr as usize
13651        },
13652        2216usize,
13653        concat!(
13654            "Offset of field: ",
13655            stringify!(SSkirmishAICallback),
13656            "::",
13657            stringify!(UnitDef_WeaponMount_getMaxAngleDif)
13658        )
13659    );
13660    assert_eq!(
13661        unsafe {
13662            ::std::ptr::addr_of!((*ptr).UnitDef_WeaponMount_getBadTargetCategory) as usize
13663                - ptr as usize
13664        },
13665        2224usize,
13666        concat!(
13667            "Offset of field: ",
13668            stringify!(SSkirmishAICallback),
13669            "::",
13670            stringify!(UnitDef_WeaponMount_getBadTargetCategory)
13671        )
13672    );
13673    assert_eq!(
13674        unsafe {
13675            ::std::ptr::addr_of!((*ptr).UnitDef_WeaponMount_getOnlyTargetCategory) as usize
13676                - ptr as usize
13677        },
13678        2232usize,
13679        concat!(
13680            "Offset of field: ",
13681            stringify!(SSkirmishAICallback),
13682            "::",
13683            stringify!(UnitDef_WeaponMount_getOnlyTargetCategory)
13684        )
13685    );
13686    assert_eq!(
13687        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getLimit) as usize - ptr as usize },
13688        2240usize,
13689        concat!(
13690            "Offset of field: ",
13691            stringify!(SSkirmishAICallback),
13692            "::",
13693            stringify!(Unit_getLimit)
13694        )
13695    );
13696    assert_eq!(
13697        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getMax) as usize - ptr as usize },
13698        2248usize,
13699        concat!(
13700            "Offset of field: ",
13701            stringify!(SSkirmishAICallback),
13702            "::",
13703            stringify!(Unit_getMax)
13704        )
13705    );
13706    assert_eq!(
13707        unsafe { ::std::ptr::addr_of!((*ptr).getEnemyUnits) as usize - ptr as usize },
13708        2256usize,
13709        concat!(
13710            "Offset of field: ",
13711            stringify!(SSkirmishAICallback),
13712            "::",
13713            stringify!(getEnemyUnits)
13714        )
13715    );
13716    assert_eq!(
13717        unsafe { ::std::ptr::addr_of!((*ptr).getEnemyUnitsIn) as usize - ptr as usize },
13718        2264usize,
13719        concat!(
13720            "Offset of field: ",
13721            stringify!(SSkirmishAICallback),
13722            "::",
13723            stringify!(getEnemyUnitsIn)
13724        )
13725    );
13726    assert_eq!(
13727        unsafe { ::std::ptr::addr_of!((*ptr).getEnemyUnitsInRadarAndLos) as usize - ptr as usize },
13728        2272usize,
13729        concat!(
13730            "Offset of field: ",
13731            stringify!(SSkirmishAICallback),
13732            "::",
13733            stringify!(getEnemyUnitsInRadarAndLos)
13734        )
13735    );
13736    assert_eq!(
13737        unsafe { ::std::ptr::addr_of!((*ptr).getFriendlyUnits) as usize - ptr as usize },
13738        2280usize,
13739        concat!(
13740            "Offset of field: ",
13741            stringify!(SSkirmishAICallback),
13742            "::",
13743            stringify!(getFriendlyUnits)
13744        )
13745    );
13746    assert_eq!(
13747        unsafe { ::std::ptr::addr_of!((*ptr).getFriendlyUnitsIn) as usize - ptr as usize },
13748        2288usize,
13749        concat!(
13750            "Offset of field: ",
13751            stringify!(SSkirmishAICallback),
13752            "::",
13753            stringify!(getFriendlyUnitsIn)
13754        )
13755    );
13756    assert_eq!(
13757        unsafe { ::std::ptr::addr_of!((*ptr).getNeutralUnits) as usize - ptr as usize },
13758        2296usize,
13759        concat!(
13760            "Offset of field: ",
13761            stringify!(SSkirmishAICallback),
13762            "::",
13763            stringify!(getNeutralUnits)
13764        )
13765    );
13766    assert_eq!(
13767        unsafe { ::std::ptr::addr_of!((*ptr).getNeutralUnitsIn) as usize - ptr as usize },
13768        2304usize,
13769        concat!(
13770            "Offset of field: ",
13771            stringify!(SSkirmishAICallback),
13772            "::",
13773            stringify!(getNeutralUnitsIn)
13774        )
13775    );
13776    assert_eq!(
13777        unsafe { ::std::ptr::addr_of!((*ptr).getTeamUnits) as usize - ptr as usize },
13778        2312usize,
13779        concat!(
13780            "Offset of field: ",
13781            stringify!(SSkirmishAICallback),
13782            "::",
13783            stringify!(getTeamUnits)
13784        )
13785    );
13786    assert_eq!(
13787        unsafe { ::std::ptr::addr_of!((*ptr).getSelectedUnits) as usize - ptr as usize },
13788        2320usize,
13789        concat!(
13790            "Offset of field: ",
13791            stringify!(SSkirmishAICallback),
13792            "::",
13793            stringify!(getSelectedUnits)
13794        )
13795    );
13796    assert_eq!(
13797        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getDef) as usize - ptr as usize },
13798        2328usize,
13799        concat!(
13800            "Offset of field: ",
13801            stringify!(SSkirmishAICallback),
13802            "::",
13803            stringify!(Unit_getDef)
13804        )
13805    );
13806    assert_eq!(
13807        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getRulesParamFloat) as usize - ptr as usize },
13808        2336usize,
13809        concat!(
13810            "Offset of field: ",
13811            stringify!(SSkirmishAICallback),
13812            "::",
13813            stringify!(Unit_getRulesParamFloat)
13814        )
13815    );
13816    assert_eq!(
13817        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getRulesParamString) as usize - ptr as usize },
13818        2344usize,
13819        concat!(
13820            "Offset of field: ",
13821            stringify!(SSkirmishAICallback),
13822            "::",
13823            stringify!(Unit_getRulesParamString)
13824        )
13825    );
13826    assert_eq!(
13827        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getTeam) as usize - ptr as usize },
13828        2352usize,
13829        concat!(
13830            "Offset of field: ",
13831            stringify!(SSkirmishAICallback),
13832            "::",
13833            stringify!(Unit_getTeam)
13834        )
13835    );
13836    assert_eq!(
13837        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getAllyTeam) as usize - ptr as usize },
13838        2360usize,
13839        concat!(
13840            "Offset of field: ",
13841            stringify!(SSkirmishAICallback),
13842            "::",
13843            stringify!(Unit_getAllyTeam)
13844        )
13845    );
13846    assert_eq!(
13847        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getStockpile) as usize - ptr as usize },
13848        2368usize,
13849        concat!(
13850            "Offset of field: ",
13851            stringify!(SSkirmishAICallback),
13852            "::",
13853            stringify!(Unit_getStockpile)
13854        )
13855    );
13856    assert_eq!(
13857        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getStockpileQueued) as usize - ptr as usize },
13858        2376usize,
13859        concat!(
13860            "Offset of field: ",
13861            stringify!(SSkirmishAICallback),
13862            "::",
13863            stringify!(Unit_getStockpileQueued)
13864        )
13865    );
13866    assert_eq!(
13867        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getMaxSpeed) as usize - ptr as usize },
13868        2384usize,
13869        concat!(
13870            "Offset of field: ",
13871            stringify!(SSkirmishAICallback),
13872            "::",
13873            stringify!(Unit_getMaxSpeed)
13874        )
13875    );
13876    assert_eq!(
13877        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getMaxRange) as usize - ptr as usize },
13878        2392usize,
13879        concat!(
13880            "Offset of field: ",
13881            stringify!(SSkirmishAICallback),
13882            "::",
13883            stringify!(Unit_getMaxRange)
13884        )
13885    );
13886    assert_eq!(
13887        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getMaxHealth) as usize - ptr as usize },
13888        2400usize,
13889        concat!(
13890            "Offset of field: ",
13891            stringify!(SSkirmishAICallback),
13892            "::",
13893            stringify!(Unit_getMaxHealth)
13894        )
13895    );
13896    assert_eq!(
13897        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getExperience) as usize - ptr as usize },
13898        2408usize,
13899        concat!(
13900            "Offset of field: ",
13901            stringify!(SSkirmishAICallback),
13902            "::",
13903            stringify!(Unit_getExperience)
13904        )
13905    );
13906    assert_eq!(
13907        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getGroup) as usize - ptr as usize },
13908        2416usize,
13909        concat!(
13910            "Offset of field: ",
13911            stringify!(SSkirmishAICallback),
13912            "::",
13913            stringify!(Unit_getGroup)
13914        )
13915    );
13916    assert_eq!(
13917        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getCurrentCommands) as usize - ptr as usize },
13918        2424usize,
13919        concat!(
13920            "Offset of field: ",
13921            stringify!(SSkirmishAICallback),
13922            "::",
13923            stringify!(Unit_getCurrentCommands)
13924        )
13925    );
13926    assert_eq!(
13927        unsafe { ::std::ptr::addr_of!((*ptr).Unit_CurrentCommand_getType) as usize - ptr as usize },
13928        2432usize,
13929        concat!(
13930            "Offset of field: ",
13931            stringify!(SSkirmishAICallback),
13932            "::",
13933            stringify!(Unit_CurrentCommand_getType)
13934        )
13935    );
13936    assert_eq!(
13937        unsafe { ::std::ptr::addr_of!((*ptr).Unit_CurrentCommand_getId) as usize - ptr as usize },
13938        2440usize,
13939        concat!(
13940            "Offset of field: ",
13941            stringify!(SSkirmishAICallback),
13942            "::",
13943            stringify!(Unit_CurrentCommand_getId)
13944        )
13945    );
13946    assert_eq!(
13947        unsafe {
13948            ::std::ptr::addr_of!((*ptr).Unit_CurrentCommand_getOptions) as usize - ptr as usize
13949        },
13950        2448usize,
13951        concat!(
13952            "Offset of field: ",
13953            stringify!(SSkirmishAICallback),
13954            "::",
13955            stringify!(Unit_CurrentCommand_getOptions)
13956        )
13957    );
13958    assert_eq!(
13959        unsafe { ::std::ptr::addr_of!((*ptr).Unit_CurrentCommand_getTag) as usize - ptr as usize },
13960        2456usize,
13961        concat!(
13962            "Offset of field: ",
13963            stringify!(SSkirmishAICallback),
13964            "::",
13965            stringify!(Unit_CurrentCommand_getTag)
13966        )
13967    );
13968    assert_eq!(
13969        unsafe {
13970            ::std::ptr::addr_of!((*ptr).Unit_CurrentCommand_getTimeOut) as usize - ptr as usize
13971        },
13972        2464usize,
13973        concat!(
13974            "Offset of field: ",
13975            stringify!(SSkirmishAICallback),
13976            "::",
13977            stringify!(Unit_CurrentCommand_getTimeOut)
13978        )
13979    );
13980    assert_eq!(
13981        unsafe {
13982            ::std::ptr::addr_of!((*ptr).Unit_CurrentCommand_getParams) as usize - ptr as usize
13983        },
13984        2472usize,
13985        concat!(
13986            "Offset of field: ",
13987            stringify!(SSkirmishAICallback),
13988            "::",
13989            stringify!(Unit_CurrentCommand_getParams)
13990        )
13991    );
13992    assert_eq!(
13993        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getSupportedCommands) as usize - ptr as usize },
13994        2480usize,
13995        concat!(
13996            "Offset of field: ",
13997            stringify!(SSkirmishAICallback),
13998            "::",
13999            stringify!(Unit_getSupportedCommands)
14000        )
14001    );
14002    assert_eq!(
14003        unsafe { ::std::ptr::addr_of!((*ptr).Unit_SupportedCommand_getId) as usize - ptr as usize },
14004        2488usize,
14005        concat!(
14006            "Offset of field: ",
14007            stringify!(SSkirmishAICallback),
14008            "::",
14009            stringify!(Unit_SupportedCommand_getId)
14010        )
14011    );
14012    assert_eq!(
14013        unsafe {
14014            ::std::ptr::addr_of!((*ptr).Unit_SupportedCommand_getName) as usize - ptr as usize
14015        },
14016        2496usize,
14017        concat!(
14018            "Offset of field: ",
14019            stringify!(SSkirmishAICallback),
14020            "::",
14021            stringify!(Unit_SupportedCommand_getName)
14022        )
14023    );
14024    assert_eq!(
14025        unsafe {
14026            ::std::ptr::addr_of!((*ptr).Unit_SupportedCommand_getToolTip) as usize - ptr as usize
14027        },
14028        2504usize,
14029        concat!(
14030            "Offset of field: ",
14031            stringify!(SSkirmishAICallback),
14032            "::",
14033            stringify!(Unit_SupportedCommand_getToolTip)
14034        )
14035    );
14036    assert_eq!(
14037        unsafe {
14038            ::std::ptr::addr_of!((*ptr).Unit_SupportedCommand_isShowUnique) as usize - ptr as usize
14039        },
14040        2512usize,
14041        concat!(
14042            "Offset of field: ",
14043            stringify!(SSkirmishAICallback),
14044            "::",
14045            stringify!(Unit_SupportedCommand_isShowUnique)
14046        )
14047    );
14048    assert_eq!(
14049        unsafe {
14050            ::std::ptr::addr_of!((*ptr).Unit_SupportedCommand_isDisabled) as usize - ptr as usize
14051        },
14052        2520usize,
14053        concat!(
14054            "Offset of field: ",
14055            stringify!(SSkirmishAICallback),
14056            "::",
14057            stringify!(Unit_SupportedCommand_isDisabled)
14058        )
14059    );
14060    assert_eq!(
14061        unsafe {
14062            ::std::ptr::addr_of!((*ptr).Unit_SupportedCommand_getParams) as usize - ptr as usize
14063        },
14064        2528usize,
14065        concat!(
14066            "Offset of field: ",
14067            stringify!(SSkirmishAICallback),
14068            "::",
14069            stringify!(Unit_SupportedCommand_getParams)
14070        )
14071    );
14072    assert_eq!(
14073        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getHealth) as usize - ptr as usize },
14074        2536usize,
14075        concat!(
14076            "Offset of field: ",
14077            stringify!(SSkirmishAICallback),
14078            "::",
14079            stringify!(Unit_getHealth)
14080        )
14081    );
14082    assert_eq!(
14083        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getParalyzeDamage) as usize - ptr as usize },
14084        2544usize,
14085        concat!(
14086            "Offset of field: ",
14087            stringify!(SSkirmishAICallback),
14088            "::",
14089            stringify!(Unit_getParalyzeDamage)
14090        )
14091    );
14092    assert_eq!(
14093        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getCaptureProgress) as usize - ptr as usize },
14094        2552usize,
14095        concat!(
14096            "Offset of field: ",
14097            stringify!(SSkirmishAICallback),
14098            "::",
14099            stringify!(Unit_getCaptureProgress)
14100        )
14101    );
14102    assert_eq!(
14103        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getBuildProgress) as usize - ptr as usize },
14104        2560usize,
14105        concat!(
14106            "Offset of field: ",
14107            stringify!(SSkirmishAICallback),
14108            "::",
14109            stringify!(Unit_getBuildProgress)
14110        )
14111    );
14112    assert_eq!(
14113        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getSpeed) as usize - ptr as usize },
14114        2568usize,
14115        concat!(
14116            "Offset of field: ",
14117            stringify!(SSkirmishAICallback),
14118            "::",
14119            stringify!(Unit_getSpeed)
14120        )
14121    );
14122    assert_eq!(
14123        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getPower) as usize - ptr as usize },
14124        2576usize,
14125        concat!(
14126            "Offset of field: ",
14127            stringify!(SSkirmishAICallback),
14128            "::",
14129            stringify!(Unit_getPower)
14130        )
14131    );
14132    assert_eq!(
14133        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getResourceUse) as usize - ptr as usize },
14134        2584usize,
14135        concat!(
14136            "Offset of field: ",
14137            stringify!(SSkirmishAICallback),
14138            "::",
14139            stringify!(Unit_getResourceUse)
14140        )
14141    );
14142    assert_eq!(
14143        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getResourceMake) as usize - ptr as usize },
14144        2592usize,
14145        concat!(
14146            "Offset of field: ",
14147            stringify!(SSkirmishAICallback),
14148            "::",
14149            stringify!(Unit_getResourceMake)
14150        )
14151    );
14152    assert_eq!(
14153        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getPos) as usize - ptr as usize },
14154        2600usize,
14155        concat!(
14156            "Offset of field: ",
14157            stringify!(SSkirmishAICallback),
14158            "::",
14159            stringify!(Unit_getPos)
14160        )
14161    );
14162    assert_eq!(
14163        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getVel) as usize - ptr as usize },
14164        2608usize,
14165        concat!(
14166            "Offset of field: ",
14167            stringify!(SSkirmishAICallback),
14168            "::",
14169            stringify!(Unit_getVel)
14170        )
14171    );
14172    assert_eq!(
14173        unsafe { ::std::ptr::addr_of!((*ptr).Unit_isActivated) as usize - ptr as usize },
14174        2616usize,
14175        concat!(
14176            "Offset of field: ",
14177            stringify!(SSkirmishAICallback),
14178            "::",
14179            stringify!(Unit_isActivated)
14180        )
14181    );
14182    assert_eq!(
14183        unsafe { ::std::ptr::addr_of!((*ptr).Unit_isBeingBuilt) as usize - ptr as usize },
14184        2624usize,
14185        concat!(
14186            "Offset of field: ",
14187            stringify!(SSkirmishAICallback),
14188            "::",
14189            stringify!(Unit_isBeingBuilt)
14190        )
14191    );
14192    assert_eq!(
14193        unsafe { ::std::ptr::addr_of!((*ptr).Unit_isCloaked) as usize - ptr as usize },
14194        2632usize,
14195        concat!(
14196            "Offset of field: ",
14197            stringify!(SSkirmishAICallback),
14198            "::",
14199            stringify!(Unit_isCloaked)
14200        )
14201    );
14202    assert_eq!(
14203        unsafe { ::std::ptr::addr_of!((*ptr).Unit_isParalyzed) as usize - ptr as usize },
14204        2640usize,
14205        concat!(
14206            "Offset of field: ",
14207            stringify!(SSkirmishAICallback),
14208            "::",
14209            stringify!(Unit_isParalyzed)
14210        )
14211    );
14212    assert_eq!(
14213        unsafe { ::std::ptr::addr_of!((*ptr).Unit_isNeutral) as usize - ptr as usize },
14214        2648usize,
14215        concat!(
14216            "Offset of field: ",
14217            stringify!(SSkirmishAICallback),
14218            "::",
14219            stringify!(Unit_isNeutral)
14220        )
14221    );
14222    assert_eq!(
14223        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getBuildingFacing) as usize - ptr as usize },
14224        2656usize,
14225        concat!(
14226            "Offset of field: ",
14227            stringify!(SSkirmishAICallback),
14228            "::",
14229            stringify!(Unit_getBuildingFacing)
14230        )
14231    );
14232    assert_eq!(
14233        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getLastUserOrderFrame) as usize - ptr as usize },
14234        2664usize,
14235        concat!(
14236            "Offset of field: ",
14237            stringify!(SSkirmishAICallback),
14238            "::",
14239            stringify!(Unit_getLastUserOrderFrame)
14240        )
14241    );
14242    assert_eq!(
14243        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getWeapons) as usize - ptr as usize },
14244        2672usize,
14245        concat!(
14246            "Offset of field: ",
14247            stringify!(SSkirmishAICallback),
14248            "::",
14249            stringify!(Unit_getWeapons)
14250        )
14251    );
14252    assert_eq!(
14253        unsafe { ::std::ptr::addr_of!((*ptr).Unit_getWeapon) as usize - ptr as usize },
14254        2680usize,
14255        concat!(
14256            "Offset of field: ",
14257            stringify!(SSkirmishAICallback),
14258            "::",
14259            stringify!(Unit_getWeapon)
14260        )
14261    );
14262    assert_eq!(
14263        unsafe { ::std::ptr::addr_of!((*ptr).Team_hasAIController) as usize - ptr as usize },
14264        2688usize,
14265        concat!(
14266            "Offset of field: ",
14267            stringify!(SSkirmishAICallback),
14268            "::",
14269            stringify!(Team_hasAIController)
14270        )
14271    );
14272    assert_eq!(
14273        unsafe { ::std::ptr::addr_of!((*ptr).getEnemyTeams) as usize - ptr as usize },
14274        2696usize,
14275        concat!(
14276            "Offset of field: ",
14277            stringify!(SSkirmishAICallback),
14278            "::",
14279            stringify!(getEnemyTeams)
14280        )
14281    );
14282    assert_eq!(
14283        unsafe { ::std::ptr::addr_of!((*ptr).getAlliedTeams) as usize - ptr as usize },
14284        2704usize,
14285        concat!(
14286            "Offset of field: ",
14287            stringify!(SSkirmishAICallback),
14288            "::",
14289            stringify!(getAlliedTeams)
14290        )
14291    );
14292    assert_eq!(
14293        unsafe { ::std::ptr::addr_of!((*ptr).Team_getRulesParamFloat) as usize - ptr as usize },
14294        2712usize,
14295        concat!(
14296            "Offset of field: ",
14297            stringify!(SSkirmishAICallback),
14298            "::",
14299            stringify!(Team_getRulesParamFloat)
14300        )
14301    );
14302    assert_eq!(
14303        unsafe { ::std::ptr::addr_of!((*ptr).Team_getRulesParamString) as usize - ptr as usize },
14304        2720usize,
14305        concat!(
14306            "Offset of field: ",
14307            stringify!(SSkirmishAICallback),
14308            "::",
14309            stringify!(Team_getRulesParamString)
14310        )
14311    );
14312    assert_eq!(
14313        unsafe { ::std::ptr::addr_of!((*ptr).getGroups) as usize - ptr as usize },
14314        2728usize,
14315        concat!(
14316            "Offset of field: ",
14317            stringify!(SSkirmishAICallback),
14318            "::",
14319            stringify!(getGroups)
14320        )
14321    );
14322    assert_eq!(
14323        unsafe { ::std::ptr::addr_of!((*ptr).Group_getSupportedCommands) as usize - ptr as usize },
14324        2736usize,
14325        concat!(
14326            "Offset of field: ",
14327            stringify!(SSkirmishAICallback),
14328            "::",
14329            stringify!(Group_getSupportedCommands)
14330        )
14331    );
14332    assert_eq!(
14333        unsafe {
14334            ::std::ptr::addr_of!((*ptr).Group_SupportedCommand_getId) as usize - ptr as usize
14335        },
14336        2744usize,
14337        concat!(
14338            "Offset of field: ",
14339            stringify!(SSkirmishAICallback),
14340            "::",
14341            stringify!(Group_SupportedCommand_getId)
14342        )
14343    );
14344    assert_eq!(
14345        unsafe {
14346            ::std::ptr::addr_of!((*ptr).Group_SupportedCommand_getName) as usize - ptr as usize
14347        },
14348        2752usize,
14349        concat!(
14350            "Offset of field: ",
14351            stringify!(SSkirmishAICallback),
14352            "::",
14353            stringify!(Group_SupportedCommand_getName)
14354        )
14355    );
14356    assert_eq!(
14357        unsafe {
14358            ::std::ptr::addr_of!((*ptr).Group_SupportedCommand_getToolTip) as usize - ptr as usize
14359        },
14360        2760usize,
14361        concat!(
14362            "Offset of field: ",
14363            stringify!(SSkirmishAICallback),
14364            "::",
14365            stringify!(Group_SupportedCommand_getToolTip)
14366        )
14367    );
14368    assert_eq!(
14369        unsafe {
14370            ::std::ptr::addr_of!((*ptr).Group_SupportedCommand_isShowUnique) as usize - ptr as usize
14371        },
14372        2768usize,
14373        concat!(
14374            "Offset of field: ",
14375            stringify!(SSkirmishAICallback),
14376            "::",
14377            stringify!(Group_SupportedCommand_isShowUnique)
14378        )
14379    );
14380    assert_eq!(
14381        unsafe {
14382            ::std::ptr::addr_of!((*ptr).Group_SupportedCommand_isDisabled) as usize - ptr as usize
14383        },
14384        2776usize,
14385        concat!(
14386            "Offset of field: ",
14387            stringify!(SSkirmishAICallback),
14388            "::",
14389            stringify!(Group_SupportedCommand_isDisabled)
14390        )
14391    );
14392    assert_eq!(
14393        unsafe {
14394            ::std::ptr::addr_of!((*ptr).Group_SupportedCommand_getParams) as usize - ptr as usize
14395        },
14396        2784usize,
14397        concat!(
14398            "Offset of field: ",
14399            stringify!(SSkirmishAICallback),
14400            "::",
14401            stringify!(Group_SupportedCommand_getParams)
14402        )
14403    );
14404    assert_eq!(
14405        unsafe { ::std::ptr::addr_of!((*ptr).Group_OrderPreview_getId) as usize - ptr as usize },
14406        2792usize,
14407        concat!(
14408            "Offset of field: ",
14409            stringify!(SSkirmishAICallback),
14410            "::",
14411            stringify!(Group_OrderPreview_getId)
14412        )
14413    );
14414    assert_eq!(
14415        unsafe {
14416            ::std::ptr::addr_of!((*ptr).Group_OrderPreview_getOptions) as usize - ptr as usize
14417        },
14418        2800usize,
14419        concat!(
14420            "Offset of field: ",
14421            stringify!(SSkirmishAICallback),
14422            "::",
14423            stringify!(Group_OrderPreview_getOptions)
14424        )
14425    );
14426    assert_eq!(
14427        unsafe { ::std::ptr::addr_of!((*ptr).Group_OrderPreview_getTag) as usize - ptr as usize },
14428        2808usize,
14429        concat!(
14430            "Offset of field: ",
14431            stringify!(SSkirmishAICallback),
14432            "::",
14433            stringify!(Group_OrderPreview_getTag)
14434        )
14435    );
14436    assert_eq!(
14437        unsafe {
14438            ::std::ptr::addr_of!((*ptr).Group_OrderPreview_getTimeOut) as usize - ptr as usize
14439        },
14440        2816usize,
14441        concat!(
14442            "Offset of field: ",
14443            stringify!(SSkirmishAICallback),
14444            "::",
14445            stringify!(Group_OrderPreview_getTimeOut)
14446        )
14447    );
14448    assert_eq!(
14449        unsafe {
14450            ::std::ptr::addr_of!((*ptr).Group_OrderPreview_getParams) as usize - ptr as usize
14451        },
14452        2824usize,
14453        concat!(
14454            "Offset of field: ",
14455            stringify!(SSkirmishAICallback),
14456            "::",
14457            stringify!(Group_OrderPreview_getParams)
14458        )
14459    );
14460    assert_eq!(
14461        unsafe { ::std::ptr::addr_of!((*ptr).Group_isSelected) as usize - ptr as usize },
14462        2832usize,
14463        concat!(
14464            "Offset of field: ",
14465            stringify!(SSkirmishAICallback),
14466            "::",
14467            stringify!(Group_isSelected)
14468        )
14469    );
14470    assert_eq!(
14471        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getFileName) as usize - ptr as usize },
14472        2840usize,
14473        concat!(
14474            "Offset of field: ",
14475            stringify!(SSkirmishAICallback),
14476            "::",
14477            stringify!(Mod_getFileName)
14478        )
14479    );
14480    assert_eq!(
14481        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getHash) as usize - ptr as usize },
14482        2848usize,
14483        concat!(
14484            "Offset of field: ",
14485            stringify!(SSkirmishAICallback),
14486            "::",
14487            stringify!(Mod_getHash)
14488        )
14489    );
14490    assert_eq!(
14491        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getHumanName) as usize - ptr as usize },
14492        2856usize,
14493        concat!(
14494            "Offset of field: ",
14495            stringify!(SSkirmishAICallback),
14496            "::",
14497            stringify!(Mod_getHumanName)
14498        )
14499    );
14500    assert_eq!(
14501        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getShortName) as usize - ptr as usize },
14502        2864usize,
14503        concat!(
14504            "Offset of field: ",
14505            stringify!(SSkirmishAICallback),
14506            "::",
14507            stringify!(Mod_getShortName)
14508        )
14509    );
14510    assert_eq!(
14511        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getVersion) as usize - ptr as usize },
14512        2872usize,
14513        concat!(
14514            "Offset of field: ",
14515            stringify!(SSkirmishAICallback),
14516            "::",
14517            stringify!(Mod_getVersion)
14518        )
14519    );
14520    assert_eq!(
14521        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getMutator) as usize - ptr as usize },
14522        2880usize,
14523        concat!(
14524            "Offset of field: ",
14525            stringify!(SSkirmishAICallback),
14526            "::",
14527            stringify!(Mod_getMutator)
14528        )
14529    );
14530    assert_eq!(
14531        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getDescription) as usize - ptr as usize },
14532        2888usize,
14533        concat!(
14534            "Offset of field: ",
14535            stringify!(SSkirmishAICallback),
14536            "::",
14537            stringify!(Mod_getDescription)
14538        )
14539    );
14540    assert_eq!(
14541        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getConstructionDecay) as usize - ptr as usize },
14542        2896usize,
14543        concat!(
14544            "Offset of field: ",
14545            stringify!(SSkirmishAICallback),
14546            "::",
14547            stringify!(Mod_getConstructionDecay)
14548        )
14549    );
14550    assert_eq!(
14551        unsafe {
14552            ::std::ptr::addr_of!((*ptr).Mod_getConstructionDecayTime) as usize - ptr as usize
14553        },
14554        2904usize,
14555        concat!(
14556            "Offset of field: ",
14557            stringify!(SSkirmishAICallback),
14558            "::",
14559            stringify!(Mod_getConstructionDecayTime)
14560        )
14561    );
14562    assert_eq!(
14563        unsafe {
14564            ::std::ptr::addr_of!((*ptr).Mod_getConstructionDecaySpeed) as usize - ptr as usize
14565        },
14566        2912usize,
14567        concat!(
14568            "Offset of field: ",
14569            stringify!(SSkirmishAICallback),
14570            "::",
14571            stringify!(Mod_getConstructionDecaySpeed)
14572        )
14573    );
14574    assert_eq!(
14575        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getMultiReclaim) as usize - ptr as usize },
14576        2920usize,
14577        concat!(
14578            "Offset of field: ",
14579            stringify!(SSkirmishAICallback),
14580            "::",
14581            stringify!(Mod_getMultiReclaim)
14582        )
14583    );
14584    assert_eq!(
14585        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getReclaimMethod) as usize - ptr as usize },
14586        2928usize,
14587        concat!(
14588            "Offset of field: ",
14589            stringify!(SSkirmishAICallback),
14590            "::",
14591            stringify!(Mod_getReclaimMethod)
14592        )
14593    );
14594    assert_eq!(
14595        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getReclaimUnitMethod) as usize - ptr as usize },
14596        2936usize,
14597        concat!(
14598            "Offset of field: ",
14599            stringify!(SSkirmishAICallback),
14600            "::",
14601            stringify!(Mod_getReclaimUnitMethod)
14602        )
14603    );
14604    assert_eq!(
14605        unsafe {
14606            ::std::ptr::addr_of!((*ptr).Mod_getReclaimUnitEnergyCostFactor) as usize - ptr as usize
14607        },
14608        2944usize,
14609        concat!(
14610            "Offset of field: ",
14611            stringify!(SSkirmishAICallback),
14612            "::",
14613            stringify!(Mod_getReclaimUnitEnergyCostFactor)
14614        )
14615    );
14616    assert_eq!(
14617        unsafe {
14618            ::std::ptr::addr_of!((*ptr).Mod_getReclaimUnitEfficiency) as usize - ptr as usize
14619        },
14620        2952usize,
14621        concat!(
14622            "Offset of field: ",
14623            stringify!(SSkirmishAICallback),
14624            "::",
14625            stringify!(Mod_getReclaimUnitEfficiency)
14626        )
14627    );
14628    assert_eq!(
14629        unsafe {
14630            ::std::ptr::addr_of!((*ptr).Mod_getReclaimFeatureEnergyCostFactor) as usize
14631                - ptr as usize
14632        },
14633        2960usize,
14634        concat!(
14635            "Offset of field: ",
14636            stringify!(SSkirmishAICallback),
14637            "::",
14638            stringify!(Mod_getReclaimFeatureEnergyCostFactor)
14639        )
14640    );
14641    assert_eq!(
14642        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getReclaimAllowEnemies) as usize - ptr as usize },
14643        2968usize,
14644        concat!(
14645            "Offset of field: ",
14646            stringify!(SSkirmishAICallback),
14647            "::",
14648            stringify!(Mod_getReclaimAllowEnemies)
14649        )
14650    );
14651    assert_eq!(
14652        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getReclaimAllowAllies) as usize - ptr as usize },
14653        2976usize,
14654        concat!(
14655            "Offset of field: ",
14656            stringify!(SSkirmishAICallback),
14657            "::",
14658            stringify!(Mod_getReclaimAllowAllies)
14659        )
14660    );
14661    assert_eq!(
14662        unsafe {
14663            ::std::ptr::addr_of!((*ptr).Mod_getRepairEnergyCostFactor) as usize - ptr as usize
14664        },
14665        2984usize,
14666        concat!(
14667            "Offset of field: ",
14668            stringify!(SSkirmishAICallback),
14669            "::",
14670            stringify!(Mod_getRepairEnergyCostFactor)
14671        )
14672    );
14673    assert_eq!(
14674        unsafe {
14675            ::std::ptr::addr_of!((*ptr).Mod_getResurrectEnergyCostFactor) as usize - ptr as usize
14676        },
14677        2992usize,
14678        concat!(
14679            "Offset of field: ",
14680            stringify!(SSkirmishAICallback),
14681            "::",
14682            stringify!(Mod_getResurrectEnergyCostFactor)
14683        )
14684    );
14685    assert_eq!(
14686        unsafe {
14687            ::std::ptr::addr_of!((*ptr).Mod_getCaptureEnergyCostFactor) as usize - ptr as usize
14688        },
14689        3000usize,
14690        concat!(
14691            "Offset of field: ",
14692            stringify!(SSkirmishAICallback),
14693            "::",
14694            stringify!(Mod_getCaptureEnergyCostFactor)
14695        )
14696    );
14697    assert_eq!(
14698        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getTransportGround) as usize - ptr as usize },
14699        3008usize,
14700        concat!(
14701            "Offset of field: ",
14702            stringify!(SSkirmishAICallback),
14703            "::",
14704            stringify!(Mod_getTransportGround)
14705        )
14706    );
14707    assert_eq!(
14708        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getTransportHover) as usize - ptr as usize },
14709        3016usize,
14710        concat!(
14711            "Offset of field: ",
14712            stringify!(SSkirmishAICallback),
14713            "::",
14714            stringify!(Mod_getTransportHover)
14715        )
14716    );
14717    assert_eq!(
14718        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getTransportShip) as usize - ptr as usize },
14719        3024usize,
14720        concat!(
14721            "Offset of field: ",
14722            stringify!(SSkirmishAICallback),
14723            "::",
14724            stringify!(Mod_getTransportShip)
14725        )
14726    );
14727    assert_eq!(
14728        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getTransportAir) as usize - ptr as usize },
14729        3032usize,
14730        concat!(
14731            "Offset of field: ",
14732            stringify!(SSkirmishAICallback),
14733            "::",
14734            stringify!(Mod_getTransportAir)
14735        )
14736    );
14737    assert_eq!(
14738        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getFireAtKilled) as usize - ptr as usize },
14739        3040usize,
14740        concat!(
14741            "Offset of field: ",
14742            stringify!(SSkirmishAICallback),
14743            "::",
14744            stringify!(Mod_getFireAtKilled)
14745        )
14746    );
14747    assert_eq!(
14748        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getFireAtCrashing) as usize - ptr as usize },
14749        3048usize,
14750        concat!(
14751            "Offset of field: ",
14752            stringify!(SSkirmishAICallback),
14753            "::",
14754            stringify!(Mod_getFireAtCrashing)
14755        )
14756    );
14757    assert_eq!(
14758        unsafe {
14759            ::std::ptr::addr_of!((*ptr).Mod_getFlankingBonusModeDefault) as usize - ptr as usize
14760        },
14761        3056usize,
14762        concat!(
14763            "Offset of field: ",
14764            stringify!(SSkirmishAICallback),
14765            "::",
14766            stringify!(Mod_getFlankingBonusModeDefault)
14767        )
14768    );
14769    assert_eq!(
14770        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getLosMipLevel) as usize - ptr as usize },
14771        3064usize,
14772        concat!(
14773            "Offset of field: ",
14774            stringify!(SSkirmishAICallback),
14775            "::",
14776            stringify!(Mod_getLosMipLevel)
14777        )
14778    );
14779    assert_eq!(
14780        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getAirMipLevel) as usize - ptr as usize },
14781        3072usize,
14782        concat!(
14783            "Offset of field: ",
14784            stringify!(SSkirmishAICallback),
14785            "::",
14786            stringify!(Mod_getAirMipLevel)
14787        )
14788    );
14789    assert_eq!(
14790        unsafe { ::std::ptr::addr_of!((*ptr).Mod_getRadarMipLevel) as usize - ptr as usize },
14791        3080usize,
14792        concat!(
14793            "Offset of field: ",
14794            stringify!(SSkirmishAICallback),
14795            "::",
14796            stringify!(Mod_getRadarMipLevel)
14797        )
14798    );
14799    assert_eq!(
14800        unsafe {
14801            ::std::ptr::addr_of!((*ptr).Mod_getRequireSonarUnderWater) as usize - ptr as usize
14802        },
14803        3088usize,
14804        concat!(
14805            "Offset of field: ",
14806            stringify!(SSkirmishAICallback),
14807            "::",
14808            stringify!(Mod_getRequireSonarUnderWater)
14809        )
14810    );
14811    assert_eq!(
14812        unsafe { ::std::ptr::addr_of!((*ptr).Map_getChecksum) as usize - ptr as usize },
14813        3096usize,
14814        concat!(
14815            "Offset of field: ",
14816            stringify!(SSkirmishAICallback),
14817            "::",
14818            stringify!(Map_getChecksum)
14819        )
14820    );
14821    assert_eq!(
14822        unsafe { ::std::ptr::addr_of!((*ptr).Map_getStartPos) as usize - ptr as usize },
14823        3104usize,
14824        concat!(
14825            "Offset of field: ",
14826            stringify!(SSkirmishAICallback),
14827            "::",
14828            stringify!(Map_getStartPos)
14829        )
14830    );
14831    assert_eq!(
14832        unsafe { ::std::ptr::addr_of!((*ptr).Map_getMousePos) as usize - ptr as usize },
14833        3112usize,
14834        concat!(
14835            "Offset of field: ",
14836            stringify!(SSkirmishAICallback),
14837            "::",
14838            stringify!(Map_getMousePos)
14839        )
14840    );
14841    assert_eq!(
14842        unsafe { ::std::ptr::addr_of!((*ptr).Map_isPosInCamera) as usize - ptr as usize },
14843        3120usize,
14844        concat!(
14845            "Offset of field: ",
14846            stringify!(SSkirmishAICallback),
14847            "::",
14848            stringify!(Map_isPosInCamera)
14849        )
14850    );
14851    assert_eq!(
14852        unsafe { ::std::ptr::addr_of!((*ptr).Map_getWidth) as usize - ptr as usize },
14853        3128usize,
14854        concat!(
14855            "Offset of field: ",
14856            stringify!(SSkirmishAICallback),
14857            "::",
14858            stringify!(Map_getWidth)
14859        )
14860    );
14861    assert_eq!(
14862        unsafe { ::std::ptr::addr_of!((*ptr).Map_getHeight) as usize - ptr as usize },
14863        3136usize,
14864        concat!(
14865            "Offset of field: ",
14866            stringify!(SSkirmishAICallback),
14867            "::",
14868            stringify!(Map_getHeight)
14869        )
14870    );
14871    assert_eq!(
14872        unsafe { ::std::ptr::addr_of!((*ptr).Map_getHeightMap) as usize - ptr as usize },
14873        3144usize,
14874        concat!(
14875            "Offset of field: ",
14876            stringify!(SSkirmishAICallback),
14877            "::",
14878            stringify!(Map_getHeightMap)
14879        )
14880    );
14881    assert_eq!(
14882        unsafe { ::std::ptr::addr_of!((*ptr).Map_getCornersHeightMap) as usize - ptr as usize },
14883        3152usize,
14884        concat!(
14885            "Offset of field: ",
14886            stringify!(SSkirmishAICallback),
14887            "::",
14888            stringify!(Map_getCornersHeightMap)
14889        )
14890    );
14891    assert_eq!(
14892        unsafe { ::std::ptr::addr_of!((*ptr).Map_getMinHeight) as usize - ptr as usize },
14893        3160usize,
14894        concat!(
14895            "Offset of field: ",
14896            stringify!(SSkirmishAICallback),
14897            "::",
14898            stringify!(Map_getMinHeight)
14899        )
14900    );
14901    assert_eq!(
14902        unsafe { ::std::ptr::addr_of!((*ptr).Map_getMaxHeight) as usize - ptr as usize },
14903        3168usize,
14904        concat!(
14905            "Offset of field: ",
14906            stringify!(SSkirmishAICallback),
14907            "::",
14908            stringify!(Map_getMaxHeight)
14909        )
14910    );
14911    assert_eq!(
14912        unsafe { ::std::ptr::addr_of!((*ptr).Map_getSlopeMap) as usize - ptr as usize },
14913        3176usize,
14914        concat!(
14915            "Offset of field: ",
14916            stringify!(SSkirmishAICallback),
14917            "::",
14918            stringify!(Map_getSlopeMap)
14919        )
14920    );
14921    assert_eq!(
14922        unsafe { ::std::ptr::addr_of!((*ptr).Map_getLosMap) as usize - ptr as usize },
14923        3184usize,
14924        concat!(
14925            "Offset of field: ",
14926            stringify!(SSkirmishAICallback),
14927            "::",
14928            stringify!(Map_getLosMap)
14929        )
14930    );
14931    assert_eq!(
14932        unsafe { ::std::ptr::addr_of!((*ptr).Map_getAirLosMap) as usize - ptr as usize },
14933        3192usize,
14934        concat!(
14935            "Offset of field: ",
14936            stringify!(SSkirmishAICallback),
14937            "::",
14938            stringify!(Map_getAirLosMap)
14939        )
14940    );
14941    assert_eq!(
14942        unsafe { ::std::ptr::addr_of!((*ptr).Map_getRadarMap) as usize - ptr as usize },
14943        3200usize,
14944        concat!(
14945            "Offset of field: ",
14946            stringify!(SSkirmishAICallback),
14947            "::",
14948            stringify!(Map_getRadarMap)
14949        )
14950    );
14951    assert_eq!(
14952        unsafe { ::std::ptr::addr_of!((*ptr).Map_getSonarMap) as usize - ptr as usize },
14953        3208usize,
14954        concat!(
14955            "Offset of field: ",
14956            stringify!(SSkirmishAICallback),
14957            "::",
14958            stringify!(Map_getSonarMap)
14959        )
14960    );
14961    assert_eq!(
14962        unsafe { ::std::ptr::addr_of!((*ptr).Map_getSeismicMap) as usize - ptr as usize },
14963        3216usize,
14964        concat!(
14965            "Offset of field: ",
14966            stringify!(SSkirmishAICallback),
14967            "::",
14968            stringify!(Map_getSeismicMap)
14969        )
14970    );
14971    assert_eq!(
14972        unsafe { ::std::ptr::addr_of!((*ptr).Map_getJammerMap) as usize - ptr as usize },
14973        3224usize,
14974        concat!(
14975            "Offset of field: ",
14976            stringify!(SSkirmishAICallback),
14977            "::",
14978            stringify!(Map_getJammerMap)
14979        )
14980    );
14981    assert_eq!(
14982        unsafe { ::std::ptr::addr_of!((*ptr).Map_getSonarJammerMap) as usize - ptr as usize },
14983        3232usize,
14984        concat!(
14985            "Offset of field: ",
14986            stringify!(SSkirmishAICallback),
14987            "::",
14988            stringify!(Map_getSonarJammerMap)
14989        )
14990    );
14991    assert_eq!(
14992        unsafe { ::std::ptr::addr_of!((*ptr).Map_getResourceMapRaw) as usize - ptr as usize },
14993        3240usize,
14994        concat!(
14995            "Offset of field: ",
14996            stringify!(SSkirmishAICallback),
14997            "::",
14998            stringify!(Map_getResourceMapRaw)
14999        )
15000    );
15001    assert_eq!(
15002        unsafe {
15003            ::std::ptr::addr_of!((*ptr).Map_getResourceMapSpotsPositions) as usize - ptr as usize
15004        },
15005        3248usize,
15006        concat!(
15007            "Offset of field: ",
15008            stringify!(SSkirmishAICallback),
15009            "::",
15010            stringify!(Map_getResourceMapSpotsPositions)
15011        )
15012    );
15013    assert_eq!(
15014        unsafe {
15015            ::std::ptr::addr_of!((*ptr).Map_getResourceMapSpotsAverageIncome) as usize
15016                - ptr as usize
15017        },
15018        3256usize,
15019        concat!(
15020            "Offset of field: ",
15021            stringify!(SSkirmishAICallback),
15022            "::",
15023            stringify!(Map_getResourceMapSpotsAverageIncome)
15024        )
15025    );
15026    assert_eq!(
15027        unsafe {
15028            ::std::ptr::addr_of!((*ptr).Map_getResourceMapSpotsNearest) as usize - ptr as usize
15029        },
15030        3264usize,
15031        concat!(
15032            "Offset of field: ",
15033            stringify!(SSkirmishAICallback),
15034            "::",
15035            stringify!(Map_getResourceMapSpotsNearest)
15036        )
15037    );
15038    assert_eq!(
15039        unsafe { ::std::ptr::addr_of!((*ptr).Map_getHash) as usize - ptr as usize },
15040        3272usize,
15041        concat!(
15042            "Offset of field: ",
15043            stringify!(SSkirmishAICallback),
15044            "::",
15045            stringify!(Map_getHash)
15046        )
15047    );
15048    assert_eq!(
15049        unsafe { ::std::ptr::addr_of!((*ptr).Map_getName) as usize - ptr as usize },
15050        3280usize,
15051        concat!(
15052            "Offset of field: ",
15053            stringify!(SSkirmishAICallback),
15054            "::",
15055            stringify!(Map_getName)
15056        )
15057    );
15058    assert_eq!(
15059        unsafe { ::std::ptr::addr_of!((*ptr).Map_getHumanName) as usize - ptr as usize },
15060        3288usize,
15061        concat!(
15062            "Offset of field: ",
15063            stringify!(SSkirmishAICallback),
15064            "::",
15065            stringify!(Map_getHumanName)
15066        )
15067    );
15068    assert_eq!(
15069        unsafe { ::std::ptr::addr_of!((*ptr).Map_getElevationAt) as usize - ptr as usize },
15070        3296usize,
15071        concat!(
15072            "Offset of field: ",
15073            stringify!(SSkirmishAICallback),
15074            "::",
15075            stringify!(Map_getElevationAt)
15076        )
15077    );
15078    assert_eq!(
15079        unsafe { ::std::ptr::addr_of!((*ptr).Map_getMaxResource) as usize - ptr as usize },
15080        3304usize,
15081        concat!(
15082            "Offset of field: ",
15083            stringify!(SSkirmishAICallback),
15084            "::",
15085            stringify!(Map_getMaxResource)
15086        )
15087    );
15088    assert_eq!(
15089        unsafe { ::std::ptr::addr_of!((*ptr).Map_getExtractorRadius) as usize - ptr as usize },
15090        3312usize,
15091        concat!(
15092            "Offset of field: ",
15093            stringify!(SSkirmishAICallback),
15094            "::",
15095            stringify!(Map_getExtractorRadius)
15096        )
15097    );
15098    assert_eq!(
15099        unsafe { ::std::ptr::addr_of!((*ptr).Map_getMinWind) as usize - ptr as usize },
15100        3320usize,
15101        concat!(
15102            "Offset of field: ",
15103            stringify!(SSkirmishAICallback),
15104            "::",
15105            stringify!(Map_getMinWind)
15106        )
15107    );
15108    assert_eq!(
15109        unsafe { ::std::ptr::addr_of!((*ptr).Map_getMaxWind) as usize - ptr as usize },
15110        3328usize,
15111        concat!(
15112            "Offset of field: ",
15113            stringify!(SSkirmishAICallback),
15114            "::",
15115            stringify!(Map_getMaxWind)
15116        )
15117    );
15118    assert_eq!(
15119        unsafe { ::std::ptr::addr_of!((*ptr).Map_getCurWind) as usize - ptr as usize },
15120        3336usize,
15121        concat!(
15122            "Offset of field: ",
15123            stringify!(SSkirmishAICallback),
15124            "::",
15125            stringify!(Map_getCurWind)
15126        )
15127    );
15128    assert_eq!(
15129        unsafe { ::std::ptr::addr_of!((*ptr).Map_getTidalStrength) as usize - ptr as usize },
15130        3344usize,
15131        concat!(
15132            "Offset of field: ",
15133            stringify!(SSkirmishAICallback),
15134            "::",
15135            stringify!(Map_getTidalStrength)
15136        )
15137    );
15138    assert_eq!(
15139        unsafe { ::std::ptr::addr_of!((*ptr).Map_getGravity) as usize - ptr as usize },
15140        3352usize,
15141        concat!(
15142            "Offset of field: ",
15143            stringify!(SSkirmishAICallback),
15144            "::",
15145            stringify!(Map_getGravity)
15146        )
15147    );
15148    assert_eq!(
15149        unsafe { ::std::ptr::addr_of!((*ptr).Map_getWaterDamage) as usize - ptr as usize },
15150        3360usize,
15151        concat!(
15152            "Offset of field: ",
15153            stringify!(SSkirmishAICallback),
15154            "::",
15155            stringify!(Map_getWaterDamage)
15156        )
15157    );
15158    assert_eq!(
15159        unsafe { ::std::ptr::addr_of!((*ptr).Map_isDeformable) as usize - ptr as usize },
15160        3368usize,
15161        concat!(
15162            "Offset of field: ",
15163            stringify!(SSkirmishAICallback),
15164            "::",
15165            stringify!(Map_isDeformable)
15166        )
15167    );
15168    assert_eq!(
15169        unsafe { ::std::ptr::addr_of!((*ptr).Map_getHardness) as usize - ptr as usize },
15170        3376usize,
15171        concat!(
15172            "Offset of field: ",
15173            stringify!(SSkirmishAICallback),
15174            "::",
15175            stringify!(Map_getHardness)
15176        )
15177    );
15178    assert_eq!(
15179        unsafe { ::std::ptr::addr_of!((*ptr).Map_getHardnessModMap) as usize - ptr as usize },
15180        3384usize,
15181        concat!(
15182            "Offset of field: ",
15183            stringify!(SSkirmishAICallback),
15184            "::",
15185            stringify!(Map_getHardnessModMap)
15186        )
15187    );
15188    assert_eq!(
15189        unsafe { ::std::ptr::addr_of!((*ptr).Map_getSpeedModMap) as usize - ptr as usize },
15190        3392usize,
15191        concat!(
15192            "Offset of field: ",
15193            stringify!(SSkirmishAICallback),
15194            "::",
15195            stringify!(Map_getSpeedModMap)
15196        )
15197    );
15198    assert_eq!(
15199        unsafe { ::std::ptr::addr_of!((*ptr).Map_getPoints) as usize - ptr as usize },
15200        3400usize,
15201        concat!(
15202            "Offset of field: ",
15203            stringify!(SSkirmishAICallback),
15204            "::",
15205            stringify!(Map_getPoints)
15206        )
15207    );
15208    assert_eq!(
15209        unsafe { ::std::ptr::addr_of!((*ptr).Map_Point_getPosition) as usize - ptr as usize },
15210        3408usize,
15211        concat!(
15212            "Offset of field: ",
15213            stringify!(SSkirmishAICallback),
15214            "::",
15215            stringify!(Map_Point_getPosition)
15216        )
15217    );
15218    assert_eq!(
15219        unsafe { ::std::ptr::addr_of!((*ptr).Map_Point_getColor) as usize - ptr as usize },
15220        3416usize,
15221        concat!(
15222            "Offset of field: ",
15223            stringify!(SSkirmishAICallback),
15224            "::",
15225            stringify!(Map_Point_getColor)
15226        )
15227    );
15228    assert_eq!(
15229        unsafe { ::std::ptr::addr_of!((*ptr).Map_Point_getLabel) as usize - ptr as usize },
15230        3424usize,
15231        concat!(
15232            "Offset of field: ",
15233            stringify!(SSkirmishAICallback),
15234            "::",
15235            stringify!(Map_Point_getLabel)
15236        )
15237    );
15238    assert_eq!(
15239        unsafe { ::std::ptr::addr_of!((*ptr).Map_getLines) as usize - ptr as usize },
15240        3432usize,
15241        concat!(
15242            "Offset of field: ",
15243            stringify!(SSkirmishAICallback),
15244            "::",
15245            stringify!(Map_getLines)
15246        )
15247    );
15248    assert_eq!(
15249        unsafe { ::std::ptr::addr_of!((*ptr).Map_Line_getFirstPosition) as usize - ptr as usize },
15250        3440usize,
15251        concat!(
15252            "Offset of field: ",
15253            stringify!(SSkirmishAICallback),
15254            "::",
15255            stringify!(Map_Line_getFirstPosition)
15256        )
15257    );
15258    assert_eq!(
15259        unsafe { ::std::ptr::addr_of!((*ptr).Map_Line_getSecondPosition) as usize - ptr as usize },
15260        3448usize,
15261        concat!(
15262            "Offset of field: ",
15263            stringify!(SSkirmishAICallback),
15264            "::",
15265            stringify!(Map_Line_getSecondPosition)
15266        )
15267    );
15268    assert_eq!(
15269        unsafe { ::std::ptr::addr_of!((*ptr).Map_Line_getColor) as usize - ptr as usize },
15270        3456usize,
15271        concat!(
15272            "Offset of field: ",
15273            stringify!(SSkirmishAICallback),
15274            "::",
15275            stringify!(Map_Line_getColor)
15276        )
15277    );
15278    assert_eq!(
15279        unsafe { ::std::ptr::addr_of!((*ptr).Map_isPossibleToBuildAt) as usize - ptr as usize },
15280        3464usize,
15281        concat!(
15282            "Offset of field: ",
15283            stringify!(SSkirmishAICallback),
15284            "::",
15285            stringify!(Map_isPossibleToBuildAt)
15286        )
15287    );
15288    assert_eq!(
15289        unsafe { ::std::ptr::addr_of!((*ptr).Map_findClosestBuildSite) as usize - ptr as usize },
15290        3472usize,
15291        concat!(
15292            "Offset of field: ",
15293            stringify!(SSkirmishAICallback),
15294            "::",
15295            stringify!(Map_findClosestBuildSite)
15296        )
15297    );
15298    assert_eq!(
15299        unsafe { ::std::ptr::addr_of!((*ptr).getFeatureDefs) as usize - ptr as usize },
15300        3480usize,
15301        concat!(
15302            "Offset of field: ",
15303            stringify!(SSkirmishAICallback),
15304            "::",
15305            stringify!(getFeatureDefs)
15306        )
15307    );
15308    assert_eq!(
15309        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getName) as usize - ptr as usize },
15310        3488usize,
15311        concat!(
15312            "Offset of field: ",
15313            stringify!(SSkirmishAICallback),
15314            "::",
15315            stringify!(FeatureDef_getName)
15316        )
15317    );
15318    assert_eq!(
15319        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getDescription) as usize - ptr as usize },
15320        3496usize,
15321        concat!(
15322            "Offset of field: ",
15323            stringify!(SSkirmishAICallback),
15324            "::",
15325            stringify!(FeatureDef_getDescription)
15326        )
15327    );
15328    assert_eq!(
15329        unsafe {
15330            ::std::ptr::addr_of!((*ptr).FeatureDef_getContainedResource) as usize - ptr as usize
15331        },
15332        3504usize,
15333        concat!(
15334            "Offset of field: ",
15335            stringify!(SSkirmishAICallback),
15336            "::",
15337            stringify!(FeatureDef_getContainedResource)
15338        )
15339    );
15340    assert_eq!(
15341        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getMaxHealth) as usize - ptr as usize },
15342        3512usize,
15343        concat!(
15344            "Offset of field: ",
15345            stringify!(SSkirmishAICallback),
15346            "::",
15347            stringify!(FeatureDef_getMaxHealth)
15348        )
15349    );
15350    assert_eq!(
15351        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getReclaimTime) as usize - ptr as usize },
15352        3520usize,
15353        concat!(
15354            "Offset of field: ",
15355            stringify!(SSkirmishAICallback),
15356            "::",
15357            stringify!(FeatureDef_getReclaimTime)
15358        )
15359    );
15360    assert_eq!(
15361        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getMass) as usize - ptr as usize },
15362        3528usize,
15363        concat!(
15364            "Offset of field: ",
15365            stringify!(SSkirmishAICallback),
15366            "::",
15367            stringify!(FeatureDef_getMass)
15368        )
15369    );
15370    assert_eq!(
15371        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_isUpright) as usize - ptr as usize },
15372        3536usize,
15373        concat!(
15374            "Offset of field: ",
15375            stringify!(SSkirmishAICallback),
15376            "::",
15377            stringify!(FeatureDef_isUpright)
15378        )
15379    );
15380    assert_eq!(
15381        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getDrawType) as usize - ptr as usize },
15382        3544usize,
15383        concat!(
15384            "Offset of field: ",
15385            stringify!(SSkirmishAICallback),
15386            "::",
15387            stringify!(FeatureDef_getDrawType)
15388        )
15389    );
15390    assert_eq!(
15391        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getModelName) as usize - ptr as usize },
15392        3552usize,
15393        concat!(
15394            "Offset of field: ",
15395            stringify!(SSkirmishAICallback),
15396            "::",
15397            stringify!(FeatureDef_getModelName)
15398        )
15399    );
15400    assert_eq!(
15401        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getResurrectable) as usize - ptr as usize },
15402        3560usize,
15403        concat!(
15404            "Offset of field: ",
15405            stringify!(SSkirmishAICallback),
15406            "::",
15407            stringify!(FeatureDef_getResurrectable)
15408        )
15409    );
15410    assert_eq!(
15411        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getSmokeTime) as usize - ptr as usize },
15412        3568usize,
15413        concat!(
15414            "Offset of field: ",
15415            stringify!(SSkirmishAICallback),
15416            "::",
15417            stringify!(FeatureDef_getSmokeTime)
15418        )
15419    );
15420    assert_eq!(
15421        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_isDestructable) as usize - ptr as usize },
15422        3576usize,
15423        concat!(
15424            "Offset of field: ",
15425            stringify!(SSkirmishAICallback),
15426            "::",
15427            stringify!(FeatureDef_isDestructable)
15428        )
15429    );
15430    assert_eq!(
15431        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_isReclaimable) as usize - ptr as usize },
15432        3584usize,
15433        concat!(
15434            "Offset of field: ",
15435            stringify!(SSkirmishAICallback),
15436            "::",
15437            stringify!(FeatureDef_isReclaimable)
15438        )
15439    );
15440    assert_eq!(
15441        unsafe {
15442            ::std::ptr::addr_of!((*ptr).FeatureDef_isAutoreclaimable) as usize - ptr as usize
15443        },
15444        3592usize,
15445        concat!(
15446            "Offset of field: ",
15447            stringify!(SSkirmishAICallback),
15448            "::",
15449            stringify!(FeatureDef_isAutoreclaimable)
15450        )
15451    );
15452    assert_eq!(
15453        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_isBlocking) as usize - ptr as usize },
15454        3600usize,
15455        concat!(
15456            "Offset of field: ",
15457            stringify!(SSkirmishAICallback),
15458            "::",
15459            stringify!(FeatureDef_isBlocking)
15460        )
15461    );
15462    assert_eq!(
15463        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_isBurnable) as usize - ptr as usize },
15464        3608usize,
15465        concat!(
15466            "Offset of field: ",
15467            stringify!(SSkirmishAICallback),
15468            "::",
15469            stringify!(FeatureDef_isBurnable)
15470        )
15471    );
15472    assert_eq!(
15473        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_isFloating) as usize - ptr as usize },
15474        3616usize,
15475        concat!(
15476            "Offset of field: ",
15477            stringify!(SSkirmishAICallback),
15478            "::",
15479            stringify!(FeatureDef_isFloating)
15480        )
15481    );
15482    assert_eq!(
15483        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_isNoSelect) as usize - ptr as usize },
15484        3624usize,
15485        concat!(
15486            "Offset of field: ",
15487            stringify!(SSkirmishAICallback),
15488            "::",
15489            stringify!(FeatureDef_isNoSelect)
15490        )
15491    );
15492    assert_eq!(
15493        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_isGeoThermal) as usize - ptr as usize },
15494        3632usize,
15495        concat!(
15496            "Offset of field: ",
15497            stringify!(SSkirmishAICallback),
15498            "::",
15499            stringify!(FeatureDef_isGeoThermal)
15500        )
15501    );
15502    assert_eq!(
15503        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getXSize) as usize - ptr as usize },
15504        3640usize,
15505        concat!(
15506            "Offset of field: ",
15507            stringify!(SSkirmishAICallback),
15508            "::",
15509            stringify!(FeatureDef_getXSize)
15510        )
15511    );
15512    assert_eq!(
15513        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getZSize) as usize - ptr as usize },
15514        3648usize,
15515        concat!(
15516            "Offset of field: ",
15517            stringify!(SSkirmishAICallback),
15518            "::",
15519            stringify!(FeatureDef_getZSize)
15520        )
15521    );
15522    assert_eq!(
15523        unsafe { ::std::ptr::addr_of!((*ptr).FeatureDef_getCustomParams) as usize - ptr as usize },
15524        3656usize,
15525        concat!(
15526            "Offset of field: ",
15527            stringify!(SSkirmishAICallback),
15528            "::",
15529            stringify!(FeatureDef_getCustomParams)
15530        )
15531    );
15532    assert_eq!(
15533        unsafe { ::std::ptr::addr_of!((*ptr).getFeatures) as usize - ptr as usize },
15534        3664usize,
15535        concat!(
15536            "Offset of field: ",
15537            stringify!(SSkirmishAICallback),
15538            "::",
15539            stringify!(getFeatures)
15540        )
15541    );
15542    assert_eq!(
15543        unsafe { ::std::ptr::addr_of!((*ptr).getFeaturesIn) as usize - ptr as usize },
15544        3672usize,
15545        concat!(
15546            "Offset of field: ",
15547            stringify!(SSkirmishAICallback),
15548            "::",
15549            stringify!(getFeaturesIn)
15550        )
15551    );
15552    assert_eq!(
15553        unsafe { ::std::ptr::addr_of!((*ptr).Feature_getDef) as usize - ptr as usize },
15554        3680usize,
15555        concat!(
15556            "Offset of field: ",
15557            stringify!(SSkirmishAICallback),
15558            "::",
15559            stringify!(Feature_getDef)
15560        )
15561    );
15562    assert_eq!(
15563        unsafe { ::std::ptr::addr_of!((*ptr).Feature_getHealth) as usize - ptr as usize },
15564        3688usize,
15565        concat!(
15566            "Offset of field: ",
15567            stringify!(SSkirmishAICallback),
15568            "::",
15569            stringify!(Feature_getHealth)
15570        )
15571    );
15572    assert_eq!(
15573        unsafe { ::std::ptr::addr_of!((*ptr).Feature_getReclaimLeft) as usize - ptr as usize },
15574        3696usize,
15575        concat!(
15576            "Offset of field: ",
15577            stringify!(SSkirmishAICallback),
15578            "::",
15579            stringify!(Feature_getReclaimLeft)
15580        )
15581    );
15582    assert_eq!(
15583        unsafe { ::std::ptr::addr_of!((*ptr).Feature_getPosition) as usize - ptr as usize },
15584        3704usize,
15585        concat!(
15586            "Offset of field: ",
15587            stringify!(SSkirmishAICallback),
15588            "::",
15589            stringify!(Feature_getPosition)
15590        )
15591    );
15592    assert_eq!(
15593        unsafe { ::std::ptr::addr_of!((*ptr).Feature_getRulesParamFloat) as usize - ptr as usize },
15594        3712usize,
15595        concat!(
15596            "Offset of field: ",
15597            stringify!(SSkirmishAICallback),
15598            "::",
15599            stringify!(Feature_getRulesParamFloat)
15600        )
15601    );
15602    assert_eq!(
15603        unsafe { ::std::ptr::addr_of!((*ptr).Feature_getRulesParamString) as usize - ptr as usize },
15604        3720usize,
15605        concat!(
15606            "Offset of field: ",
15607            stringify!(SSkirmishAICallback),
15608            "::",
15609            stringify!(Feature_getRulesParamString)
15610        )
15611    );
15612    assert_eq!(
15613        unsafe { ::std::ptr::addr_of!((*ptr).Feature_getResurrectDef) as usize - ptr as usize },
15614        3728usize,
15615        concat!(
15616            "Offset of field: ",
15617            stringify!(SSkirmishAICallback),
15618            "::",
15619            stringify!(Feature_getResurrectDef)
15620        )
15621    );
15622    assert_eq!(
15623        unsafe { ::std::ptr::addr_of!((*ptr).Feature_getBuildingFacing) as usize - ptr as usize },
15624        3736usize,
15625        concat!(
15626            "Offset of field: ",
15627            stringify!(SSkirmishAICallback),
15628            "::",
15629            stringify!(Feature_getBuildingFacing)
15630        )
15631    );
15632    assert_eq!(
15633        unsafe { ::std::ptr::addr_of!((*ptr).getWeaponDefs) as usize - ptr as usize },
15634        3744usize,
15635        concat!(
15636            "Offset of field: ",
15637            stringify!(SSkirmishAICallback),
15638            "::",
15639            stringify!(getWeaponDefs)
15640        )
15641    );
15642    assert_eq!(
15643        unsafe { ::std::ptr::addr_of!((*ptr).getWeaponDefByName) as usize - ptr as usize },
15644        3752usize,
15645        concat!(
15646            "Offset of field: ",
15647            stringify!(SSkirmishAICallback),
15648            "::",
15649            stringify!(getWeaponDefByName)
15650        )
15651    );
15652    assert_eq!(
15653        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getName) as usize - ptr as usize },
15654        3760usize,
15655        concat!(
15656            "Offset of field: ",
15657            stringify!(SSkirmishAICallback),
15658            "::",
15659            stringify!(WeaponDef_getName)
15660        )
15661    );
15662    assert_eq!(
15663        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getType) as usize - ptr as usize },
15664        3768usize,
15665        concat!(
15666            "Offset of field: ",
15667            stringify!(SSkirmishAICallback),
15668            "::",
15669            stringify!(WeaponDef_getType)
15670        )
15671    );
15672    assert_eq!(
15673        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getDescription) as usize - ptr as usize },
15674        3776usize,
15675        concat!(
15676            "Offset of field: ",
15677            stringify!(SSkirmishAICallback),
15678            "::",
15679            stringify!(WeaponDef_getDescription)
15680        )
15681    );
15682    assert_eq!(
15683        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getRange) as usize - ptr as usize },
15684        3784usize,
15685        concat!(
15686            "Offset of field: ",
15687            stringify!(SSkirmishAICallback),
15688            "::",
15689            stringify!(WeaponDef_getRange)
15690        )
15691    );
15692    assert_eq!(
15693        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getHeightMod) as usize - ptr as usize },
15694        3792usize,
15695        concat!(
15696            "Offset of field: ",
15697            stringify!(SSkirmishAICallback),
15698            "::",
15699            stringify!(WeaponDef_getHeightMod)
15700        )
15701    );
15702    assert_eq!(
15703        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getAccuracy) as usize - ptr as usize },
15704        3800usize,
15705        concat!(
15706            "Offset of field: ",
15707            stringify!(SSkirmishAICallback),
15708            "::",
15709            stringify!(WeaponDef_getAccuracy)
15710        )
15711    );
15712    assert_eq!(
15713        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getSprayAngle) as usize - ptr as usize },
15714        3808usize,
15715        concat!(
15716            "Offset of field: ",
15717            stringify!(SSkirmishAICallback),
15718            "::",
15719            stringify!(WeaponDef_getSprayAngle)
15720        )
15721    );
15722    assert_eq!(
15723        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getMovingAccuracy) as usize - ptr as usize },
15724        3816usize,
15725        concat!(
15726            "Offset of field: ",
15727            stringify!(SSkirmishAICallback),
15728            "::",
15729            stringify!(WeaponDef_getMovingAccuracy)
15730        )
15731    );
15732    assert_eq!(
15733        unsafe {
15734            ::std::ptr::addr_of!((*ptr).WeaponDef_getTargetMoveError) as usize - ptr as usize
15735        },
15736        3824usize,
15737        concat!(
15738            "Offset of field: ",
15739            stringify!(SSkirmishAICallback),
15740            "::",
15741            stringify!(WeaponDef_getTargetMoveError)
15742        )
15743    );
15744    assert_eq!(
15745        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getLeadLimit) as usize - ptr as usize },
15746        3832usize,
15747        concat!(
15748            "Offset of field: ",
15749            stringify!(SSkirmishAICallback),
15750            "::",
15751            stringify!(WeaponDef_getLeadLimit)
15752        )
15753    );
15754    assert_eq!(
15755        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getLeadBonus) as usize - ptr as usize },
15756        3840usize,
15757        concat!(
15758            "Offset of field: ",
15759            stringify!(SSkirmishAICallback),
15760            "::",
15761            stringify!(WeaponDef_getLeadBonus)
15762        )
15763    );
15764    assert_eq!(
15765        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getPredictBoost) as usize - ptr as usize },
15766        3848usize,
15767        concat!(
15768            "Offset of field: ",
15769            stringify!(SSkirmishAICallback),
15770            "::",
15771            stringify!(WeaponDef_getPredictBoost)
15772        )
15773    );
15774    assert_eq!(
15775        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getNumDamageTypes) as usize - ptr as usize },
15776        3856usize,
15777        concat!(
15778            "Offset of field: ",
15779            stringify!(SSkirmishAICallback),
15780            "::",
15781            stringify!(WeaponDef_getNumDamageTypes)
15782        )
15783    );
15784    assert_eq!(
15785        unsafe {
15786            ::std::ptr::addr_of!((*ptr).WeaponDef_Damage_getParalyzeDamageTime) as usize
15787                - ptr as usize
15788        },
15789        3864usize,
15790        concat!(
15791            "Offset of field: ",
15792            stringify!(SSkirmishAICallback),
15793            "::",
15794            stringify!(WeaponDef_Damage_getParalyzeDamageTime)
15795        )
15796    );
15797    assert_eq!(
15798        unsafe {
15799            ::std::ptr::addr_of!((*ptr).WeaponDef_Damage_getImpulseFactor) as usize - ptr as usize
15800        },
15801        3872usize,
15802        concat!(
15803            "Offset of field: ",
15804            stringify!(SSkirmishAICallback),
15805            "::",
15806            stringify!(WeaponDef_Damage_getImpulseFactor)
15807        )
15808    );
15809    assert_eq!(
15810        unsafe {
15811            ::std::ptr::addr_of!((*ptr).WeaponDef_Damage_getImpulseBoost) as usize - ptr as usize
15812        },
15813        3880usize,
15814        concat!(
15815            "Offset of field: ",
15816            stringify!(SSkirmishAICallback),
15817            "::",
15818            stringify!(WeaponDef_Damage_getImpulseBoost)
15819        )
15820    );
15821    assert_eq!(
15822        unsafe {
15823            ::std::ptr::addr_of!((*ptr).WeaponDef_Damage_getCraterMult) as usize - ptr as usize
15824        },
15825        3888usize,
15826        concat!(
15827            "Offset of field: ",
15828            stringify!(SSkirmishAICallback),
15829            "::",
15830            stringify!(WeaponDef_Damage_getCraterMult)
15831        )
15832    );
15833    assert_eq!(
15834        unsafe {
15835            ::std::ptr::addr_of!((*ptr).WeaponDef_Damage_getCraterBoost) as usize - ptr as usize
15836        },
15837        3896usize,
15838        concat!(
15839            "Offset of field: ",
15840            stringify!(SSkirmishAICallback),
15841            "::",
15842            stringify!(WeaponDef_Damage_getCraterBoost)
15843        )
15844    );
15845    assert_eq!(
15846        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_Damage_getTypes) as usize - ptr as usize },
15847        3904usize,
15848        concat!(
15849            "Offset of field: ",
15850            stringify!(SSkirmishAICallback),
15851            "::",
15852            stringify!(WeaponDef_Damage_getTypes)
15853        )
15854    );
15855    assert_eq!(
15856        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getAreaOfEffect) as usize - ptr as usize },
15857        3912usize,
15858        concat!(
15859            "Offset of field: ",
15860            stringify!(SSkirmishAICallback),
15861            "::",
15862            stringify!(WeaponDef_getAreaOfEffect)
15863        )
15864    );
15865    assert_eq!(
15866        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isNoSelfDamage) as usize - ptr as usize },
15867        3920usize,
15868        concat!(
15869            "Offset of field: ",
15870            stringify!(SSkirmishAICallback),
15871            "::",
15872            stringify!(WeaponDef_isNoSelfDamage)
15873        )
15874    );
15875    assert_eq!(
15876        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getFireStarter) as usize - ptr as usize },
15877        3928usize,
15878        concat!(
15879            "Offset of field: ",
15880            stringify!(SSkirmishAICallback),
15881            "::",
15882            stringify!(WeaponDef_getFireStarter)
15883        )
15884    );
15885    assert_eq!(
15886        unsafe {
15887            ::std::ptr::addr_of!((*ptr).WeaponDef_getEdgeEffectiveness) as usize - ptr as usize
15888        },
15889        3936usize,
15890        concat!(
15891            "Offset of field: ",
15892            stringify!(SSkirmishAICallback),
15893            "::",
15894            stringify!(WeaponDef_getEdgeEffectiveness)
15895        )
15896    );
15897    assert_eq!(
15898        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getSize) as usize - ptr as usize },
15899        3944usize,
15900        concat!(
15901            "Offset of field: ",
15902            stringify!(SSkirmishAICallback),
15903            "::",
15904            stringify!(WeaponDef_getSize)
15905        )
15906    );
15907    assert_eq!(
15908        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getSizeGrowth) as usize - ptr as usize },
15909        3952usize,
15910        concat!(
15911            "Offset of field: ",
15912            stringify!(SSkirmishAICallback),
15913            "::",
15914            stringify!(WeaponDef_getSizeGrowth)
15915        )
15916    );
15917    assert_eq!(
15918        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getCollisionSize) as usize - ptr as usize },
15919        3960usize,
15920        concat!(
15921            "Offset of field: ",
15922            stringify!(SSkirmishAICallback),
15923            "::",
15924            stringify!(WeaponDef_getCollisionSize)
15925        )
15926    );
15927    assert_eq!(
15928        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getSalvoSize) as usize - ptr as usize },
15929        3968usize,
15930        concat!(
15931            "Offset of field: ",
15932            stringify!(SSkirmishAICallback),
15933            "::",
15934            stringify!(WeaponDef_getSalvoSize)
15935        )
15936    );
15937    assert_eq!(
15938        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getSalvoDelay) as usize - ptr as usize },
15939        3976usize,
15940        concat!(
15941            "Offset of field: ",
15942            stringify!(SSkirmishAICallback),
15943            "::",
15944            stringify!(WeaponDef_getSalvoDelay)
15945        )
15946    );
15947    assert_eq!(
15948        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getReload) as usize - ptr as usize },
15949        3984usize,
15950        concat!(
15951            "Offset of field: ",
15952            stringify!(SSkirmishAICallback),
15953            "::",
15954            stringify!(WeaponDef_getReload)
15955        )
15956    );
15957    assert_eq!(
15958        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getBeamTime) as usize - ptr as usize },
15959        3992usize,
15960        concat!(
15961            "Offset of field: ",
15962            stringify!(SSkirmishAICallback),
15963            "::",
15964            stringify!(WeaponDef_getBeamTime)
15965        )
15966    );
15967    assert_eq!(
15968        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isBeamBurst) as usize - ptr as usize },
15969        4000usize,
15970        concat!(
15971            "Offset of field: ",
15972            stringify!(SSkirmishAICallback),
15973            "::",
15974            stringify!(WeaponDef_isBeamBurst)
15975        )
15976    );
15977    assert_eq!(
15978        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isWaterBounce) as usize - ptr as usize },
15979        4008usize,
15980        concat!(
15981            "Offset of field: ",
15982            stringify!(SSkirmishAICallback),
15983            "::",
15984            stringify!(WeaponDef_isWaterBounce)
15985        )
15986    );
15987    assert_eq!(
15988        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isGroundBounce) as usize - ptr as usize },
15989        4016usize,
15990        concat!(
15991            "Offset of field: ",
15992            stringify!(SSkirmishAICallback),
15993            "::",
15994            stringify!(WeaponDef_isGroundBounce)
15995        )
15996    );
15997    assert_eq!(
15998        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getBounceRebound) as usize - ptr as usize },
15999        4024usize,
16000        concat!(
16001            "Offset of field: ",
16002            stringify!(SSkirmishAICallback),
16003            "::",
16004            stringify!(WeaponDef_getBounceRebound)
16005        )
16006    );
16007    assert_eq!(
16008        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getBounceSlip) as usize - ptr as usize },
16009        4032usize,
16010        concat!(
16011            "Offset of field: ",
16012            stringify!(SSkirmishAICallback),
16013            "::",
16014            stringify!(WeaponDef_getBounceSlip)
16015        )
16016    );
16017    assert_eq!(
16018        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getNumBounce) as usize - ptr as usize },
16019        4040usize,
16020        concat!(
16021            "Offset of field: ",
16022            stringify!(SSkirmishAICallback),
16023            "::",
16024            stringify!(WeaponDef_getNumBounce)
16025        )
16026    );
16027    assert_eq!(
16028        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getMaxAngle) as usize - ptr as usize },
16029        4048usize,
16030        concat!(
16031            "Offset of field: ",
16032            stringify!(SSkirmishAICallback),
16033            "::",
16034            stringify!(WeaponDef_getMaxAngle)
16035        )
16036    );
16037    assert_eq!(
16038        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getUpTime) as usize - ptr as usize },
16039        4056usize,
16040        concat!(
16041            "Offset of field: ",
16042            stringify!(SSkirmishAICallback),
16043            "::",
16044            stringify!(WeaponDef_getUpTime)
16045        )
16046    );
16047    assert_eq!(
16048        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getFlightTime) as usize - ptr as usize },
16049        4064usize,
16050        concat!(
16051            "Offset of field: ",
16052            stringify!(SSkirmishAICallback),
16053            "::",
16054            stringify!(WeaponDef_getFlightTime)
16055        )
16056    );
16057    assert_eq!(
16058        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getCost) as usize - ptr as usize },
16059        4072usize,
16060        concat!(
16061            "Offset of field: ",
16062            stringify!(SSkirmishAICallback),
16063            "::",
16064            stringify!(WeaponDef_getCost)
16065        )
16066    );
16067    assert_eq!(
16068        unsafe {
16069            ::std::ptr::addr_of!((*ptr).WeaponDef_getProjectilesPerShot) as usize - ptr as usize
16070        },
16071        4080usize,
16072        concat!(
16073            "Offset of field: ",
16074            stringify!(SSkirmishAICallback),
16075            "::",
16076            stringify!(WeaponDef_getProjectilesPerShot)
16077        )
16078    );
16079    assert_eq!(
16080        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isTurret) as usize - ptr as usize },
16081        4088usize,
16082        concat!(
16083            "Offset of field: ",
16084            stringify!(SSkirmishAICallback),
16085            "::",
16086            stringify!(WeaponDef_isTurret)
16087        )
16088    );
16089    assert_eq!(
16090        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isOnlyForward) as usize - ptr as usize },
16091        4096usize,
16092        concat!(
16093            "Offset of field: ",
16094            stringify!(SSkirmishAICallback),
16095            "::",
16096            stringify!(WeaponDef_isOnlyForward)
16097        )
16098    );
16099    assert_eq!(
16100        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isFixedLauncher) as usize - ptr as usize },
16101        4104usize,
16102        concat!(
16103            "Offset of field: ",
16104            stringify!(SSkirmishAICallback),
16105            "::",
16106            stringify!(WeaponDef_isFixedLauncher)
16107        )
16108    );
16109    assert_eq!(
16110        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isWaterWeapon) as usize - ptr as usize },
16111        4112usize,
16112        concat!(
16113            "Offset of field: ",
16114            stringify!(SSkirmishAICallback),
16115            "::",
16116            stringify!(WeaponDef_isWaterWeapon)
16117        )
16118    );
16119    assert_eq!(
16120        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isFireSubmersed) as usize - ptr as usize },
16121        4120usize,
16122        concat!(
16123            "Offset of field: ",
16124            stringify!(SSkirmishAICallback),
16125            "::",
16126            stringify!(WeaponDef_isFireSubmersed)
16127        )
16128    );
16129    assert_eq!(
16130        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isSubMissile) as usize - ptr as usize },
16131        4128usize,
16132        concat!(
16133            "Offset of field: ",
16134            stringify!(SSkirmishAICallback),
16135            "::",
16136            stringify!(WeaponDef_isSubMissile)
16137        )
16138    );
16139    assert_eq!(
16140        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isTracks) as usize - ptr as usize },
16141        4136usize,
16142        concat!(
16143            "Offset of field: ",
16144            stringify!(SSkirmishAICallback),
16145            "::",
16146            stringify!(WeaponDef_isTracks)
16147        )
16148    );
16149    assert_eq!(
16150        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isDropped) as usize - ptr as usize },
16151        4144usize,
16152        concat!(
16153            "Offset of field: ",
16154            stringify!(SSkirmishAICallback),
16155            "::",
16156            stringify!(WeaponDef_isDropped)
16157        )
16158    );
16159    assert_eq!(
16160        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isParalyzer) as usize - ptr as usize },
16161        4152usize,
16162        concat!(
16163            "Offset of field: ",
16164            stringify!(SSkirmishAICallback),
16165            "::",
16166            stringify!(WeaponDef_isParalyzer)
16167        )
16168    );
16169    assert_eq!(
16170        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isImpactOnly) as usize - ptr as usize },
16171        4160usize,
16172        concat!(
16173            "Offset of field: ",
16174            stringify!(SSkirmishAICallback),
16175            "::",
16176            stringify!(WeaponDef_isImpactOnly)
16177        )
16178    );
16179    assert_eq!(
16180        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isNoAutoTarget) as usize - ptr as usize },
16181        4168usize,
16182        concat!(
16183            "Offset of field: ",
16184            stringify!(SSkirmishAICallback),
16185            "::",
16186            stringify!(WeaponDef_isNoAutoTarget)
16187        )
16188    );
16189    assert_eq!(
16190        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isManualFire) as usize - ptr as usize },
16191        4176usize,
16192        concat!(
16193            "Offset of field: ",
16194            stringify!(SSkirmishAICallback),
16195            "::",
16196            stringify!(WeaponDef_isManualFire)
16197        )
16198    );
16199    assert_eq!(
16200        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getInterceptor) as usize - ptr as usize },
16201        4184usize,
16202        concat!(
16203            "Offset of field: ",
16204            stringify!(SSkirmishAICallback),
16205            "::",
16206            stringify!(WeaponDef_getInterceptor)
16207        )
16208    );
16209    assert_eq!(
16210        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getTargetable) as usize - ptr as usize },
16211        4192usize,
16212        concat!(
16213            "Offset of field: ",
16214            stringify!(SSkirmishAICallback),
16215            "::",
16216            stringify!(WeaponDef_getTargetable)
16217        )
16218    );
16219    assert_eq!(
16220        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isStockpileable) as usize - ptr as usize },
16221        4200usize,
16222        concat!(
16223            "Offset of field: ",
16224            stringify!(SSkirmishAICallback),
16225            "::",
16226            stringify!(WeaponDef_isStockpileable)
16227        )
16228    );
16229    assert_eq!(
16230        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getCoverageRange) as usize - ptr as usize },
16231        4208usize,
16232        concat!(
16233            "Offset of field: ",
16234            stringify!(SSkirmishAICallback),
16235            "::",
16236            stringify!(WeaponDef_getCoverageRange)
16237        )
16238    );
16239    assert_eq!(
16240        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getStockpileTime) as usize - ptr as usize },
16241        4216usize,
16242        concat!(
16243            "Offset of field: ",
16244            stringify!(SSkirmishAICallback),
16245            "::",
16246            stringify!(WeaponDef_getStockpileTime)
16247        )
16248    );
16249    assert_eq!(
16250        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getIntensity) as usize - ptr as usize },
16251        4224usize,
16252        concat!(
16253            "Offset of field: ",
16254            stringify!(SSkirmishAICallback),
16255            "::",
16256            stringify!(WeaponDef_getIntensity)
16257        )
16258    );
16259    assert_eq!(
16260        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getDuration) as usize - ptr as usize },
16261        4232usize,
16262        concat!(
16263            "Offset of field: ",
16264            stringify!(SSkirmishAICallback),
16265            "::",
16266            stringify!(WeaponDef_getDuration)
16267        )
16268    );
16269    assert_eq!(
16270        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getFalloffRate) as usize - ptr as usize },
16271        4240usize,
16272        concat!(
16273            "Offset of field: ",
16274            stringify!(SSkirmishAICallback),
16275            "::",
16276            stringify!(WeaponDef_getFalloffRate)
16277        )
16278    );
16279    assert_eq!(
16280        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isSoundTrigger) as usize - ptr as usize },
16281        4248usize,
16282        concat!(
16283            "Offset of field: ",
16284            stringify!(SSkirmishAICallback),
16285            "::",
16286            stringify!(WeaponDef_isSoundTrigger)
16287        )
16288    );
16289    assert_eq!(
16290        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isSelfExplode) as usize - ptr as usize },
16291        4256usize,
16292        concat!(
16293            "Offset of field: ",
16294            stringify!(SSkirmishAICallback),
16295            "::",
16296            stringify!(WeaponDef_isSelfExplode)
16297        )
16298    );
16299    assert_eq!(
16300        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isGravityAffected) as usize - ptr as usize },
16301        4264usize,
16302        concat!(
16303            "Offset of field: ",
16304            stringify!(SSkirmishAICallback),
16305            "::",
16306            stringify!(WeaponDef_isGravityAffected)
16307        )
16308    );
16309    assert_eq!(
16310        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getHighTrajectory) as usize - ptr as usize },
16311        4272usize,
16312        concat!(
16313            "Offset of field: ",
16314            stringify!(SSkirmishAICallback),
16315            "::",
16316            stringify!(WeaponDef_getHighTrajectory)
16317        )
16318    );
16319    assert_eq!(
16320        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getMyGravity) as usize - ptr as usize },
16321        4280usize,
16322        concat!(
16323            "Offset of field: ",
16324            stringify!(SSkirmishAICallback),
16325            "::",
16326            stringify!(WeaponDef_getMyGravity)
16327        )
16328    );
16329    assert_eq!(
16330        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isNoExplode) as usize - ptr as usize },
16331        4288usize,
16332        concat!(
16333            "Offset of field: ",
16334            stringify!(SSkirmishAICallback),
16335            "::",
16336            stringify!(WeaponDef_isNoExplode)
16337        )
16338    );
16339    assert_eq!(
16340        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getStartVelocity) as usize - ptr as usize },
16341        4296usize,
16342        concat!(
16343            "Offset of field: ",
16344            stringify!(SSkirmishAICallback),
16345            "::",
16346            stringify!(WeaponDef_getStartVelocity)
16347        )
16348    );
16349    assert_eq!(
16350        unsafe {
16351            ::std::ptr::addr_of!((*ptr).WeaponDef_getWeaponAcceleration) as usize - ptr as usize
16352        },
16353        4304usize,
16354        concat!(
16355            "Offset of field: ",
16356            stringify!(SSkirmishAICallback),
16357            "::",
16358            stringify!(WeaponDef_getWeaponAcceleration)
16359        )
16360    );
16361    assert_eq!(
16362        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getTurnRate) as usize - ptr as usize },
16363        4312usize,
16364        concat!(
16365            "Offset of field: ",
16366            stringify!(SSkirmishAICallback),
16367            "::",
16368            stringify!(WeaponDef_getTurnRate)
16369        )
16370    );
16371    assert_eq!(
16372        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getMaxVelocity) as usize - ptr as usize },
16373        4320usize,
16374        concat!(
16375            "Offset of field: ",
16376            stringify!(SSkirmishAICallback),
16377            "::",
16378            stringify!(WeaponDef_getMaxVelocity)
16379        )
16380    );
16381    assert_eq!(
16382        unsafe {
16383            ::std::ptr::addr_of!((*ptr).WeaponDef_getProjectileSpeed) as usize - ptr as usize
16384        },
16385        4328usize,
16386        concat!(
16387            "Offset of field: ",
16388            stringify!(SSkirmishAICallback),
16389            "::",
16390            stringify!(WeaponDef_getProjectileSpeed)
16391        )
16392    );
16393    assert_eq!(
16394        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getExplosionSpeed) as usize - ptr as usize },
16395        4336usize,
16396        concat!(
16397            "Offset of field: ",
16398            stringify!(SSkirmishAICallback),
16399            "::",
16400            stringify!(WeaponDef_getExplosionSpeed)
16401        )
16402    );
16403    assert_eq!(
16404        unsafe {
16405            ::std::ptr::addr_of!((*ptr).WeaponDef_getOnlyTargetCategory) as usize - ptr as usize
16406        },
16407        4344usize,
16408        concat!(
16409            "Offset of field: ",
16410            stringify!(SSkirmishAICallback),
16411            "::",
16412            stringify!(WeaponDef_getOnlyTargetCategory)
16413        )
16414    );
16415    assert_eq!(
16416        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getWobble) as usize - ptr as usize },
16417        4352usize,
16418        concat!(
16419            "Offset of field: ",
16420            stringify!(SSkirmishAICallback),
16421            "::",
16422            stringify!(WeaponDef_getWobble)
16423        )
16424    );
16425    assert_eq!(
16426        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getDance) as usize - ptr as usize },
16427        4360usize,
16428        concat!(
16429            "Offset of field: ",
16430            stringify!(SSkirmishAICallback),
16431            "::",
16432            stringify!(WeaponDef_getDance)
16433        )
16434    );
16435    assert_eq!(
16436        unsafe {
16437            ::std::ptr::addr_of!((*ptr).WeaponDef_getTrajectoryHeight) as usize - ptr as usize
16438        },
16439        4368usize,
16440        concat!(
16441            "Offset of field: ",
16442            stringify!(SSkirmishAICallback),
16443            "::",
16444            stringify!(WeaponDef_getTrajectoryHeight)
16445        )
16446    );
16447    assert_eq!(
16448        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isLargeBeamLaser) as usize - ptr as usize },
16449        4376usize,
16450        concat!(
16451            "Offset of field: ",
16452            stringify!(SSkirmishAICallback),
16453            "::",
16454            stringify!(WeaponDef_isLargeBeamLaser)
16455        )
16456    );
16457    assert_eq!(
16458        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isShield) as usize - ptr as usize },
16459        4384usize,
16460        concat!(
16461            "Offset of field: ",
16462            stringify!(SSkirmishAICallback),
16463            "::",
16464            stringify!(WeaponDef_isShield)
16465        )
16466    );
16467    assert_eq!(
16468        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isShieldRepulser) as usize - ptr as usize },
16469        4392usize,
16470        concat!(
16471            "Offset of field: ",
16472            stringify!(SSkirmishAICallback),
16473            "::",
16474            stringify!(WeaponDef_isShieldRepulser)
16475        )
16476    );
16477    assert_eq!(
16478        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isSmartShield) as usize - ptr as usize },
16479        4400usize,
16480        concat!(
16481            "Offset of field: ",
16482            stringify!(SSkirmishAICallback),
16483            "::",
16484            stringify!(WeaponDef_isSmartShield)
16485        )
16486    );
16487    assert_eq!(
16488        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isExteriorShield) as usize - ptr as usize },
16489        4408usize,
16490        concat!(
16491            "Offset of field: ",
16492            stringify!(SSkirmishAICallback),
16493            "::",
16494            stringify!(WeaponDef_isExteriorShield)
16495        )
16496    );
16497    assert_eq!(
16498        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isVisibleShield) as usize - ptr as usize },
16499        4416usize,
16500        concat!(
16501            "Offset of field: ",
16502            stringify!(SSkirmishAICallback),
16503            "::",
16504            stringify!(WeaponDef_isVisibleShield)
16505        )
16506    );
16507    assert_eq!(
16508        unsafe {
16509            ::std::ptr::addr_of!((*ptr).WeaponDef_isVisibleShieldRepulse) as usize - ptr as usize
16510        },
16511        4424usize,
16512        concat!(
16513            "Offset of field: ",
16514            stringify!(SSkirmishAICallback),
16515            "::",
16516            stringify!(WeaponDef_isVisibleShieldRepulse)
16517        )
16518    );
16519    assert_eq!(
16520        unsafe {
16521            ::std::ptr::addr_of!((*ptr).WeaponDef_getVisibleShieldHitFrames) as usize - ptr as usize
16522        },
16523        4432usize,
16524        concat!(
16525            "Offset of field: ",
16526            stringify!(SSkirmishAICallback),
16527            "::",
16528            stringify!(WeaponDef_getVisibleShieldHitFrames)
16529        )
16530    );
16531    assert_eq!(
16532        unsafe {
16533            ::std::ptr::addr_of!((*ptr).WeaponDef_Shield_getResourceUse) as usize - ptr as usize
16534        },
16535        4440usize,
16536        concat!(
16537            "Offset of field: ",
16538            stringify!(SSkirmishAICallback),
16539            "::",
16540            stringify!(WeaponDef_Shield_getResourceUse)
16541        )
16542    );
16543    assert_eq!(
16544        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_Shield_getRadius) as usize - ptr as usize },
16545        4448usize,
16546        concat!(
16547            "Offset of field: ",
16548            stringify!(SSkirmishAICallback),
16549            "::",
16550            stringify!(WeaponDef_Shield_getRadius)
16551        )
16552    );
16553    assert_eq!(
16554        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_Shield_getForce) as usize - ptr as usize },
16555        4456usize,
16556        concat!(
16557            "Offset of field: ",
16558            stringify!(SSkirmishAICallback),
16559            "::",
16560            stringify!(WeaponDef_Shield_getForce)
16561        )
16562    );
16563    assert_eq!(
16564        unsafe {
16565            ::std::ptr::addr_of!((*ptr).WeaponDef_Shield_getMaxSpeed) as usize - ptr as usize
16566        },
16567        4464usize,
16568        concat!(
16569            "Offset of field: ",
16570            stringify!(SSkirmishAICallback),
16571            "::",
16572            stringify!(WeaponDef_Shield_getMaxSpeed)
16573        )
16574    );
16575    assert_eq!(
16576        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_Shield_getPower) as usize - ptr as usize },
16577        4472usize,
16578        concat!(
16579            "Offset of field: ",
16580            stringify!(SSkirmishAICallback),
16581            "::",
16582            stringify!(WeaponDef_Shield_getPower)
16583        )
16584    );
16585    assert_eq!(
16586        unsafe {
16587            ::std::ptr::addr_of!((*ptr).WeaponDef_Shield_getPowerRegen) as usize - ptr as usize
16588        },
16589        4480usize,
16590        concat!(
16591            "Offset of field: ",
16592            stringify!(SSkirmishAICallback),
16593            "::",
16594            stringify!(WeaponDef_Shield_getPowerRegen)
16595        )
16596    );
16597    assert_eq!(
16598        unsafe {
16599            ::std::ptr::addr_of!((*ptr).WeaponDef_Shield_getPowerRegenResource) as usize
16600                - ptr as usize
16601        },
16602        4488usize,
16603        concat!(
16604            "Offset of field: ",
16605            stringify!(SSkirmishAICallback),
16606            "::",
16607            stringify!(WeaponDef_Shield_getPowerRegenResource)
16608        )
16609    );
16610    assert_eq!(
16611        unsafe {
16612            ::std::ptr::addr_of!((*ptr).WeaponDef_Shield_getStartingPower) as usize - ptr as usize
16613        },
16614        4496usize,
16615        concat!(
16616            "Offset of field: ",
16617            stringify!(SSkirmishAICallback),
16618            "::",
16619            stringify!(WeaponDef_Shield_getStartingPower)
16620        )
16621    );
16622    assert_eq!(
16623        unsafe {
16624            ::std::ptr::addr_of!((*ptr).WeaponDef_Shield_getRechargeDelay) as usize - ptr as usize
16625        },
16626        4504usize,
16627        concat!(
16628            "Offset of field: ",
16629            stringify!(SSkirmishAICallback),
16630            "::",
16631            stringify!(WeaponDef_Shield_getRechargeDelay)
16632        )
16633    );
16634    assert_eq!(
16635        unsafe {
16636            ::std::ptr::addr_of!((*ptr).WeaponDef_Shield_getInterceptType) as usize - ptr as usize
16637        },
16638        4512usize,
16639        concat!(
16640            "Offset of field: ",
16641            stringify!(SSkirmishAICallback),
16642            "::",
16643            stringify!(WeaponDef_Shield_getInterceptType)
16644        )
16645    );
16646    assert_eq!(
16647        unsafe {
16648            ::std::ptr::addr_of!((*ptr).WeaponDef_getInterceptedByShieldType) as usize
16649                - ptr as usize
16650        },
16651        4520usize,
16652        concat!(
16653            "Offset of field: ",
16654            stringify!(SSkirmishAICallback),
16655            "::",
16656            stringify!(WeaponDef_getInterceptedByShieldType)
16657        )
16658    );
16659    assert_eq!(
16660        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isAvoidFriendly) as usize - ptr as usize },
16661        4528usize,
16662        concat!(
16663            "Offset of field: ",
16664            stringify!(SSkirmishAICallback),
16665            "::",
16666            stringify!(WeaponDef_isAvoidFriendly)
16667        )
16668    );
16669    assert_eq!(
16670        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isAvoidFeature) as usize - ptr as usize },
16671        4536usize,
16672        concat!(
16673            "Offset of field: ",
16674            stringify!(SSkirmishAICallback),
16675            "::",
16676            stringify!(WeaponDef_isAvoidFeature)
16677        )
16678    );
16679    assert_eq!(
16680        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isAvoidNeutral) as usize - ptr as usize },
16681        4544usize,
16682        concat!(
16683            "Offset of field: ",
16684            stringify!(SSkirmishAICallback),
16685            "::",
16686            stringify!(WeaponDef_isAvoidNeutral)
16687        )
16688    );
16689    assert_eq!(
16690        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getTargetBorder) as usize - ptr as usize },
16691        4552usize,
16692        concat!(
16693            "Offset of field: ",
16694            stringify!(SSkirmishAICallback),
16695            "::",
16696            stringify!(WeaponDef_getTargetBorder)
16697        )
16698    );
16699    assert_eq!(
16700        unsafe {
16701            ::std::ptr::addr_of!((*ptr).WeaponDef_getCylinderTargetting) as usize - ptr as usize
16702        },
16703        4560usize,
16704        concat!(
16705            "Offset of field: ",
16706            stringify!(SSkirmishAICallback),
16707            "::",
16708            stringify!(WeaponDef_getCylinderTargetting)
16709        )
16710    );
16711    assert_eq!(
16712        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getMinIntensity) as usize - ptr as usize },
16713        4568usize,
16714        concat!(
16715            "Offset of field: ",
16716            stringify!(SSkirmishAICallback),
16717            "::",
16718            stringify!(WeaponDef_getMinIntensity)
16719        )
16720    );
16721    assert_eq!(
16722        unsafe {
16723            ::std::ptr::addr_of!((*ptr).WeaponDef_getHeightBoostFactor) as usize - ptr as usize
16724        },
16725        4576usize,
16726        concat!(
16727            "Offset of field: ",
16728            stringify!(SSkirmishAICallback),
16729            "::",
16730            stringify!(WeaponDef_getHeightBoostFactor)
16731        )
16732    );
16733    assert_eq!(
16734        unsafe {
16735            ::std::ptr::addr_of!((*ptr).WeaponDef_getProximityPriority) as usize - ptr as usize
16736        },
16737        4584usize,
16738        concat!(
16739            "Offset of field: ",
16740            stringify!(SSkirmishAICallback),
16741            "::",
16742            stringify!(WeaponDef_getProximityPriority)
16743        )
16744    );
16745    assert_eq!(
16746        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getCollisionFlags) as usize - ptr as usize },
16747        4592usize,
16748        concat!(
16749            "Offset of field: ",
16750            stringify!(SSkirmishAICallback),
16751            "::",
16752            stringify!(WeaponDef_getCollisionFlags)
16753        )
16754    );
16755    assert_eq!(
16756        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_isSweepFire) as usize - ptr as usize },
16757        4600usize,
16758        concat!(
16759            "Offset of field: ",
16760            stringify!(SSkirmishAICallback),
16761            "::",
16762            stringify!(WeaponDef_isSweepFire)
16763        )
16764    );
16765    assert_eq!(
16766        unsafe {
16767            ::std::ptr::addr_of!((*ptr).WeaponDef_isAbleToAttackGround) as usize - ptr as usize
16768        },
16769        4608usize,
16770        concat!(
16771            "Offset of field: ",
16772            stringify!(SSkirmishAICallback),
16773            "::",
16774            stringify!(WeaponDef_isAbleToAttackGround)
16775        )
16776    );
16777    assert_eq!(
16778        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getCameraShake) as usize - ptr as usize },
16779        4616usize,
16780        concat!(
16781            "Offset of field: ",
16782            stringify!(SSkirmishAICallback),
16783            "::",
16784            stringify!(WeaponDef_getCameraShake)
16785        )
16786    );
16787    assert_eq!(
16788        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getDynDamageExp) as usize - ptr as usize },
16789        4624usize,
16790        concat!(
16791            "Offset of field: ",
16792            stringify!(SSkirmishAICallback),
16793            "::",
16794            stringify!(WeaponDef_getDynDamageExp)
16795        )
16796    );
16797    assert_eq!(
16798        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getDynDamageMin) as usize - ptr as usize },
16799        4632usize,
16800        concat!(
16801            "Offset of field: ",
16802            stringify!(SSkirmishAICallback),
16803            "::",
16804            stringify!(WeaponDef_getDynDamageMin)
16805        )
16806    );
16807    assert_eq!(
16808        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getDynDamageRange) as usize - ptr as usize },
16809        4640usize,
16810        concat!(
16811            "Offset of field: ",
16812            stringify!(SSkirmishAICallback),
16813            "::",
16814            stringify!(WeaponDef_getDynDamageRange)
16815        )
16816    );
16817    assert_eq!(
16818        unsafe {
16819            ::std::ptr::addr_of!((*ptr).WeaponDef_isDynDamageInverted) as usize - ptr as usize
16820        },
16821        4648usize,
16822        concat!(
16823            "Offset of field: ",
16824            stringify!(SSkirmishAICallback),
16825            "::",
16826            stringify!(WeaponDef_isDynDamageInverted)
16827        )
16828    );
16829    assert_eq!(
16830        unsafe { ::std::ptr::addr_of!((*ptr).WeaponDef_getCustomParams) as usize - ptr as usize },
16831        4656usize,
16832        concat!(
16833            "Offset of field: ",
16834            stringify!(SSkirmishAICallback),
16835            "::",
16836            stringify!(WeaponDef_getCustomParams)
16837        )
16838    );
16839    assert_eq!(
16840        unsafe { ::std::ptr::addr_of!((*ptr).Unit_Weapon_getDef) as usize - ptr as usize },
16841        4664usize,
16842        concat!(
16843            "Offset of field: ",
16844            stringify!(SSkirmishAICallback),
16845            "::",
16846            stringify!(Unit_Weapon_getDef)
16847        )
16848    );
16849    assert_eq!(
16850        unsafe { ::std::ptr::addr_of!((*ptr).Unit_Weapon_getReloadFrame) as usize - ptr as usize },
16851        4672usize,
16852        concat!(
16853            "Offset of field: ",
16854            stringify!(SSkirmishAICallback),
16855            "::",
16856            stringify!(Unit_Weapon_getReloadFrame)
16857        )
16858    );
16859    assert_eq!(
16860        unsafe { ::std::ptr::addr_of!((*ptr).Unit_Weapon_getReloadTime) as usize - ptr as usize },
16861        4680usize,
16862        concat!(
16863            "Offset of field: ",
16864            stringify!(SSkirmishAICallback),
16865            "::",
16866            stringify!(Unit_Weapon_getReloadTime)
16867        )
16868    );
16869    assert_eq!(
16870        unsafe { ::std::ptr::addr_of!((*ptr).Unit_Weapon_getRange) as usize - ptr as usize },
16871        4688usize,
16872        concat!(
16873            "Offset of field: ",
16874            stringify!(SSkirmishAICallback),
16875            "::",
16876            stringify!(Unit_Weapon_getRange)
16877        )
16878    );
16879    assert_eq!(
16880        unsafe { ::std::ptr::addr_of!((*ptr).Unit_Weapon_isShieldEnabled) as usize - ptr as usize },
16881        4696usize,
16882        concat!(
16883            "Offset of field: ",
16884            stringify!(SSkirmishAICallback),
16885            "::",
16886            stringify!(Unit_Weapon_isShieldEnabled)
16887        )
16888    );
16889    assert_eq!(
16890        unsafe { ::std::ptr::addr_of!((*ptr).Unit_Weapon_getShieldPower) as usize - ptr as usize },
16891        4704usize,
16892        concat!(
16893            "Offset of field: ",
16894            stringify!(SSkirmishAICallback),
16895            "::",
16896            stringify!(Unit_Weapon_getShieldPower)
16897        )
16898    );
16899    assert_eq!(
16900        unsafe { ::std::ptr::addr_of!((*ptr).Debug_GraphDrawer_isEnabled) as usize - ptr as usize },
16901        4712usize,
16902        concat!(
16903            "Offset of field: ",
16904            stringify!(SSkirmishAICallback),
16905            "::",
16906            stringify!(Debug_GraphDrawer_isEnabled)
16907        )
16908    );
16909}
16910pub const EventTopic_EVENT_NULL: EventTopic = 0;
16911pub const EventTopic_EVENT_INIT: EventTopic = 1;
16912pub const EventTopic_EVENT_RELEASE: EventTopic = 2;
16913pub const EventTopic_EVENT_UPDATE: EventTopic = 3;
16914pub const EventTopic_EVENT_MESSAGE: EventTopic = 4;
16915pub const EventTopic_EVENT_UNIT_CREATED: EventTopic = 5;
16916pub const EventTopic_EVENT_UNIT_FINISHED: EventTopic = 6;
16917pub const EventTopic_EVENT_UNIT_IDLE: EventTopic = 7;
16918pub const EventTopic_EVENT_UNIT_MOVE_FAILED: EventTopic = 8;
16919pub const EventTopic_EVENT_UNIT_DAMAGED: EventTopic = 9;
16920pub const EventTopic_EVENT_UNIT_DESTROYED: EventTopic = 10;
16921pub const EventTopic_EVENT_UNIT_GIVEN: EventTopic = 11;
16922pub const EventTopic_EVENT_UNIT_CAPTURED: EventTopic = 12;
16923pub const EventTopic_EVENT_ENEMY_ENTER_LOS: EventTopic = 13;
16924pub const EventTopic_EVENT_ENEMY_LEAVE_LOS: EventTopic = 14;
16925pub const EventTopic_EVENT_ENEMY_ENTER_RADAR: EventTopic = 15;
16926pub const EventTopic_EVENT_ENEMY_LEAVE_RADAR: EventTopic = 16;
16927pub const EventTopic_EVENT_ENEMY_DAMAGED: EventTopic = 17;
16928pub const EventTopic_EVENT_ENEMY_DESTROYED: EventTopic = 18;
16929pub const EventTopic_EVENT_WEAPON_FIRED: EventTopic = 19;
16930pub const EventTopic_EVENT_PLAYER_COMMAND: EventTopic = 20;
16931pub const EventTopic_EVENT_SEISMIC_PING: EventTopic = 21;
16932pub const EventTopic_EVENT_COMMAND_FINISHED: EventTopic = 22;
16933pub const EventTopic_EVENT_LOAD: EventTopic = 23;
16934pub const EventTopic_EVENT_SAVE: EventTopic = 24;
16935pub const EventTopic_EVENT_ENEMY_CREATED: EventTopic = 25;
16936pub const EventTopic_EVENT_ENEMY_FINISHED: EventTopic = 26;
16937pub const EventTopic_EVENT_LUA_MESSAGE: EventTopic = 27;
16938#[doc = " Each event type can be identified through a unique ID,\n which we call event topic.\n Events are sent from the engine to AIs.\n\n Note: Do NOT change the values assigned to these topics,\n as this would be bad for inter-version compatibility.\n You should always append new event topics at the end of this list,\n and adjust NUM_EVENTS.\n\n @see SSkirmishAILibrary.handleEvent()"]
16939pub type EventTopic = ::std::os::raw::c_int;
16940pub const NUM_EVENTS: ::std::os::raw::c_int = 28;
16941#[doc = " This AI event initializes a Skirmish AI instance.\n It is sent only once per AI instance and game, as the very first event."]
16942#[repr(C)]
16943#[derive(Debug, Copy, Clone)]
16944pub struct SInitEvent {
16945    pub skirmishAIId: ::std::os::raw::c_int,
16946    pub callback: *const SSkirmishAICallback,
16947    pub savedGame: bool,
16948}
16949#[test]
16950fn bindgen_test_layout_SInitEvent() {
16951    const UNINIT: ::std::mem::MaybeUninit<SInitEvent> = ::std::mem::MaybeUninit::uninit();
16952    let ptr = UNINIT.as_ptr();
16953    assert_eq!(
16954        ::std::mem::size_of::<SInitEvent>(),
16955        24usize,
16956        concat!("Size of: ", stringify!(SInitEvent))
16957    );
16958    assert_eq!(
16959        ::std::mem::align_of::<SInitEvent>(),
16960        8usize,
16961        concat!("Alignment of ", stringify!(SInitEvent))
16962    );
16963    assert_eq!(
16964        unsafe { ::std::ptr::addr_of!((*ptr).skirmishAIId) as usize - ptr as usize },
16965        0usize,
16966        concat!(
16967            "Offset of field: ",
16968            stringify!(SInitEvent),
16969            "::",
16970            stringify!(skirmishAIId)
16971        )
16972    );
16973    assert_eq!(
16974        unsafe { ::std::ptr::addr_of!((*ptr).callback) as usize - ptr as usize },
16975        8usize,
16976        concat!(
16977            "Offset of field: ",
16978            stringify!(SInitEvent),
16979            "::",
16980            stringify!(callback)
16981        )
16982    );
16983    assert_eq!(
16984        unsafe { ::std::ptr::addr_of!((*ptr).savedGame) as usize - ptr as usize },
16985        16usize,
16986        concat!(
16987            "Offset of field: ",
16988            stringify!(SInitEvent),
16989            "::",
16990            stringify!(savedGame)
16991        )
16992    );
16993}
16994#[doc = " This AI event tells a Skirmish AI instance, that it is no longer needed. It\n can be used to free memory or do other cleanup work.\n It is sent only once per AI instance and game, as the very last event.\n Values description for reason:\n 0: unspecified\n 1: game ended\n 2: team died\n 3: AI killed\n 4: AI crashed\n 5: AI failed to init\n 6: connection lost\n 7: other reason"]
16995#[repr(C)]
16996#[derive(Debug, Copy, Clone)]
16997pub struct SReleaseEvent {
16998    pub reason: ::std::os::raw::c_int,
16999}
17000#[test]
17001fn bindgen_test_layout_SReleaseEvent() {
17002    const UNINIT: ::std::mem::MaybeUninit<SReleaseEvent> = ::std::mem::MaybeUninit::uninit();
17003    let ptr = UNINIT.as_ptr();
17004    assert_eq!(
17005        ::std::mem::size_of::<SReleaseEvent>(),
17006        4usize,
17007        concat!("Size of: ", stringify!(SReleaseEvent))
17008    );
17009    assert_eq!(
17010        ::std::mem::align_of::<SReleaseEvent>(),
17011        4usize,
17012        concat!("Alignment of ", stringify!(SReleaseEvent))
17013    );
17014    assert_eq!(
17015        unsafe { ::std::ptr::addr_of!((*ptr).reason) as usize - ptr as usize },
17016        0usize,
17017        concat!(
17018            "Offset of field: ",
17019            stringify!(SReleaseEvent),
17020            "::",
17021            stringify!(reason)
17022        )
17023    );
17024}
17025#[doc = " This AI event is sent once per game frame, which is about 30 times per second\n by default."]
17026#[repr(C)]
17027#[derive(Debug, Copy, Clone)]
17028pub struct SUpdateEvent {
17029    pub frame: ::std::os::raw::c_int,
17030}
17031#[test]
17032fn bindgen_test_layout_SUpdateEvent() {
17033    const UNINIT: ::std::mem::MaybeUninit<SUpdateEvent> = ::std::mem::MaybeUninit::uninit();
17034    let ptr = UNINIT.as_ptr();
17035    assert_eq!(
17036        ::std::mem::size_of::<SUpdateEvent>(),
17037        4usize,
17038        concat!("Size of: ", stringify!(SUpdateEvent))
17039    );
17040    assert_eq!(
17041        ::std::mem::align_of::<SUpdateEvent>(),
17042        4usize,
17043        concat!("Alignment of ", stringify!(SUpdateEvent))
17044    );
17045    assert_eq!(
17046        unsafe { ::std::ptr::addr_of!((*ptr).frame) as usize - ptr as usize },
17047        0usize,
17048        concat!(
17049            "Offset of field: ",
17050            stringify!(SUpdateEvent),
17051            "::",
17052            stringify!(frame)
17053        )
17054    );
17055}
17056#[doc = " This AI event is a notification about a chat message sent by one of the\n participants of this game, which may be a player or an AI, including this AI."]
17057#[repr(C)]
17058#[derive(Debug, Copy, Clone)]
17059pub struct SMessageEvent {
17060    pub player: ::std::os::raw::c_int,
17061    pub message: *const ::std::os::raw::c_char,
17062}
17063#[test]
17064fn bindgen_test_layout_SMessageEvent() {
17065    const UNINIT: ::std::mem::MaybeUninit<SMessageEvent> = ::std::mem::MaybeUninit::uninit();
17066    let ptr = UNINIT.as_ptr();
17067    assert_eq!(
17068        ::std::mem::size_of::<SMessageEvent>(),
17069        16usize,
17070        concat!("Size of: ", stringify!(SMessageEvent))
17071    );
17072    assert_eq!(
17073        ::std::mem::align_of::<SMessageEvent>(),
17074        8usize,
17075        concat!("Alignment of ", stringify!(SMessageEvent))
17076    );
17077    assert_eq!(
17078        unsafe { ::std::ptr::addr_of!((*ptr).player) as usize - ptr as usize },
17079        0usize,
17080        concat!(
17081            "Offset of field: ",
17082            stringify!(SMessageEvent),
17083            "::",
17084            stringify!(player)
17085        )
17086    );
17087    assert_eq!(
17088        unsafe { ::std::ptr::addr_of!((*ptr).message) as usize - ptr as usize },
17089        8usize,
17090        concat!(
17091            "Offset of field: ",
17092            stringify!(SMessageEvent),
17093            "::",
17094            stringify!(message)
17095        )
17096    );
17097}
17098#[doc = " This AI event triggers whenever any message\n is sent by a Lua widget or unsynced gadget."]
17099#[repr(C)]
17100#[derive(Debug, Copy, Clone)]
17101pub struct SLuaMessageEvent {
17102    pub inData: *const ::std::os::raw::c_char,
17103}
17104#[test]
17105fn bindgen_test_layout_SLuaMessageEvent() {
17106    const UNINIT: ::std::mem::MaybeUninit<SLuaMessageEvent> = ::std::mem::MaybeUninit::uninit();
17107    let ptr = UNINIT.as_ptr();
17108    assert_eq!(
17109        ::std::mem::size_of::<SLuaMessageEvent>(),
17110        8usize,
17111        concat!("Size of: ", stringify!(SLuaMessageEvent))
17112    );
17113    assert_eq!(
17114        ::std::mem::align_of::<SLuaMessageEvent>(),
17115        8usize,
17116        concat!("Alignment of ", stringify!(SLuaMessageEvent))
17117    );
17118    assert_eq!(
17119        unsafe { ::std::ptr::addr_of!((*ptr).inData) as usize - ptr as usize },
17120        0usize,
17121        concat!(
17122            "Offset of field: ",
17123            stringify!(SLuaMessageEvent),
17124            "::",
17125            stringify!(inData)
17126        )
17127    );
17128}
17129#[doc = " This AI event is sent whenever a unit of this team is created, and contains\n the created unit. Usually, the unit has only 1 HP at this time, and consists\n only of a nano frame (-> will not accept commands yet).\n See also the unit-finished event."]
17130#[repr(C)]
17131#[derive(Debug, Copy, Clone)]
17132pub struct SUnitCreatedEvent {
17133    pub unit: ::std::os::raw::c_int,
17134    pub builder: ::std::os::raw::c_int,
17135}
17136#[test]
17137fn bindgen_test_layout_SUnitCreatedEvent() {
17138    const UNINIT: ::std::mem::MaybeUninit<SUnitCreatedEvent> = ::std::mem::MaybeUninit::uninit();
17139    let ptr = UNINIT.as_ptr();
17140    assert_eq!(
17141        ::std::mem::size_of::<SUnitCreatedEvent>(),
17142        8usize,
17143        concat!("Size of: ", stringify!(SUnitCreatedEvent))
17144    );
17145    assert_eq!(
17146        ::std::mem::align_of::<SUnitCreatedEvent>(),
17147        4usize,
17148        concat!("Alignment of ", stringify!(SUnitCreatedEvent))
17149    );
17150    assert_eq!(
17151        unsafe { ::std::ptr::addr_of!((*ptr).unit) as usize - ptr as usize },
17152        0usize,
17153        concat!(
17154            "Offset of field: ",
17155            stringify!(SUnitCreatedEvent),
17156            "::",
17157            stringify!(unit)
17158        )
17159    );
17160    assert_eq!(
17161        unsafe { ::std::ptr::addr_of!((*ptr).builder) as usize - ptr as usize },
17162        4usize,
17163        concat!(
17164            "Offset of field: ",
17165            stringify!(SUnitCreatedEvent),
17166            "::",
17167            stringify!(builder)
17168        )
17169    );
17170}
17171#[doc = " This AI event is sent whenever a unit is fully built, and contains the\n finished unit. Usually, the unit has full health at this time, and is ready\n to accept commands.\n See also the unit-created event."]
17172#[repr(C)]
17173#[derive(Debug, Copy, Clone)]
17174pub struct SUnitFinishedEvent {
17175    pub unit: ::std::os::raw::c_int,
17176}
17177#[test]
17178fn bindgen_test_layout_SUnitFinishedEvent() {
17179    const UNINIT: ::std::mem::MaybeUninit<SUnitFinishedEvent> = ::std::mem::MaybeUninit::uninit();
17180    let ptr = UNINIT.as_ptr();
17181    assert_eq!(
17182        ::std::mem::size_of::<SUnitFinishedEvent>(),
17183        4usize,
17184        concat!("Size of: ", stringify!(SUnitFinishedEvent))
17185    );
17186    assert_eq!(
17187        ::std::mem::align_of::<SUnitFinishedEvent>(),
17188        4usize,
17189        concat!("Alignment of ", stringify!(SUnitFinishedEvent))
17190    );
17191    assert_eq!(
17192        unsafe { ::std::ptr::addr_of!((*ptr).unit) as usize - ptr as usize },
17193        0usize,
17194        concat!(
17195            "Offset of field: ",
17196            stringify!(SUnitFinishedEvent),
17197            "::",
17198            stringify!(unit)
17199        )
17200    );
17201}
17202#[doc = " This AI event is sent when a unit finished processing a command or just\n finished building, and it has currently no commands in it's queue."]
17203#[repr(C)]
17204#[derive(Debug, Copy, Clone)]
17205pub struct SUnitIdleEvent {
17206    pub unit: ::std::os::raw::c_int,
17207}
17208#[test]
17209fn bindgen_test_layout_SUnitIdleEvent() {
17210    const UNINIT: ::std::mem::MaybeUninit<SUnitIdleEvent> = ::std::mem::MaybeUninit::uninit();
17211    let ptr = UNINIT.as_ptr();
17212    assert_eq!(
17213        ::std::mem::size_of::<SUnitIdleEvent>(),
17214        4usize,
17215        concat!("Size of: ", stringify!(SUnitIdleEvent))
17216    );
17217    assert_eq!(
17218        ::std::mem::align_of::<SUnitIdleEvent>(),
17219        4usize,
17220        concat!("Alignment of ", stringify!(SUnitIdleEvent))
17221    );
17222    assert_eq!(
17223        unsafe { ::std::ptr::addr_of!((*ptr).unit) as usize - ptr as usize },
17224        0usize,
17225        concat!(
17226            "Offset of field: ",
17227            stringify!(SUnitIdleEvent),
17228            "::",
17229            stringify!(unit)
17230        )
17231    );
17232}
17233#[doc = " This AI event is sent when a unit received a move command and is not able to\n fullfill it. Reasons for this are:\n - The unit is not able to move\n - The path to the target location is blocked\n - The unit can not move on the terain of the target location (for example,\n   the target is on land, and the unit is a ship)"]
17234#[repr(C)]
17235#[derive(Debug, Copy, Clone)]
17236pub struct SUnitMoveFailedEvent {
17237    pub unit: ::std::os::raw::c_int,
17238}
17239#[test]
17240fn bindgen_test_layout_SUnitMoveFailedEvent() {
17241    const UNINIT: ::std::mem::MaybeUninit<SUnitMoveFailedEvent> = ::std::mem::MaybeUninit::uninit();
17242    let ptr = UNINIT.as_ptr();
17243    assert_eq!(
17244        ::std::mem::size_of::<SUnitMoveFailedEvent>(),
17245        4usize,
17246        concat!("Size of: ", stringify!(SUnitMoveFailedEvent))
17247    );
17248    assert_eq!(
17249        ::std::mem::align_of::<SUnitMoveFailedEvent>(),
17250        4usize,
17251        concat!("Alignment of ", stringify!(SUnitMoveFailedEvent))
17252    );
17253    assert_eq!(
17254        unsafe { ::std::ptr::addr_of!((*ptr).unit) as usize - ptr as usize },
17255        0usize,
17256        concat!(
17257            "Offset of field: ",
17258            stringify!(SUnitMoveFailedEvent),
17259            "::",
17260            stringify!(unit)
17261        )
17262    );
17263}
17264#[doc = " This AI event is sent when a unit was damaged. It contains the attacked unit,\n the attacking unit, the ammount of damage and the direction from where the\n damage was inflickted. In case of a laser weapon, the direction will point\n directly from the attacker to the attacked unit, while with artillery it will\n rather be from somewhere up in the sky to the attacked unit.\n See also the unit-destroyed event."]
17265#[repr(C)]
17266#[derive(Debug, Copy, Clone)]
17267pub struct SUnitDamagedEvent {
17268    pub unit: ::std::os::raw::c_int,
17269    #[doc = " may be -1, which means no attacker was directly involveld,\n or the attacker is not visible and cheat events are off"]
17270    pub attacker: ::std::os::raw::c_int,
17271    pub damage: f32,
17272    pub dir_posF3: *mut f32,
17273    pub weaponDefId: ::std::os::raw::c_int,
17274    #[doc = " if true, then damage is paralyzation damage, otherwise it is real damage"]
17275    pub paralyzer: bool,
17276}
17277#[test]
17278fn bindgen_test_layout_SUnitDamagedEvent() {
17279    const UNINIT: ::std::mem::MaybeUninit<SUnitDamagedEvent> = ::std::mem::MaybeUninit::uninit();
17280    let ptr = UNINIT.as_ptr();
17281    assert_eq!(
17282        ::std::mem::size_of::<SUnitDamagedEvent>(),
17283        32usize,
17284        concat!("Size of: ", stringify!(SUnitDamagedEvent))
17285    );
17286    assert_eq!(
17287        ::std::mem::align_of::<SUnitDamagedEvent>(),
17288        8usize,
17289        concat!("Alignment of ", stringify!(SUnitDamagedEvent))
17290    );
17291    assert_eq!(
17292        unsafe { ::std::ptr::addr_of!((*ptr).unit) as usize - ptr as usize },
17293        0usize,
17294        concat!(
17295            "Offset of field: ",
17296            stringify!(SUnitDamagedEvent),
17297            "::",
17298            stringify!(unit)
17299        )
17300    );
17301    assert_eq!(
17302        unsafe { ::std::ptr::addr_of!((*ptr).attacker) as usize - ptr as usize },
17303        4usize,
17304        concat!(
17305            "Offset of field: ",
17306            stringify!(SUnitDamagedEvent),
17307            "::",
17308            stringify!(attacker)
17309        )
17310    );
17311    assert_eq!(
17312        unsafe { ::std::ptr::addr_of!((*ptr).damage) as usize - ptr as usize },
17313        8usize,
17314        concat!(
17315            "Offset of field: ",
17316            stringify!(SUnitDamagedEvent),
17317            "::",
17318            stringify!(damage)
17319        )
17320    );
17321    assert_eq!(
17322        unsafe { ::std::ptr::addr_of!((*ptr).dir_posF3) as usize - ptr as usize },
17323        16usize,
17324        concat!(
17325            "Offset of field: ",
17326            stringify!(SUnitDamagedEvent),
17327            "::",
17328            stringify!(dir_posF3)
17329        )
17330    );
17331    assert_eq!(
17332        unsafe { ::std::ptr::addr_of!((*ptr).weaponDefId) as usize - ptr as usize },
17333        24usize,
17334        concat!(
17335            "Offset of field: ",
17336            stringify!(SUnitDamagedEvent),
17337            "::",
17338            stringify!(weaponDefId)
17339        )
17340    );
17341    assert_eq!(
17342        unsafe { ::std::ptr::addr_of!((*ptr).paralyzer) as usize - ptr as usize },
17343        28usize,
17344        concat!(
17345            "Offset of field: ",
17346            stringify!(SUnitDamagedEvent),
17347            "::",
17348            stringify!(paralyzer)
17349        )
17350    );
17351}
17352#[doc = " This AI event is sent when a unit was destroyed; see also the unit-damaged\n event."]
17353#[repr(C)]
17354#[derive(Debug, Copy, Clone)]
17355pub struct SUnitDestroyedEvent {
17356    pub unit: ::std::os::raw::c_int,
17357    #[doc = " may be -1, which means no attacker was directly involveld,\n or the attacker is not visible and cheat events are off"]
17358    pub attacker: ::std::os::raw::c_int,
17359    pub weaponDefID: ::std::os::raw::c_int,
17360}
17361#[test]
17362fn bindgen_test_layout_SUnitDestroyedEvent() {
17363    const UNINIT: ::std::mem::MaybeUninit<SUnitDestroyedEvent> = ::std::mem::MaybeUninit::uninit();
17364    let ptr = UNINIT.as_ptr();
17365    assert_eq!(
17366        ::std::mem::size_of::<SUnitDestroyedEvent>(),
17367        12usize,
17368        concat!("Size of: ", stringify!(SUnitDestroyedEvent))
17369    );
17370    assert_eq!(
17371        ::std::mem::align_of::<SUnitDestroyedEvent>(),
17372        4usize,
17373        concat!("Alignment of ", stringify!(SUnitDestroyedEvent))
17374    );
17375    assert_eq!(
17376        unsafe { ::std::ptr::addr_of!((*ptr).unit) as usize - ptr as usize },
17377        0usize,
17378        concat!(
17379            "Offset of field: ",
17380            stringify!(SUnitDestroyedEvent),
17381            "::",
17382            stringify!(unit)
17383        )
17384    );
17385    assert_eq!(
17386        unsafe { ::std::ptr::addr_of!((*ptr).attacker) as usize - ptr as usize },
17387        4usize,
17388        concat!(
17389            "Offset of field: ",
17390            stringify!(SUnitDestroyedEvent),
17391            "::",
17392            stringify!(attacker)
17393        )
17394    );
17395    assert_eq!(
17396        unsafe { ::std::ptr::addr_of!((*ptr).weaponDefID) as usize - ptr as usize },
17397        8usize,
17398        concat!(
17399            "Offset of field: ",
17400            stringify!(SUnitDestroyedEvent),
17401            "::",
17402            stringify!(weaponDefID)
17403        )
17404    );
17405}
17406#[doc = " This AI event is sent when a unit changed from one team to another,\n either because the old owner gave it to the new one, or because the\n new one took it from the old one; see the /take command.\n Both giving and receiving team will get this event."]
17407#[repr(C)]
17408#[derive(Debug, Copy, Clone)]
17409pub struct SUnitGivenEvent {
17410    pub unitId: ::std::os::raw::c_int,
17411    pub oldTeamId: ::std::os::raw::c_int,
17412    pub newTeamId: ::std::os::raw::c_int,
17413}
17414#[test]
17415fn bindgen_test_layout_SUnitGivenEvent() {
17416    const UNINIT: ::std::mem::MaybeUninit<SUnitGivenEvent> = ::std::mem::MaybeUninit::uninit();
17417    let ptr = UNINIT.as_ptr();
17418    assert_eq!(
17419        ::std::mem::size_of::<SUnitGivenEvent>(),
17420        12usize,
17421        concat!("Size of: ", stringify!(SUnitGivenEvent))
17422    );
17423    assert_eq!(
17424        ::std::mem::align_of::<SUnitGivenEvent>(),
17425        4usize,
17426        concat!("Alignment of ", stringify!(SUnitGivenEvent))
17427    );
17428    assert_eq!(
17429        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
17430        0usize,
17431        concat!(
17432            "Offset of field: ",
17433            stringify!(SUnitGivenEvent),
17434            "::",
17435            stringify!(unitId)
17436        )
17437    );
17438    assert_eq!(
17439        unsafe { ::std::ptr::addr_of!((*ptr).oldTeamId) as usize - ptr as usize },
17440        4usize,
17441        concat!(
17442            "Offset of field: ",
17443            stringify!(SUnitGivenEvent),
17444            "::",
17445            stringify!(oldTeamId)
17446        )
17447    );
17448    assert_eq!(
17449        unsafe { ::std::ptr::addr_of!((*ptr).newTeamId) as usize - ptr as usize },
17450        8usize,
17451        concat!(
17452            "Offset of field: ",
17453            stringify!(SUnitGivenEvent),
17454            "::",
17455            stringify!(newTeamId)
17456        )
17457    );
17458}
17459#[doc = " This AI event is sent when a unit changed from one team to an other through\n capturing.\n Both giving and receiving team will get this event."]
17460#[repr(C)]
17461#[derive(Debug, Copy, Clone)]
17462pub struct SUnitCapturedEvent {
17463    pub unitId: ::std::os::raw::c_int,
17464    pub oldTeamId: ::std::os::raw::c_int,
17465    pub newTeamId: ::std::os::raw::c_int,
17466}
17467#[test]
17468fn bindgen_test_layout_SUnitCapturedEvent() {
17469    const UNINIT: ::std::mem::MaybeUninit<SUnitCapturedEvent> = ::std::mem::MaybeUninit::uninit();
17470    let ptr = UNINIT.as_ptr();
17471    assert_eq!(
17472        ::std::mem::size_of::<SUnitCapturedEvent>(),
17473        12usize,
17474        concat!("Size of: ", stringify!(SUnitCapturedEvent))
17475    );
17476    assert_eq!(
17477        ::std::mem::align_of::<SUnitCapturedEvent>(),
17478        4usize,
17479        concat!("Alignment of ", stringify!(SUnitCapturedEvent))
17480    );
17481    assert_eq!(
17482        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
17483        0usize,
17484        concat!(
17485            "Offset of field: ",
17486            stringify!(SUnitCapturedEvent),
17487            "::",
17488            stringify!(unitId)
17489        )
17490    );
17491    assert_eq!(
17492        unsafe { ::std::ptr::addr_of!((*ptr).oldTeamId) as usize - ptr as usize },
17493        4usize,
17494        concat!(
17495            "Offset of field: ",
17496            stringify!(SUnitCapturedEvent),
17497            "::",
17498            stringify!(oldTeamId)
17499        )
17500    );
17501    assert_eq!(
17502        unsafe { ::std::ptr::addr_of!((*ptr).newTeamId) as usize - ptr as usize },
17503        8usize,
17504        concat!(
17505            "Offset of field: ",
17506            stringify!(SUnitCapturedEvent),
17507            "::",
17508            stringify!(newTeamId)
17509        )
17510    );
17511}
17512#[doc = " This AI event is sent when an enemy unit entered the LOS of this team."]
17513#[repr(C)]
17514#[derive(Debug, Copy, Clone)]
17515pub struct SEnemyEnterLOSEvent {
17516    pub enemy: ::std::os::raw::c_int,
17517}
17518#[test]
17519fn bindgen_test_layout_SEnemyEnterLOSEvent() {
17520    const UNINIT: ::std::mem::MaybeUninit<SEnemyEnterLOSEvent> = ::std::mem::MaybeUninit::uninit();
17521    let ptr = UNINIT.as_ptr();
17522    assert_eq!(
17523        ::std::mem::size_of::<SEnemyEnterLOSEvent>(),
17524        4usize,
17525        concat!("Size of: ", stringify!(SEnemyEnterLOSEvent))
17526    );
17527    assert_eq!(
17528        ::std::mem::align_of::<SEnemyEnterLOSEvent>(),
17529        4usize,
17530        concat!("Alignment of ", stringify!(SEnemyEnterLOSEvent))
17531    );
17532    assert_eq!(
17533        unsafe { ::std::ptr::addr_of!((*ptr).enemy) as usize - ptr as usize },
17534        0usize,
17535        concat!(
17536            "Offset of field: ",
17537            stringify!(SEnemyEnterLOSEvent),
17538            "::",
17539            stringify!(enemy)
17540        )
17541    );
17542}
17543#[doc = " This AI event is sent when an enemy unit left the LOS of this team."]
17544#[repr(C)]
17545#[derive(Debug, Copy, Clone)]
17546pub struct SEnemyLeaveLOSEvent {
17547    pub enemy: ::std::os::raw::c_int,
17548}
17549#[test]
17550fn bindgen_test_layout_SEnemyLeaveLOSEvent() {
17551    const UNINIT: ::std::mem::MaybeUninit<SEnemyLeaveLOSEvent> = ::std::mem::MaybeUninit::uninit();
17552    let ptr = UNINIT.as_ptr();
17553    assert_eq!(
17554        ::std::mem::size_of::<SEnemyLeaveLOSEvent>(),
17555        4usize,
17556        concat!("Size of: ", stringify!(SEnemyLeaveLOSEvent))
17557    );
17558    assert_eq!(
17559        ::std::mem::align_of::<SEnemyLeaveLOSEvent>(),
17560        4usize,
17561        concat!("Alignment of ", stringify!(SEnemyLeaveLOSEvent))
17562    );
17563    assert_eq!(
17564        unsafe { ::std::ptr::addr_of!((*ptr).enemy) as usize - ptr as usize },
17565        0usize,
17566        concat!(
17567            "Offset of field: ",
17568            stringify!(SEnemyLeaveLOSEvent),
17569            "::",
17570            stringify!(enemy)
17571        )
17572    );
17573}
17574#[doc = " This AI event is sent when an enemy unit entered the radar covered area of\n this team."]
17575#[repr(C)]
17576#[derive(Debug, Copy, Clone)]
17577pub struct SEnemyEnterRadarEvent {
17578    pub enemy: ::std::os::raw::c_int,
17579}
17580#[test]
17581fn bindgen_test_layout_SEnemyEnterRadarEvent() {
17582    const UNINIT: ::std::mem::MaybeUninit<SEnemyEnterRadarEvent> =
17583        ::std::mem::MaybeUninit::uninit();
17584    let ptr = UNINIT.as_ptr();
17585    assert_eq!(
17586        ::std::mem::size_of::<SEnemyEnterRadarEvent>(),
17587        4usize,
17588        concat!("Size of: ", stringify!(SEnemyEnterRadarEvent))
17589    );
17590    assert_eq!(
17591        ::std::mem::align_of::<SEnemyEnterRadarEvent>(),
17592        4usize,
17593        concat!("Alignment of ", stringify!(SEnemyEnterRadarEvent))
17594    );
17595    assert_eq!(
17596        unsafe { ::std::ptr::addr_of!((*ptr).enemy) as usize - ptr as usize },
17597        0usize,
17598        concat!(
17599            "Offset of field: ",
17600            stringify!(SEnemyEnterRadarEvent),
17601            "::",
17602            stringify!(enemy)
17603        )
17604    );
17605}
17606#[doc = " This AI event is sent when an enemy unit left the radar covered area of this\n team."]
17607#[repr(C)]
17608#[derive(Debug, Copy, Clone)]
17609pub struct SEnemyLeaveRadarEvent {
17610    pub enemy: ::std::os::raw::c_int,
17611}
17612#[test]
17613fn bindgen_test_layout_SEnemyLeaveRadarEvent() {
17614    const UNINIT: ::std::mem::MaybeUninit<SEnemyLeaveRadarEvent> =
17615        ::std::mem::MaybeUninit::uninit();
17616    let ptr = UNINIT.as_ptr();
17617    assert_eq!(
17618        ::std::mem::size_of::<SEnemyLeaveRadarEvent>(),
17619        4usize,
17620        concat!("Size of: ", stringify!(SEnemyLeaveRadarEvent))
17621    );
17622    assert_eq!(
17623        ::std::mem::align_of::<SEnemyLeaveRadarEvent>(),
17624        4usize,
17625        concat!("Alignment of ", stringify!(SEnemyLeaveRadarEvent))
17626    );
17627    assert_eq!(
17628        unsafe { ::std::ptr::addr_of!((*ptr).enemy) as usize - ptr as usize },
17629        0usize,
17630        concat!(
17631            "Offset of field: ",
17632            stringify!(SEnemyLeaveRadarEvent),
17633            "::",
17634            stringify!(enemy)
17635        )
17636    );
17637}
17638#[doc = " This AI event is sent when an enemy unit was damaged. It contains the\n attacked unit, the attacking unit, the ammount of damage and the direction\n from where the damage was inflickted. In case of a laser weapon, the\n direction will point directly from the attacker to the attacked unit, while\n with artillery it will rather be from somewhere up in the sky to the attacked\n unit.\n See also the enemy-destroyed event."]
17639#[repr(C)]
17640#[derive(Debug, Copy, Clone)]
17641pub struct SEnemyDamagedEvent {
17642    pub enemy: ::std::os::raw::c_int,
17643    #[doc = " may be -1, which means no attacker was directly involveld,\n or the attacker is not allied with the team receiving this event"]
17644    pub attacker: ::std::os::raw::c_int,
17645    pub damage: f32,
17646    pub dir_posF3: *mut f32,
17647    pub weaponDefId: ::std::os::raw::c_int,
17648    #[doc = " if true, then damage is paralyzation damage, otherwise it is real damage"]
17649    pub paralyzer: bool,
17650}
17651#[test]
17652fn bindgen_test_layout_SEnemyDamagedEvent() {
17653    const UNINIT: ::std::mem::MaybeUninit<SEnemyDamagedEvent> = ::std::mem::MaybeUninit::uninit();
17654    let ptr = UNINIT.as_ptr();
17655    assert_eq!(
17656        ::std::mem::size_of::<SEnemyDamagedEvent>(),
17657        32usize,
17658        concat!("Size of: ", stringify!(SEnemyDamagedEvent))
17659    );
17660    assert_eq!(
17661        ::std::mem::align_of::<SEnemyDamagedEvent>(),
17662        8usize,
17663        concat!("Alignment of ", stringify!(SEnemyDamagedEvent))
17664    );
17665    assert_eq!(
17666        unsafe { ::std::ptr::addr_of!((*ptr).enemy) as usize - ptr as usize },
17667        0usize,
17668        concat!(
17669            "Offset of field: ",
17670            stringify!(SEnemyDamagedEvent),
17671            "::",
17672            stringify!(enemy)
17673        )
17674    );
17675    assert_eq!(
17676        unsafe { ::std::ptr::addr_of!((*ptr).attacker) as usize - ptr as usize },
17677        4usize,
17678        concat!(
17679            "Offset of field: ",
17680            stringify!(SEnemyDamagedEvent),
17681            "::",
17682            stringify!(attacker)
17683        )
17684    );
17685    assert_eq!(
17686        unsafe { ::std::ptr::addr_of!((*ptr).damage) as usize - ptr as usize },
17687        8usize,
17688        concat!(
17689            "Offset of field: ",
17690            stringify!(SEnemyDamagedEvent),
17691            "::",
17692            stringify!(damage)
17693        )
17694    );
17695    assert_eq!(
17696        unsafe { ::std::ptr::addr_of!((*ptr).dir_posF3) as usize - ptr as usize },
17697        16usize,
17698        concat!(
17699            "Offset of field: ",
17700            stringify!(SEnemyDamagedEvent),
17701            "::",
17702            stringify!(dir_posF3)
17703        )
17704    );
17705    assert_eq!(
17706        unsafe { ::std::ptr::addr_of!((*ptr).weaponDefId) as usize - ptr as usize },
17707        24usize,
17708        concat!(
17709            "Offset of field: ",
17710            stringify!(SEnemyDamagedEvent),
17711            "::",
17712            stringify!(weaponDefId)
17713        )
17714    );
17715    assert_eq!(
17716        unsafe { ::std::ptr::addr_of!((*ptr).paralyzer) as usize - ptr as usize },
17717        28usize,
17718        concat!(
17719            "Offset of field: ",
17720            stringify!(SEnemyDamagedEvent),
17721            "::",
17722            stringify!(paralyzer)
17723        )
17724    );
17725}
17726#[doc = " This AI event is sent when an enemy unit was destroyed; see also the\n enemy-damaged event."]
17727#[repr(C)]
17728#[derive(Debug, Copy, Clone)]
17729pub struct SEnemyDestroyedEvent {
17730    pub enemy: ::std::os::raw::c_int,
17731    #[doc = " may be -1, which means no attacker was directly involveld,\n or the attacker is not allied with the team receiving this event"]
17732    pub attacker: ::std::os::raw::c_int,
17733}
17734#[test]
17735fn bindgen_test_layout_SEnemyDestroyedEvent() {
17736    const UNINIT: ::std::mem::MaybeUninit<SEnemyDestroyedEvent> = ::std::mem::MaybeUninit::uninit();
17737    let ptr = UNINIT.as_ptr();
17738    assert_eq!(
17739        ::std::mem::size_of::<SEnemyDestroyedEvent>(),
17740        8usize,
17741        concat!("Size of: ", stringify!(SEnemyDestroyedEvent))
17742    );
17743    assert_eq!(
17744        ::std::mem::align_of::<SEnemyDestroyedEvent>(),
17745        4usize,
17746        concat!("Alignment of ", stringify!(SEnemyDestroyedEvent))
17747    );
17748    assert_eq!(
17749        unsafe { ::std::ptr::addr_of!((*ptr).enemy) as usize - ptr as usize },
17750        0usize,
17751        concat!(
17752            "Offset of field: ",
17753            stringify!(SEnemyDestroyedEvent),
17754            "::",
17755            stringify!(enemy)
17756        )
17757    );
17758    assert_eq!(
17759        unsafe { ::std::ptr::addr_of!((*ptr).attacker) as usize - ptr as usize },
17760        4usize,
17761        concat!(
17762            "Offset of field: ",
17763            stringify!(SEnemyDestroyedEvent),
17764            "::",
17765            stringify!(attacker)
17766        )
17767    );
17768}
17769#[doc = " This AI event is sent when certain weapons are fired.\n For performance reasons, it is not possible to send this event\n for all weapons. Therefore, it is currently only sent for manuall-fire\n weapons like for example the TA Commanders D-Gun or the Nuke."]
17770#[repr(C)]
17771#[derive(Debug, Copy, Clone)]
17772pub struct SWeaponFiredEvent {
17773    pub unitId: ::std::os::raw::c_int,
17774    pub weaponDefId: ::std::os::raw::c_int,
17775}
17776#[test]
17777fn bindgen_test_layout_SWeaponFiredEvent() {
17778    const UNINIT: ::std::mem::MaybeUninit<SWeaponFiredEvent> = ::std::mem::MaybeUninit::uninit();
17779    let ptr = UNINIT.as_ptr();
17780    assert_eq!(
17781        ::std::mem::size_of::<SWeaponFiredEvent>(),
17782        8usize,
17783        concat!("Size of: ", stringify!(SWeaponFiredEvent))
17784    );
17785    assert_eq!(
17786        ::std::mem::align_of::<SWeaponFiredEvent>(),
17787        4usize,
17788        concat!("Alignment of ", stringify!(SWeaponFiredEvent))
17789    );
17790    assert_eq!(
17791        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
17792        0usize,
17793        concat!(
17794            "Offset of field: ",
17795            stringify!(SWeaponFiredEvent),
17796            "::",
17797            stringify!(unitId)
17798        )
17799    );
17800    assert_eq!(
17801        unsafe { ::std::ptr::addr_of!((*ptr).weaponDefId) as usize - ptr as usize },
17802        4usize,
17803        concat!(
17804            "Offset of field: ",
17805            stringify!(SWeaponFiredEvent),
17806            "::",
17807            stringify!(weaponDefId)
17808        )
17809    );
17810}
17811#[doc = " This AI event is sent when a user gives a command to one or multiple units\n belonging to a team controlled by the AI.\n For more info about the given commands, please use the\n Unit.getCurrentCommands() method of the callback."]
17812#[repr(C)]
17813#[derive(Debug, Copy, Clone)]
17814pub struct SPlayerCommandEvent {
17815    pub unitIds: *mut ::std::os::raw::c_int,
17816    pub unitIds_size: ::std::os::raw::c_int,
17817    #[doc = " see COMMAND_* defines in AISCommands.h"]
17818    pub commandTopicId: ::std::os::raw::c_int,
17819    #[doc = " Id of the player that issued the command"]
17820    pub playerId: ::std::os::raw::c_int,
17821}
17822#[test]
17823fn bindgen_test_layout_SPlayerCommandEvent() {
17824    const UNINIT: ::std::mem::MaybeUninit<SPlayerCommandEvent> = ::std::mem::MaybeUninit::uninit();
17825    let ptr = UNINIT.as_ptr();
17826    assert_eq!(
17827        ::std::mem::size_of::<SPlayerCommandEvent>(),
17828        24usize,
17829        concat!("Size of: ", stringify!(SPlayerCommandEvent))
17830    );
17831    assert_eq!(
17832        ::std::mem::align_of::<SPlayerCommandEvent>(),
17833        8usize,
17834        concat!("Alignment of ", stringify!(SPlayerCommandEvent))
17835    );
17836    assert_eq!(
17837        unsafe { ::std::ptr::addr_of!((*ptr).unitIds) as usize - ptr as usize },
17838        0usize,
17839        concat!(
17840            "Offset of field: ",
17841            stringify!(SPlayerCommandEvent),
17842            "::",
17843            stringify!(unitIds)
17844        )
17845    );
17846    assert_eq!(
17847        unsafe { ::std::ptr::addr_of!((*ptr).unitIds_size) as usize - ptr as usize },
17848        8usize,
17849        concat!(
17850            "Offset of field: ",
17851            stringify!(SPlayerCommandEvent),
17852            "::",
17853            stringify!(unitIds_size)
17854        )
17855    );
17856    assert_eq!(
17857        unsafe { ::std::ptr::addr_of!((*ptr).commandTopicId) as usize - ptr as usize },
17858        12usize,
17859        concat!(
17860            "Offset of field: ",
17861            stringify!(SPlayerCommandEvent),
17862            "::",
17863            stringify!(commandTopicId)
17864        )
17865    );
17866    assert_eq!(
17867        unsafe { ::std::ptr::addr_of!((*ptr).playerId) as usize - ptr as usize },
17868        16usize,
17869        concat!(
17870            "Offset of field: ",
17871            stringify!(SPlayerCommandEvent),
17872            "::",
17873            stringify!(playerId)
17874        )
17875    );
17876}
17877#[doc = " This AI event is sent when a unit finished processing a command.\n @param commandId      used on asynchronous commands only (is -1 for regular commands).\n                       this allows the AI to identify a possible result event,\n                       which would come with the same id\n @param commandTopicId unique identifier of a command\n                       (see COMMAND_* defines in AISCommands.h)\n @see callback.handleCommand(..., int commandId, ...)"]
17878#[repr(C)]
17879#[derive(Debug, Copy, Clone)]
17880pub struct SCommandFinishedEvent {
17881    pub unitId: ::std::os::raw::c_int,
17882    pub commandId: ::std::os::raw::c_int,
17883    pub commandTopicId: ::std::os::raw::c_int,
17884}
17885#[test]
17886fn bindgen_test_layout_SCommandFinishedEvent() {
17887    const UNINIT: ::std::mem::MaybeUninit<SCommandFinishedEvent> =
17888        ::std::mem::MaybeUninit::uninit();
17889    let ptr = UNINIT.as_ptr();
17890    assert_eq!(
17891        ::std::mem::size_of::<SCommandFinishedEvent>(),
17892        12usize,
17893        concat!("Size of: ", stringify!(SCommandFinishedEvent))
17894    );
17895    assert_eq!(
17896        ::std::mem::align_of::<SCommandFinishedEvent>(),
17897        4usize,
17898        concat!("Alignment of ", stringify!(SCommandFinishedEvent))
17899    );
17900    assert_eq!(
17901        unsafe { ::std::ptr::addr_of!((*ptr).unitId) as usize - ptr as usize },
17902        0usize,
17903        concat!(
17904            "Offset of field: ",
17905            stringify!(SCommandFinishedEvent),
17906            "::",
17907            stringify!(unitId)
17908        )
17909    );
17910    assert_eq!(
17911        unsafe { ::std::ptr::addr_of!((*ptr).commandId) as usize - ptr as usize },
17912        4usize,
17913        concat!(
17914            "Offset of field: ",
17915            stringify!(SCommandFinishedEvent),
17916            "::",
17917            stringify!(commandId)
17918        )
17919    );
17920    assert_eq!(
17921        unsafe { ::std::ptr::addr_of!((*ptr).commandTopicId) as usize - ptr as usize },
17922        8usize,
17923        concat!(
17924            "Offset of field: ",
17925            stringify!(SCommandFinishedEvent),
17926            "::",
17927            stringify!(commandTopicId)
17928        )
17929    );
17930}
17931#[doc = " This AI event is sent when a unit movement is detected by means of a seismic\n event. A seismic event means erruption/movement/shakings of the ground. This\n can be detected by only by special units usually, eg by the seismic detector\n building in Balanced Annihilation."]
17932#[repr(C)]
17933#[derive(Debug, Copy, Clone)]
17934pub struct SSeismicPingEvent {
17935    pub pos_posF3: *mut f32,
17936    pub strength: f32,
17937}
17938#[test]
17939fn bindgen_test_layout_SSeismicPingEvent() {
17940    const UNINIT: ::std::mem::MaybeUninit<SSeismicPingEvent> = ::std::mem::MaybeUninit::uninit();
17941    let ptr = UNINIT.as_ptr();
17942    assert_eq!(
17943        ::std::mem::size_of::<SSeismicPingEvent>(),
17944        16usize,
17945        concat!("Size of: ", stringify!(SSeismicPingEvent))
17946    );
17947    assert_eq!(
17948        ::std::mem::align_of::<SSeismicPingEvent>(),
17949        8usize,
17950        concat!("Alignment of ", stringify!(SSeismicPingEvent))
17951    );
17952    assert_eq!(
17953        unsafe { ::std::ptr::addr_of!((*ptr).pos_posF3) as usize - ptr as usize },
17954        0usize,
17955        concat!(
17956            "Offset of field: ",
17957            stringify!(SSeismicPingEvent),
17958            "::",
17959            stringify!(pos_posF3)
17960        )
17961    );
17962    assert_eq!(
17963        unsafe { ::std::ptr::addr_of!((*ptr).strength) as usize - ptr as usize },
17964        8usize,
17965        concat!(
17966            "Offset of field: ",
17967            stringify!(SSeismicPingEvent),
17968            "::",
17969            stringify!(strength)
17970        )
17971    );
17972}
17973#[doc = " This AI event is sent when the AI should be loading its full state from a\n file."]
17974#[repr(C)]
17975#[derive(Debug, Copy, Clone)]
17976pub struct SLoadEvent {
17977    #[doc = " Absolute file path, should be treated read-only"]
17978    pub file: *const ::std::os::raw::c_char,
17979}
17980#[test]
17981fn bindgen_test_layout_SLoadEvent() {
17982    const UNINIT: ::std::mem::MaybeUninit<SLoadEvent> = ::std::mem::MaybeUninit::uninit();
17983    let ptr = UNINIT.as_ptr();
17984    assert_eq!(
17985        ::std::mem::size_of::<SLoadEvent>(),
17986        8usize,
17987        concat!("Size of: ", stringify!(SLoadEvent))
17988    );
17989    assert_eq!(
17990        ::std::mem::align_of::<SLoadEvent>(),
17991        8usize,
17992        concat!("Alignment of ", stringify!(SLoadEvent))
17993    );
17994    assert_eq!(
17995        unsafe { ::std::ptr::addr_of!((*ptr).file) as usize - ptr as usize },
17996        0usize,
17997        concat!(
17998            "Offset of field: ",
17999            stringify!(SLoadEvent),
18000            "::",
18001            stringify!(file)
18002        )
18003    );
18004}
18005#[doc = " This AI event is sent when the AI should be saving its full state to a file."]
18006#[repr(C)]
18007#[derive(Debug, Copy, Clone)]
18008pub struct SSaveEvent {
18009    #[doc = " Absolute file path, writable"]
18010    pub file: *const ::std::os::raw::c_char,
18011}
18012#[test]
18013fn bindgen_test_layout_SSaveEvent() {
18014    const UNINIT: ::std::mem::MaybeUninit<SSaveEvent> = ::std::mem::MaybeUninit::uninit();
18015    let ptr = UNINIT.as_ptr();
18016    assert_eq!(
18017        ::std::mem::size_of::<SSaveEvent>(),
18018        8usize,
18019        concat!("Size of: ", stringify!(SSaveEvent))
18020    );
18021    assert_eq!(
18022        ::std::mem::align_of::<SSaveEvent>(),
18023        8usize,
18024        concat!("Alignment of ", stringify!(SSaveEvent))
18025    );
18026    assert_eq!(
18027        unsafe { ::std::ptr::addr_of!((*ptr).file) as usize - ptr as usize },
18028        0usize,
18029        concat!(
18030            "Offset of field: ",
18031            stringify!(SSaveEvent),
18032            "::",
18033            stringify!(file)
18034        )
18035    );
18036}
18037#[doc = " This AI event is sent whenever a unit of an enemy team is created,\n and contains the created unit. Usually, the unit has only 1 HP at this time,\n and consists only of a nano frame.\n See also the enemy-finished event."]
18038#[repr(C)]
18039#[derive(Debug, Copy, Clone)]
18040pub struct SEnemyCreatedEvent {
18041    pub enemy: ::std::os::raw::c_int,
18042}
18043#[test]
18044fn bindgen_test_layout_SEnemyCreatedEvent() {
18045    const UNINIT: ::std::mem::MaybeUninit<SEnemyCreatedEvent> = ::std::mem::MaybeUninit::uninit();
18046    let ptr = UNINIT.as_ptr();
18047    assert_eq!(
18048        ::std::mem::size_of::<SEnemyCreatedEvent>(),
18049        4usize,
18050        concat!("Size of: ", stringify!(SEnemyCreatedEvent))
18051    );
18052    assert_eq!(
18053        ::std::mem::align_of::<SEnemyCreatedEvent>(),
18054        4usize,
18055        concat!("Alignment of ", stringify!(SEnemyCreatedEvent))
18056    );
18057    assert_eq!(
18058        unsafe { ::std::ptr::addr_of!((*ptr).enemy) as usize - ptr as usize },
18059        0usize,
18060        concat!(
18061            "Offset of field: ",
18062            stringify!(SEnemyCreatedEvent),
18063            "::",
18064            stringify!(enemy)
18065        )
18066    );
18067}
18068#[doc = " This AI event is sent whenever an enemy unit is fully built, and contains the\n finished unit. Usually, the unit has full health at this time.\n See also the unit-created event."]
18069#[repr(C)]
18070#[derive(Debug, Copy, Clone)]
18071pub struct SEnemyFinishedEvent {
18072    pub enemy: ::std::os::raw::c_int,
18073}
18074#[test]
18075fn bindgen_test_layout_SEnemyFinishedEvent() {
18076    const UNINIT: ::std::mem::MaybeUninit<SEnemyFinishedEvent> = ::std::mem::MaybeUninit::uninit();
18077    let ptr = UNINIT.as_ptr();
18078    assert_eq!(
18079        ::std::mem::size_of::<SEnemyFinishedEvent>(),
18080        4usize,
18081        concat!("Size of: ", stringify!(SEnemyFinishedEvent))
18082    );
18083    assert_eq!(
18084        ::std::mem::align_of::<SEnemyFinishedEvent>(),
18085        4usize,
18086        concat!("Alignment of ", stringify!(SEnemyFinishedEvent))
18087    );
18088    assert_eq!(
18089        unsafe { ::std::ptr::addr_of!((*ptr).enemy) as usize - ptr as usize },
18090        0usize,
18091        concat!(
18092            "Offset of field: ",
18093            stringify!(SEnemyFinishedEvent),
18094            "::",
18095            stringify!(enemy)
18096        )
18097    );
18098}
18099pub const LevelOfSupport_LOS_None: LevelOfSupport = 0;
18100pub const LevelOfSupport_LOS_Bad: LevelOfSupport = 1;
18101pub const LevelOfSupport_LOS_Working: LevelOfSupport = 2;
18102pub const LevelOfSupport_LOS_Compleet: LevelOfSupport = 3;
18103pub const LevelOfSupport_LOS_Optimal: LevelOfSupport = 4;
18104pub const LevelOfSupport_LOS_Unknown: LevelOfSupport = 5;
18105#[doc = " @brief level of support\n\n This is used by Skirmish AIs for example.\n The engine can pass some info to the AI,\n eg. a mod name plus version and the engine version,\n and the AI will report with a value from this enum,\n to indicate the level of support it can serve for a\n game using all of the supplied info.\n If the AI is unable to determine its level of support,\n it should return LOS_Unknown."]
18106pub type LevelOfSupport = ::std::os::raw::c_int;
18107#[doc = " AI Interface -> engine callback.\n Each AI Interface will receive an instance of this struct at initialization.\n The interfaceId passed as the first parameter to each function in this struct\n has to be the same as the one received by the interface,\n when it received the instance of this struct.\n @see SAIInterfaceLibrary"]
18108#[repr(C)]
18109#[derive(Debug, Copy, Clone)]
18110pub struct SAIInterfaceCallback {
18111    #[doc = " Returns the Application Binary Interface version, fail part.\n If the engine and the AI INterface differ in this,\n the AI Interface will not be used.\n Changes here usually indicate that struct memebers were\n added or removed."]
18112    pub Engine_AIInterface_ABIVersion_getFailPart: ::std::option::Option<
18113        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
18114    >,
18115    #[doc = " Returns the Application Binary Interface version, warning part.\n Interface and engine will try to run/work together,\n if they differ only in the warning part of the ABI version.\n Changes here could indicate that function arguments got changed,\n which could cause a crash, but it could be unimportant changes\n like added comments or code reformatting aswell."]
18116    pub Engine_AIInterface_ABIVersion_getWarningPart: ::std::option::Option<
18117        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
18118    >,
18119    #[doc = " Returns the major engine revision number (e.g. 83)"]
18120    pub Engine_Version_getMajor: ::std::option::Option<
18121        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18122    >,
18123    #[doc = " Minor version number (e.g. \"5\")\n @deprecated since 4. October 2011 (pre release 83), will always return \"0\""]
18124    pub Engine_Version_getMinor: ::std::option::Option<
18125        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18126    >,
18127    #[doc = " Clients that only differ in patchset can still play together.\n Also demos should be compatible between patchsets."]
18128    pub Engine_Version_getPatchset: ::std::option::Option<
18129        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18130    >,
18131    #[doc = " SCM Commits version part (e.g. \"\" or \"13\")\n Number of commits since the last version tag.\n This matches the regex \"[0-9]*\"."]
18132    pub Engine_Version_getCommits: ::std::option::Option<
18133        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18134    >,
18135    #[doc = " SCM unique identifier for the current commit.\n This matches the regex \"([0-9a-f]{6})?\"."]
18136    pub Engine_Version_getHash: ::std::option::Option<
18137        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18138    >,
18139    #[doc = " SCM branch name (e.g. \"master\" or \"develop\")"]
18140    pub Engine_Version_getBranch: ::std::option::Option<
18141        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18142    >,
18143    #[doc = " Additional information (compiler flags, svn revision etc.)"]
18144    pub Engine_Version_getAdditional: ::std::option::Option<
18145        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18146    >,
18147    #[doc = " time of build"]
18148    pub Engine_Version_getBuildTime: ::std::option::Option<
18149        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18150    >,
18151    #[doc = " Returns whether this is a release build of the engine"]
18152    pub Engine_Version_isRelease:
18153        ::std::option::Option<unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> bool>,
18154    #[doc = " The basic part of a spring version.\n This may only be used for sync-checking if IsRelease() returns true.\n @return \"Major.PatchSet\" or \"Major.PatchSet.1\""]
18155    pub Engine_Version_getNormal: ::std::option::Option<
18156        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18157    >,
18158    #[doc = " The sync relevant part of a spring version.\n This may be used for sync-checking through a simple string-equality test.\n @return \"Major\" or \"Major.PatchSet.1-Commits-gHash Branch\""]
18159    pub Engine_Version_getSync: ::std::option::Option<
18160        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18161    >,
18162    #[doc = " The verbose, human readable version.\n @return \"Major.Patchset[.1-Commits-gHash Branch] (Additional)\""]
18163    pub Engine_Version_getFull: ::std::option::Option<
18164        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18165    >,
18166    #[doc = " Returns the number of info key-value pairs in the info map\n for this interface."]
18167    pub AIInterface_Info_getSize: ::std::option::Option<
18168        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
18169    >,
18170    #[doc = " Returns the key at index infoIndex in the info map\n for this interface, or NULL if the infoIndex is invalid."]
18171    pub AIInterface_Info_getKey: ::std::option::Option<
18172        unsafe extern "C" fn(
18173            interfaceId: ::std::os::raw::c_int,
18174            infoIndex: ::std::os::raw::c_int,
18175        ) -> *const ::std::os::raw::c_char,
18176    >,
18177    #[doc = " Returns the value at index infoIndex in the info map\n for this interface, or NULL if the infoIndex is invalid."]
18178    pub AIInterface_Info_getValue: ::std::option::Option<
18179        unsafe extern "C" fn(
18180            interfaceId: ::std::os::raw::c_int,
18181            infoIndex: ::std::os::raw::c_int,
18182        ) -> *const ::std::os::raw::c_char,
18183    >,
18184    #[doc = " Returns the description of the key at index infoIndex in the info map\n for this interface, or NULL if the infoIndex is invalid."]
18185    pub AIInterface_Info_getDescription: ::std::option::Option<
18186        unsafe extern "C" fn(
18187            interfaceId: ::std::os::raw::c_int,
18188            infoIndex: ::std::os::raw::c_int,
18189        ) -> *const ::std::os::raw::c_char,
18190    >,
18191    #[doc = " Returns the value associated with the given key in the info map\n for this interface, or NULL if not found."]
18192    pub AIInterface_Info_getValueByKey: ::std::option::Option<
18193        unsafe extern "C" fn(
18194            interfaceId: ::std::os::raw::c_int,
18195            key: *const ::std::os::raw::c_char,
18196        ) -> *const ::std::os::raw::c_char,
18197    >,
18198    #[doc = " the number of teams in this game"]
18199    pub getNumTeams: ::std::option::Option<
18200        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
18201    >,
18202    #[doc = " the number of skirmish AIs in this game"]
18203    pub getNumSkirmishAIs: ::std::option::Option<
18204        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
18205    >,
18206    #[doc = " the maximum number of skirmish AIs in any game"]
18207    pub getMaxSkirmishAIs: ::std::option::Option<
18208        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
18209    >,
18210    #[doc = " Returns the value accosiated to the given key from the skirmish AIs info map"]
18211    pub SkirmishAI_Info_getValueByKey: ::std::option::Option<
18212        unsafe extern "C" fn(
18213            interfaceId: ::std::os::raw::c_int,
18214            shortName: *const ::std::os::raw::c_char,
18215            version: *const ::std::os::raw::c_char,
18216            key: *const ::std::os::raw::c_char,
18217        ) -> *const ::std::os::raw::c_char,
18218    >,
18219    #[doc = " This will end up in infolog"]
18220    pub Log_log: ::std::option::Option<
18221        unsafe extern "C" fn(
18222            interfaceId: ::std::os::raw::c_int,
18223            msg: *const ::std::os::raw::c_char,
18224        ),
18225    >,
18226    #[doc = " This will end up in infolog"]
18227    pub Log_logsl: ::std::option::Option<
18228        unsafe extern "C" fn(
18229            interfaceId: ::std::os::raw::c_int,
18230            section: *const ::std::os::raw::c_char,
18231            loglevel: ::std::os::raw::c_int,
18232            msg: *const ::std::os::raw::c_char,
18233        ),
18234    >,
18235    #[doc = " Inform the engine of an error that happend in the interface.\n @param   msg       error message\n @param   severety  from 10 for minor to 0 for fatal\n @param   die       if this is set to true, the engine assumes\n                    the interface is in an irreparable state, and it will\n                    unload it immediately."]
18236    pub Log_exception: ::std::option::Option<
18237        unsafe extern "C" fn(
18238            interfaceId: ::std::os::raw::c_int,
18239            msg: *const ::std::os::raw::c_char,
18240            severety: ::std::os::raw::c_int,
18241            die: bool,
18242        ),
18243    >,
18244    #[doc = " Basically returns '/' on posix and '\\\\' on windows"]
18245    pub DataDirs_getPathSeparator: ::std::option::Option<
18246        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> ::std::os::raw::c_char,
18247    >,
18248    #[doc = " This interfaces main data dir, which is where the shared library\n and the InterfaceInfo.lua file are located, e.g.:\n /usr/share/games/spring/AI/Interfaces/C/0.1/"]
18249    pub DataDirs_getConfigDir: ::std::option::Option<
18250        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18251    >,
18252    #[doc = " This interfaces writable data dir, which is where eg logs, caches\n and learning data should be stored, e.g.:\n /home/userX/.spring/AI/Interfaces/C/0.1/"]
18253    pub DataDirs_getWriteableDir: ::std::option::Option<
18254        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char,
18255    >,
18256    #[doc = " Returns an absolute path which consists of:\n data-dir + AI-Interface-path + relative-path.\n\n example:\n input:  \"log/main.log\", writeable, create, !dir, !common\n output: \"/home/userX/.spring/AI/Interfaces/C/0.1/log/main.log\"\n The path \"/home/userX/.spring/AI/Interfaces/C/0.1/log/\" is created,\n if it does not yet exist.\n\n @see DataDirs_Roots_locatePath\n @param   path          store for the resulting absolute path\n @param   path_sizeMax  storage size of the above\n @param   writeable  if true, only the writable data-dir is considered\n @param   create     if true, and realPath is not found, its dir structure\n                     is created recursively under the writable data-dir\n @param   dir        if true, realPath specifies a dir, which means if\n                     create is true, the whole path will be created,\n                     including the last part\n @param   common     if true, the version independent data-dir is formed,\n                     which uses \"common\" instead of the version, eg:\n                     \"/home/userX/.spring/AI/Interfaces/C/common/...\"\n @return  whether the locating process was successfull\n          -> the path exists and is stored in an absolute form in path"]
18257    pub DataDirs_locatePath: ::std::option::Option<
18258        unsafe extern "C" fn(
18259            interfaceId: ::std::os::raw::c_int,
18260            path: *mut ::std::os::raw::c_char,
18261            path_sizeMax: ::std::os::raw::c_int,
18262            relPath: *const ::std::os::raw::c_char,
18263            writeable: bool,
18264            create: bool,
18265            dir: bool,
18266            common: bool,
18267        ) -> bool,
18268    >,
18269    #[doc = " Returns the number of springs data dirs."]
18270    pub DataDirs_Roots_getSize: ::std::option::Option<
18271        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
18272    >,
18273    #[doc = " Returns the data dir at dirIndex, which is valid between 0 and (DataDirs_Roots_getSize() - 1)."]
18274    pub DataDirs_Roots_getDir: ::std::option::Option<
18275        unsafe extern "C" fn(
18276            interfaceId: ::std::os::raw::c_int,
18277            path: *mut ::std::os::raw::c_char,
18278            path_sizeMax: ::std::os::raw::c_int,
18279            dirIndex: ::std::os::raw::c_int,
18280        ) -> bool,
18281    >,
18282    #[doc = " Returns an absolute path which consists of:\n data-dir + relative-path.\n\n example:\n input:  \"AI/Skirmish\", writeable, create, dir\n output: \"/home/userX/.spring/AI/Skirmish/\"\n The path \"/home/userX/.spring/AI/Skirmish/\" is created,\n if it does not yet exist.\n\n @see DataDirs_locatePath\n @param   path          store for the resulting absolute path\n @param   path_sizeMax  storage size of the above\n @param   relPath    the relative path to find\n @param   writeable  if true, only the writable data-dir is considered\n @param   create     if true, and realPath is not found, its dir structure\n                     is created recursively under the writable data-dir\n @param   dir        if true, realPath specifies a dir, which means if\n                     create is true, the whole path will be created,\n                     including the last part\n @return  whether the locating process was successfull\n          -> the path exists and is stored in an absolute form in path"]
18283    pub DataDirs_Roots_locatePath: ::std::option::Option<
18284        unsafe extern "C" fn(
18285            interfaceId: ::std::os::raw::c_int,
18286            path: *mut ::std::os::raw::c_char,
18287            path_sizeMax: ::std::os::raw::c_int,
18288            relPath: *const ::std::os::raw::c_char,
18289            writeable: bool,
18290            create: bool,
18291            dir: bool,
18292        ) -> bool,
18293    >,
18294}
18295#[test]
18296fn bindgen_test_layout_SAIInterfaceCallback() {
18297    const UNINIT: ::std::mem::MaybeUninit<SAIInterfaceCallback> = ::std::mem::MaybeUninit::uninit();
18298    let ptr = UNINIT.as_ptr();
18299    assert_eq!(
18300        ::std::mem::size_of::<SAIInterfaceCallback>(),
18301        264usize,
18302        concat!("Size of: ", stringify!(SAIInterfaceCallback))
18303    );
18304    assert_eq!(
18305        ::std::mem::align_of::<SAIInterfaceCallback>(),
18306        8usize,
18307        concat!("Alignment of ", stringify!(SAIInterfaceCallback))
18308    );
18309    assert_eq!(
18310        unsafe {
18311            ::std::ptr::addr_of!((*ptr).Engine_AIInterface_ABIVersion_getFailPart) as usize
18312                - ptr as usize
18313        },
18314        0usize,
18315        concat!(
18316            "Offset of field: ",
18317            stringify!(SAIInterfaceCallback),
18318            "::",
18319            stringify!(Engine_AIInterface_ABIVersion_getFailPart)
18320        )
18321    );
18322    assert_eq!(
18323        unsafe {
18324            ::std::ptr::addr_of!((*ptr).Engine_AIInterface_ABIVersion_getWarningPart) as usize
18325                - ptr as usize
18326        },
18327        8usize,
18328        concat!(
18329            "Offset of field: ",
18330            stringify!(SAIInterfaceCallback),
18331            "::",
18332            stringify!(Engine_AIInterface_ABIVersion_getWarningPart)
18333        )
18334    );
18335    assert_eq!(
18336        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getMajor) as usize - ptr as usize },
18337        16usize,
18338        concat!(
18339            "Offset of field: ",
18340            stringify!(SAIInterfaceCallback),
18341            "::",
18342            stringify!(Engine_Version_getMajor)
18343        )
18344    );
18345    assert_eq!(
18346        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getMinor) as usize - ptr as usize },
18347        24usize,
18348        concat!(
18349            "Offset of field: ",
18350            stringify!(SAIInterfaceCallback),
18351            "::",
18352            stringify!(Engine_Version_getMinor)
18353        )
18354    );
18355    assert_eq!(
18356        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getPatchset) as usize - ptr as usize },
18357        32usize,
18358        concat!(
18359            "Offset of field: ",
18360            stringify!(SAIInterfaceCallback),
18361            "::",
18362            stringify!(Engine_Version_getPatchset)
18363        )
18364    );
18365    assert_eq!(
18366        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getCommits) as usize - ptr as usize },
18367        40usize,
18368        concat!(
18369            "Offset of field: ",
18370            stringify!(SAIInterfaceCallback),
18371            "::",
18372            stringify!(Engine_Version_getCommits)
18373        )
18374    );
18375    assert_eq!(
18376        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getHash) as usize - ptr as usize },
18377        48usize,
18378        concat!(
18379            "Offset of field: ",
18380            stringify!(SAIInterfaceCallback),
18381            "::",
18382            stringify!(Engine_Version_getHash)
18383        )
18384    );
18385    assert_eq!(
18386        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getBranch) as usize - ptr as usize },
18387        56usize,
18388        concat!(
18389            "Offset of field: ",
18390            stringify!(SAIInterfaceCallback),
18391            "::",
18392            stringify!(Engine_Version_getBranch)
18393        )
18394    );
18395    assert_eq!(
18396        unsafe {
18397            ::std::ptr::addr_of!((*ptr).Engine_Version_getAdditional) as usize - ptr as usize
18398        },
18399        64usize,
18400        concat!(
18401            "Offset of field: ",
18402            stringify!(SAIInterfaceCallback),
18403            "::",
18404            stringify!(Engine_Version_getAdditional)
18405        )
18406    );
18407    assert_eq!(
18408        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getBuildTime) as usize - ptr as usize },
18409        72usize,
18410        concat!(
18411            "Offset of field: ",
18412            stringify!(SAIInterfaceCallback),
18413            "::",
18414            stringify!(Engine_Version_getBuildTime)
18415        )
18416    );
18417    assert_eq!(
18418        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_isRelease) as usize - ptr as usize },
18419        80usize,
18420        concat!(
18421            "Offset of field: ",
18422            stringify!(SAIInterfaceCallback),
18423            "::",
18424            stringify!(Engine_Version_isRelease)
18425        )
18426    );
18427    assert_eq!(
18428        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getNormal) as usize - ptr as usize },
18429        88usize,
18430        concat!(
18431            "Offset of field: ",
18432            stringify!(SAIInterfaceCallback),
18433            "::",
18434            stringify!(Engine_Version_getNormal)
18435        )
18436    );
18437    assert_eq!(
18438        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getSync) as usize - ptr as usize },
18439        96usize,
18440        concat!(
18441            "Offset of field: ",
18442            stringify!(SAIInterfaceCallback),
18443            "::",
18444            stringify!(Engine_Version_getSync)
18445        )
18446    );
18447    assert_eq!(
18448        unsafe { ::std::ptr::addr_of!((*ptr).Engine_Version_getFull) as usize - ptr as usize },
18449        104usize,
18450        concat!(
18451            "Offset of field: ",
18452            stringify!(SAIInterfaceCallback),
18453            "::",
18454            stringify!(Engine_Version_getFull)
18455        )
18456    );
18457    assert_eq!(
18458        unsafe { ::std::ptr::addr_of!((*ptr).AIInterface_Info_getSize) as usize - ptr as usize },
18459        112usize,
18460        concat!(
18461            "Offset of field: ",
18462            stringify!(SAIInterfaceCallback),
18463            "::",
18464            stringify!(AIInterface_Info_getSize)
18465        )
18466    );
18467    assert_eq!(
18468        unsafe { ::std::ptr::addr_of!((*ptr).AIInterface_Info_getKey) as usize - ptr as usize },
18469        120usize,
18470        concat!(
18471            "Offset of field: ",
18472            stringify!(SAIInterfaceCallback),
18473            "::",
18474            stringify!(AIInterface_Info_getKey)
18475        )
18476    );
18477    assert_eq!(
18478        unsafe { ::std::ptr::addr_of!((*ptr).AIInterface_Info_getValue) as usize - ptr as usize },
18479        128usize,
18480        concat!(
18481            "Offset of field: ",
18482            stringify!(SAIInterfaceCallback),
18483            "::",
18484            stringify!(AIInterface_Info_getValue)
18485        )
18486    );
18487    assert_eq!(
18488        unsafe {
18489            ::std::ptr::addr_of!((*ptr).AIInterface_Info_getDescription) as usize - ptr as usize
18490        },
18491        136usize,
18492        concat!(
18493            "Offset of field: ",
18494            stringify!(SAIInterfaceCallback),
18495            "::",
18496            stringify!(AIInterface_Info_getDescription)
18497        )
18498    );
18499    assert_eq!(
18500        unsafe {
18501            ::std::ptr::addr_of!((*ptr).AIInterface_Info_getValueByKey) as usize - ptr as usize
18502        },
18503        144usize,
18504        concat!(
18505            "Offset of field: ",
18506            stringify!(SAIInterfaceCallback),
18507            "::",
18508            stringify!(AIInterface_Info_getValueByKey)
18509        )
18510    );
18511    assert_eq!(
18512        unsafe { ::std::ptr::addr_of!((*ptr).getNumTeams) as usize - ptr as usize },
18513        152usize,
18514        concat!(
18515            "Offset of field: ",
18516            stringify!(SAIInterfaceCallback),
18517            "::",
18518            stringify!(getNumTeams)
18519        )
18520    );
18521    assert_eq!(
18522        unsafe { ::std::ptr::addr_of!((*ptr).getNumSkirmishAIs) as usize - ptr as usize },
18523        160usize,
18524        concat!(
18525            "Offset of field: ",
18526            stringify!(SAIInterfaceCallback),
18527            "::",
18528            stringify!(getNumSkirmishAIs)
18529        )
18530    );
18531    assert_eq!(
18532        unsafe { ::std::ptr::addr_of!((*ptr).getMaxSkirmishAIs) as usize - ptr as usize },
18533        168usize,
18534        concat!(
18535            "Offset of field: ",
18536            stringify!(SAIInterfaceCallback),
18537            "::",
18538            stringify!(getMaxSkirmishAIs)
18539        )
18540    );
18541    assert_eq!(
18542        unsafe {
18543            ::std::ptr::addr_of!((*ptr).SkirmishAI_Info_getValueByKey) as usize - ptr as usize
18544        },
18545        176usize,
18546        concat!(
18547            "Offset of field: ",
18548            stringify!(SAIInterfaceCallback),
18549            "::",
18550            stringify!(SkirmishAI_Info_getValueByKey)
18551        )
18552    );
18553    assert_eq!(
18554        unsafe { ::std::ptr::addr_of!((*ptr).Log_log) as usize - ptr as usize },
18555        184usize,
18556        concat!(
18557            "Offset of field: ",
18558            stringify!(SAIInterfaceCallback),
18559            "::",
18560            stringify!(Log_log)
18561        )
18562    );
18563    assert_eq!(
18564        unsafe { ::std::ptr::addr_of!((*ptr).Log_logsl) as usize - ptr as usize },
18565        192usize,
18566        concat!(
18567            "Offset of field: ",
18568            stringify!(SAIInterfaceCallback),
18569            "::",
18570            stringify!(Log_logsl)
18571        )
18572    );
18573    assert_eq!(
18574        unsafe { ::std::ptr::addr_of!((*ptr).Log_exception) as usize - ptr as usize },
18575        200usize,
18576        concat!(
18577            "Offset of field: ",
18578            stringify!(SAIInterfaceCallback),
18579            "::",
18580            stringify!(Log_exception)
18581        )
18582    );
18583    assert_eq!(
18584        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_getPathSeparator) as usize - ptr as usize },
18585        208usize,
18586        concat!(
18587            "Offset of field: ",
18588            stringify!(SAIInterfaceCallback),
18589            "::",
18590            stringify!(DataDirs_getPathSeparator)
18591        )
18592    );
18593    assert_eq!(
18594        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_getConfigDir) as usize - ptr as usize },
18595        216usize,
18596        concat!(
18597            "Offset of field: ",
18598            stringify!(SAIInterfaceCallback),
18599            "::",
18600            stringify!(DataDirs_getConfigDir)
18601        )
18602    );
18603    assert_eq!(
18604        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_getWriteableDir) as usize - ptr as usize },
18605        224usize,
18606        concat!(
18607            "Offset of field: ",
18608            stringify!(SAIInterfaceCallback),
18609            "::",
18610            stringify!(DataDirs_getWriteableDir)
18611        )
18612    );
18613    assert_eq!(
18614        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_locatePath) as usize - ptr as usize },
18615        232usize,
18616        concat!(
18617            "Offset of field: ",
18618            stringify!(SAIInterfaceCallback),
18619            "::",
18620            stringify!(DataDirs_locatePath)
18621        )
18622    );
18623    assert_eq!(
18624        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_Roots_getSize) as usize - ptr as usize },
18625        240usize,
18626        concat!(
18627            "Offset of field: ",
18628            stringify!(SAIInterfaceCallback),
18629            "::",
18630            stringify!(DataDirs_Roots_getSize)
18631        )
18632    );
18633    assert_eq!(
18634        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_Roots_getDir) as usize - ptr as usize },
18635        248usize,
18636        concat!(
18637            "Offset of field: ",
18638            stringify!(SAIInterfaceCallback),
18639            "::",
18640            stringify!(DataDirs_Roots_getDir)
18641        )
18642    );
18643    assert_eq!(
18644        unsafe { ::std::ptr::addr_of!((*ptr).DataDirs_Roots_locatePath) as usize - ptr as usize },
18645        256usize,
18646        concat!(
18647            "Offset of field: ",
18648            stringify!(SAIInterfaceCallback),
18649            "::",
18650            stringify!(DataDirs_Roots_locatePath)
18651        )
18652    );
18653}
18654#[repr(C)]
18655#[derive(Debug, Copy, Clone)]
18656pub struct SStaticGlobalData {
18657    _unused: [u8; 0],
18658}
18659#[doc = " @brief Artificial Intelligence Interface library interface\n\n This is the interface between the engine and an implementation of\n an AI Interface.\n The engine will address AI Interfaces through this interface,\n but AI Interfaces will not actually implement it. It is the job\n of the engine, to make sure it can address AI Interface\n implementations through instances of this struct.\n\n An example of loading the C AI Interface:\n The C AI Interface library exports functions fitting the\n function pointers in this struct. When the engine needs therefore\n C AI Interface, it loads the shared library, eg C-AI-Interface.dll,\n creates a new instance of this struct, and sets the member function\n pointers to the addresses of the fitting functions exported\n by the shared library. The functions of the AI Interface are then\n allways called through this struct."]
18660#[repr(C)]
18661#[derive(Debug, Copy, Clone)]
18662pub struct SAIInterfaceLibrary {
18663    #[doc = " This function is called right after the library is dynamically loaded.\n It can be used to initialize variables and to check or prepare\n the environment (os, engine, filesystem, ...).\n @see releaseStatic()\n\n [optional]\n An AI Interface not exporting this function is still valid.\n\n @param\tstaticGlobalData contains global data about the engine and the\n                           environment; is guaranteed to be valid till\n                           releaseStatic() is called.\n @return     0: ok\n          != 0: error"]
18664    pub initStatic: ::std::option::Option<
18665        unsafe extern "C" fn(
18666            interfaceId: ::std::os::raw::c_int,
18667            arg1: *const SAIInterfaceCallback,
18668        ) -> ::std::os::raw::c_int,
18669    >,
18670    #[doc = " This function is called right right before the library is unloaded.\n It can be used to deinitialize variables and to cleanup the environment,\n for example the filesystem.\n\n See also initStatic().\n\n [optional]\n An AI Interface not exporting this function is still valid.\n\n @return     0: ok\n          != 0: error"]
18671    pub releaseStatic: ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
18672    #[doc = " Loads the specified Skirmish AI.\n\n @return     0: ok\n          != 0: error"]
18673    pub loadSkirmishAILibrary: ::std::option::Option<
18674        unsafe extern "C" fn(
18675            shortName: *const ::std::os::raw::c_char,
18676            version: *const ::std::os::raw::c_char,
18677        ) -> *const SSkirmishAILibrary,
18678    >,
18679    #[doc = " Unloads the specified Skirmish AI.\n\n @return     0: ok\n          != 0: error"]
18680    pub unloadSkirmishAILibrary: ::std::option::Option<
18681        unsafe extern "C" fn(
18682            shortName: *const ::std::os::raw::c_char,
18683            version: *const ::std::os::raw::c_char,
18684        ) -> ::std::os::raw::c_int,
18685    >,
18686    #[doc = " Unloads all Skirmish AI libraries currently loaded by this interface.\n\n @return     0: ok\n          != 0: error"]
18687    pub unloadAllSkirmishAILibraries:
18688        ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_int>,
18689    #[doc = " Dynamic Skirmish AI library lookup system entry method.\n This system works as an alternative/addition to AIInfo.lua and\n AIOptions.lua files.\n\n [optional]\n An AI Interface not exporting this function is still valid.\n\n @see AI_INTERFACE_PROPERTY_SUPPORTS_LOOKUP\n @see listSkirmishAILibraryInfos\n @see listSkirmishAILibraryOptions\n @return the number of Skirmish AI libraries available through this\n   interface through the dynamic lookup system"]
18690    pub listSkirmishAILibraries: ::std::option::Option<
18691        unsafe extern "C" fn(interfaceId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
18692    >,
18693    #[doc = " Returns the number of info key-value pairs for a certain Skirmish AI\n library.\n\n [optional]\n An AI Interface not exporting this function is still valid.\n\n @see listSkirmishAILibraries\n @see listSkirmishAILibraryInfoKey\n @see listSkirmishAILibraryInfoValue\n @return the number of info key-value pairs for a certain Skirmish AI\n   library."]
18694    pub listSkirmishAILibraryInfos: ::std::option::Option<
18695        unsafe extern "C" fn(
18696            interfaceId: ::std::os::raw::c_int,
18697            aiIndex: ::std::os::raw::c_int,
18698        ) -> ::std::os::raw::c_int,
18699    >,
18700    #[doc = " Returns the key of an info item for a certain Skirmish AI library.\n\n [optional]\n An AI Interface not exporting this function is still valid.\n\n @see listSkirmishAILibraryInfos\n @see listSkirmishAILibraryInfoValue\n @return the key of an info item for a certain Skirmish AI library."]
18701    pub listSkirmishAILibraryInfoKey: ::std::option::Option<
18702        unsafe extern "C" fn(
18703            interfaceId: ::std::os::raw::c_int,
18704            aiIndex: ::std::os::raw::c_int,
18705            infoIndex: ::std::os::raw::c_int,
18706        ) -> *const ::std::os::raw::c_char,
18707    >,
18708    #[doc = " Returns the value of an info item for a certain Skirmish AI library.\n\n [optional]\n An AI Interface not exporting this function is still valid.\n\n @see listSkirmishAILibraryInfos\n @see listSkirmishAILibraryInfoKey\n @return the value of an info item for a certain Skirmish AI library."]
18709    pub listSkirmishAILibraryInfoValue: ::std::option::Option<
18710        unsafe extern "C" fn(
18711            interfaceId: ::std::os::raw::c_int,
18712            aiIndex: ::std::os::raw::c_int,
18713            infoIndex: ::std::os::raw::c_int,
18714        ) -> *const ::std::os::raw::c_char,
18715    >,
18716    #[doc = " Returns a string consisting of Lua code, that returns an options table.\n\n [optional]\n An AI Interface not exporting this function is still valid.\n\n @see listSkirmishAILibraries\n @return NULL for no options, otherwise\n   a string consisting of Lua code that returns an options table"]
18717    pub listSkirmishAILibraryOptions: ::std::option::Option<
18718        unsafe extern "C" fn(
18719            interfaceId: ::std::os::raw::c_int,
18720            aiIndex: ::std::os::raw::c_int,
18721        ) -> *const ::std::os::raw::c_char,
18722    >,
18723}
18724#[test]
18725fn bindgen_test_layout_SAIInterfaceLibrary() {
18726    const UNINIT: ::std::mem::MaybeUninit<SAIInterfaceLibrary> = ::std::mem::MaybeUninit::uninit();
18727    let ptr = UNINIT.as_ptr();
18728    assert_eq!(
18729        ::std::mem::size_of::<SAIInterfaceLibrary>(),
18730        80usize,
18731        concat!("Size of: ", stringify!(SAIInterfaceLibrary))
18732    );
18733    assert_eq!(
18734        ::std::mem::align_of::<SAIInterfaceLibrary>(),
18735        8usize,
18736        concat!("Alignment of ", stringify!(SAIInterfaceLibrary))
18737    );
18738    assert_eq!(
18739        unsafe { ::std::ptr::addr_of!((*ptr).initStatic) as usize - ptr as usize },
18740        0usize,
18741        concat!(
18742            "Offset of field: ",
18743            stringify!(SAIInterfaceLibrary),
18744            "::",
18745            stringify!(initStatic)
18746        )
18747    );
18748    assert_eq!(
18749        unsafe { ::std::ptr::addr_of!((*ptr).releaseStatic) as usize - ptr as usize },
18750        8usize,
18751        concat!(
18752            "Offset of field: ",
18753            stringify!(SAIInterfaceLibrary),
18754            "::",
18755            stringify!(releaseStatic)
18756        )
18757    );
18758    assert_eq!(
18759        unsafe { ::std::ptr::addr_of!((*ptr).loadSkirmishAILibrary) as usize - ptr as usize },
18760        16usize,
18761        concat!(
18762            "Offset of field: ",
18763            stringify!(SAIInterfaceLibrary),
18764            "::",
18765            stringify!(loadSkirmishAILibrary)
18766        )
18767    );
18768    assert_eq!(
18769        unsafe { ::std::ptr::addr_of!((*ptr).unloadSkirmishAILibrary) as usize - ptr as usize },
18770        24usize,
18771        concat!(
18772            "Offset of field: ",
18773            stringify!(SAIInterfaceLibrary),
18774            "::",
18775            stringify!(unloadSkirmishAILibrary)
18776        )
18777    );
18778    assert_eq!(
18779        unsafe {
18780            ::std::ptr::addr_of!((*ptr).unloadAllSkirmishAILibraries) as usize - ptr as usize
18781        },
18782        32usize,
18783        concat!(
18784            "Offset of field: ",
18785            stringify!(SAIInterfaceLibrary),
18786            "::",
18787            stringify!(unloadAllSkirmishAILibraries)
18788        )
18789    );
18790    assert_eq!(
18791        unsafe { ::std::ptr::addr_of!((*ptr).listSkirmishAILibraries) as usize - ptr as usize },
18792        40usize,
18793        concat!(
18794            "Offset of field: ",
18795            stringify!(SAIInterfaceLibrary),
18796            "::",
18797            stringify!(listSkirmishAILibraries)
18798        )
18799    );
18800    assert_eq!(
18801        unsafe { ::std::ptr::addr_of!((*ptr).listSkirmishAILibraryInfos) as usize - ptr as usize },
18802        48usize,
18803        concat!(
18804            "Offset of field: ",
18805            stringify!(SAIInterfaceLibrary),
18806            "::",
18807            stringify!(listSkirmishAILibraryInfos)
18808        )
18809    );
18810    assert_eq!(
18811        unsafe {
18812            ::std::ptr::addr_of!((*ptr).listSkirmishAILibraryInfoKey) as usize - ptr as usize
18813        },
18814        56usize,
18815        concat!(
18816            "Offset of field: ",
18817            stringify!(SAIInterfaceLibrary),
18818            "::",
18819            stringify!(listSkirmishAILibraryInfoKey)
18820        )
18821    );
18822    assert_eq!(
18823        unsafe {
18824            ::std::ptr::addr_of!((*ptr).listSkirmishAILibraryInfoValue) as usize - ptr as usize
18825        },
18826        64usize,
18827        concat!(
18828            "Offset of field: ",
18829            stringify!(SAIInterfaceLibrary),
18830            "::",
18831            stringify!(listSkirmishAILibraryInfoValue)
18832        )
18833    );
18834    assert_eq!(
18835        unsafe {
18836            ::std::ptr::addr_of!((*ptr).listSkirmishAILibraryOptions) as usize - ptr as usize
18837        },
18838        72usize,
18839        concat!(
18840            "Offset of field: ",
18841            stringify!(SAIInterfaceLibrary),
18842            "::",
18843            stringify!(listSkirmishAILibraryOptions)
18844        )
18845    );
18846}
18847#[doc = " @brief Skirmish Artificial Intelligence library interface\n\n This is the interface between the engine and an implementation of a\n Skirmish AI.\n The engine will address AIs through this interface, but AIs will\n not actually implement it. It is the job of the AI Interface library,\n to make sure the engine can address AI implementations through\n instances of this struct.\n\n An example of loading a C AI through the C AI Interface:\n The C AI exports functions fitting the function pointers in this\n struct. When the engine requests C-AI-X on the C AI Interface,\n the interface loads the shared library, eg C-AI-X.dll, creates\n a new instance of this struct, and sets the member function\n pointers to the addresses of the fitting functions exported\n by the shared AI library. This struct then goes to the engine\n which calls the functions appropriately."]
18848#[repr(C)]
18849#[derive(Debug, Copy, Clone)]
18850pub struct SSkirmishAILibrary {
18851    #[doc = " Level of Support for a specific engine version and AI interface version.\n\n [optional]\n An AI not exporting this function is still valid.\n\n @param  aiShortName  this is indisposable for non-native interfaces,\n                      as they need a means of redirecting from\n                      one wrapper function to the respective non-native\n                      libraries\n @param  aiVersion  see aiShortName\n @return the level of support for the supplied engine and AI interface\n         versions"]
18852    pub getLevelOfSupportFor: ::std::option::Option<
18853        unsafe extern "C" fn(
18854            aiShortName: *const ::std::os::raw::c_char,
18855            aiVersion: *const ::std::os::raw::c_char,
18856            engineVersionString: *const ::std::os::raw::c_char,
18857            engineVersionNumber: ::std::os::raw::c_int,
18858            aiInterfaceShortName: *const ::std::os::raw::c_char,
18859            aiInterfaceVersion: *const ::std::os::raw::c_char,
18860        ) -> LevelOfSupport,
18861    >,
18862    #[doc = " This function is called, when an AI instance shall be created\n for skirmishAIId. It is called before the first call to handleEvent()\n for that AI instance.\n\n A typical series of events (engine point of view, conceptual):\n [code]\n KAIK.init(1)\n KAIK.handleEvent(EVENT_INIT, InitEvent(1))\n RAI.init(2)\n RAI.handleEvent(EVENT_INIT, InitEvent(2))\n KAIK.handleEvent(EVENT_UPDATE, UpdateEvent(0))\n RAI.handleEvent(EVENT_UPDATE, UpdateEvent(0))\n KAIK.handleEvent(EVENT_UPDATE, UpdateEvent(1))\n RAI.handleEvent(EVENT_UPDATE, UpdateEvent(1))\n ...\n [/code]\n\n This method exists only for performance reasons, which come into play on\n OO languages. For non-OO language AIs, this method can be ignored,\n because using only EVENT_INIT will cause no performance decrease.\n\n [optional]\n An AI not exporting this function is still valid.\n\n @param skirmishAIId  the ID this library shall create an instance for\n @param callback      the callback for this Skirmish AI\n @return     0: ok\n          != 0: error"]
18863    pub init: ::std::option::Option<
18864        unsafe extern "C" fn(
18865            skirmishAIId: ::std::os::raw::c_int,
18866            callback: *const SSkirmishAICallback,
18867        ) -> ::std::os::raw::c_int,
18868    >,
18869    #[doc = " This function is called, when an AI instance shall be deleted.\n It is called after the last call to handleEvent() for that AI instance.\n\n A typical series of events (engine point of view, conceptual):\n [code]\n ...\n KAIK.handleEvent(EVENT_UPDATE, UpdateEvent(654321))\n RAI.handleEvent(EVENT_UPDATE, UpdateEvent(654321))\n KAIK.handleEvent(EVENT_UPDATE, UpdateEvent(654322))\n RAI.handleEvent(EVENT_UPDATE, UpdateEvent(654322))\n KAIK.handleEvent(EVENT_RELEASE, ReleaseEvent(1))\n KAIK.release(1)\n RAI.handleEvent(EVENT_RELEASE, ReleaseEvent(2))\n RAI.release(2)\n [/code]\n\n This method exists only for performance reasons, which come into play on\n OO languages. For non-OO language AIs, this method can be ignored,\n because using only EVENT_RELEASE will cause no performance decrease.\n\n [optional]\n An AI not exporting this function is still valid.\n\n @param skirmishAIId  the ID the library shall release the instance of\n @return     0: ok\n          != 0: error"]
18870    pub release: ::std::option::Option<
18871        unsafe extern "C" fn(skirmishAIId: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
18872    >,
18873    #[doc = " Through this function, the AI receives events from the engine.\n For details about events that may arrive here, see file AISEvents.h.\n\n @param skirmishAIId  the AI instance the event is addressed to\n//\t * @param fromId        the id of the AI the event comes from,\n//\t *                      or FROM_ENGINE_ID if it comes from the engine\n//\t * @param eventId       used on asynchronous events. this allows the AI to\n//\t *                      identify a possible result message, which was sent\n//\t *                      with the same eventId\n @param topicId       unique identifier of a message\n                      (see EVENT_* defines in AISEvents.h)\n @param data          an topic specific struct, which contains the data\n                      associatedwith the event\n                      (see S*Event structs in AISEvents.h)\n @return     0: ok\n          != 0: error"]
18874    pub handleEvent: ::std::option::Option<
18875        unsafe extern "C" fn(
18876            skirmishAIId: ::std::os::raw::c_int,
18877            topicId: ::std::os::raw::c_int,
18878            data: *const ::std::os::raw::c_void,
18879        ) -> ::std::os::raw::c_int,
18880    >,
18881}
18882#[test]
18883fn bindgen_test_layout_SSkirmishAILibrary() {
18884    const UNINIT: ::std::mem::MaybeUninit<SSkirmishAILibrary> = ::std::mem::MaybeUninit::uninit();
18885    let ptr = UNINIT.as_ptr();
18886    assert_eq!(
18887        ::std::mem::size_of::<SSkirmishAILibrary>(),
18888        32usize,
18889        concat!("Size of: ", stringify!(SSkirmishAILibrary))
18890    );
18891    assert_eq!(
18892        ::std::mem::align_of::<SSkirmishAILibrary>(),
18893        8usize,
18894        concat!("Alignment of ", stringify!(SSkirmishAILibrary))
18895    );
18896    assert_eq!(
18897        unsafe { ::std::ptr::addr_of!((*ptr).getLevelOfSupportFor) as usize - ptr as usize },
18898        0usize,
18899        concat!(
18900            "Offset of field: ",
18901            stringify!(SSkirmishAILibrary),
18902            "::",
18903            stringify!(getLevelOfSupportFor)
18904        )
18905    );
18906    assert_eq!(
18907        unsafe { ::std::ptr::addr_of!((*ptr).init) as usize - ptr as usize },
18908        8usize,
18909        concat!(
18910            "Offset of field: ",
18911            stringify!(SSkirmishAILibrary),
18912            "::",
18913            stringify!(init)
18914        )
18915    );
18916    assert_eq!(
18917        unsafe { ::std::ptr::addr_of!((*ptr).release) as usize - ptr as usize },
18918        16usize,
18919        concat!(
18920            "Offset of field: ",
18921            stringify!(SSkirmishAILibrary),
18922            "::",
18923            stringify!(release)
18924        )
18925    );
18926    assert_eq!(
18927        unsafe { ::std::ptr::addr_of!((*ptr).handleEvent) as usize - ptr as usize },
18928        24usize,
18929        concat!(
18930            "Offset of field: ",
18931            stringify!(SSkirmishAILibrary),
18932            "::",
18933            stringify!(handleEvent)
18934        )
18935    );
18936}
18937#[repr(C)]
18938#[derive(Debug, Copy, Clone)]
18939pub struct __crt_locale_data {
18940    pub _address: u8,
18941}
18942#[repr(C)]
18943#[derive(Debug, Copy, Clone)]
18944pub struct __crt_multibyte_data {
18945    pub _address: u8,
18946}
18947pub type __builtin_va_list = *mut ::std::os::raw::c_char;