]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/lib/enumclass.qh
assert: devassert, hidden outside developer mode
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / enumclass.qh
1 #ifndef ENUMCLASS_H
2 #define ENUMCLASS_H
3
4 #include "oo.qh"
5
6 // purpose: prevent transposed parameter passing
7
8 #if NDEBUG
9
10 // zero overhead mode, use this for releases
11
12 #define ENUMCLASS(id) typedef int id; enum {
13 #define CASE(class, id) class##_##id,
14 #define ENUMCLASS_END(id) };
15
16 #else
17
18 // edict overhead mode, use this for type checking
19
20 #define ENUMCLASS(id) CLASS(id, Object)
21 #define CASE(class, id) class class##_##id; STATIC_INIT(class##_##id) { class##_##id = NEW(class); }
22 #define ENUMCLASS_END(id) ENDCLASS(id)
23
24 #endif
25
26 #endif