Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
struct.qh
Go to the documentation of this file.
1
#pragma once
2
3
#ifndef QCC_SUPPORT_STRUCT
4
#define _STRUCT_DECLARE(x, id, type, END) noref type x##_##id;
5
#define STRUCT_DECLARE(id, s) s(_STRUCT_DECLARE, id)
6
7
#define _STRUCT_PARAM_(x, id, type) type x##_##id,
8
#define _STRUCT_PARAM_END(x, id, type) type x##_##id
9
#define _STRUCT_PARAM(x, id, type, isend) _STRUCT_PARAM_##isend(x, id, type)
10
#define STRUCT_PARAM(id, s) s(_STRUCT_PARAM, id)
11
12
#define _STRUCT_PASS_(x, id, type) x##_##id,
13
#define _STRUCT_PASS_END(x, id, type) x##_##id
14
#define _STRUCT_PASS(x, id, type, END) _STRUCT_PASS_##END(x, id, type)
15
#define STRUCT_PASS(id, s) s(_STRUCT_PASS, id)
16
17
#define _STRUCT_STORE_DST(_, it) it
18
#define _STRUCT_STORE_SRC(it, _) it
19
#define _CONCAT3_(a, b, c) a##b##c
20
#define _CONCAT3(a, b, c) _CONCAT3_(a, b, c)
21
#define _STRUCT_STORE(x, id, type, END) _CONCAT3(_STRUCT_STORE_DST x, _, id) = _CONCAT3(_STRUCT_STORE_SRC x, _, id);
22
#define STRUCT_STORE(from, to, s) s(_STRUCT_STORE, (from, to))
23
24
#define STRUCT(id, ...)
25
#else
26
#define STRUCT_DECLARE(id, type) type id;
27
#define STRUCT_PARAM(id, type) type id
28
#define STRUCT_PASS(id, type) id
29
#define STRUCT_STORE(from, to, s) to = from
30
#define _STRUCT_MEMBER(my, id, type, END) type id;
31
#define STRUCT(id, s) struct STRUCT_##id { s(_STRUCT_MEMBER, ) };
32
#endif
lib
struct.qh
Generated on
for Xonotic QuakeC by
1.14.0