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