Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
misc.qh
Go to the documentation of this file.
1
#pragma once
2
3
#ifdef __STDC__
4
#define EVAL(...) EVAL1(EVAL1(EVAL1(__VA_ARGS__)))
5
#define EVAL1(...) EVAL2(EVAL2(EVAL2(__VA_ARGS__)))
6
#define EVAL2(...) EVAL3(EVAL3(EVAL3(__VA_ARGS__)))
7
#define EVAL3(...) EVAL4(EVAL4(EVAL4(__VA_ARGS__)))
8
#define EVAL4(...) EVAL5(EVAL5(EVAL5(__VA_ARGS__)))
9
#define EVAL5(...) __VA_ARGS__
10
11
#include "
p99.qh
"
12
#define OVERLOAD(F, ...) P99_IF_EMPTY(__VA_ARGS__)(P99_PASTE2(F, _00)())(P99_PASTE3(F, _, P00_NARG(__VA_ARGS__))(__VA_ARGS__))
14
#define OVERLOAD_(F, ...) P99_IF_EMPTY(__VA_ARGS__)(P99_PASTE2(F, _00)())(P99_PASTE3(F, _, P00_NARG(__VA_ARGS__))(__VA_ARGS__))
15
#define OVERLOAD__(F, ...) P99_IF_EMPTY(__VA_ARGS__)(P99_PASTE2(F, _00)())(P99_PASTE3(F, _, P00_NARG(__VA_ARGS__))(__VA_ARGS__))
16
#else
17
#define EVAL(...) __VA_ARGS__
18
19
#define OVERLOAD(F, ...) F##_##__VA_COUNT__(__VA_ARGS__)
20
#define OVERLOAD_(F, ...) F##_##__VA_COUNT__(__VA_ARGS__)
21
#define OVERLOAD__(F, ...) F##_##__VA_COUNT__(__VA_ARGS__)
22
#endif
23
24
#if defined(CSQC)
25
#define etof(e) num_for_edict(e)
26
#define ftoe(i) entitybyindex(i)
27
#elif defined(SVQC)
28
#define etof(e) num_for_edict(e)
29
#define ftoe(i) edict_num(i)
30
#elif defined(MENUQC)
31
// already defined
32
#endif
33
34
#define LAMBDA(...) { __VA_ARGS__; }
35
36
// With block may not contain continue or break
37
#define WITH(type, name, value, block) \
38
MACRO_BEGIN \
39
type __with_save = (name); \
40
name = (value); \
41
LAMBDA(block) \
42
name = __with_save; \
43
MACRO_END
p99.qh
lib
misc.qh
Generated on
for Xonotic QuakeC by
1.14.0