]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/lib/static.qh
entcs: cleanup
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / static.qh
1 #ifndef STATIC_H
2 #define STATIC_H
3
4 void __static_init() {}
5 #define static_init() CALL_ACCUMULATED_FUNCTION(__static_init)
6 void __static_init_late() {}
7 #define static_init_late() CALL_ACCUMULATED_FUNCTION(__static_init_late)
8 void __static_init_precache() {}
9 #define static_init_precache() CALL_ACCUMULATED_FUNCTION(__static_init_precache)
10 void __shutdown() {}
11 #define shutdownhooks() CALL_ACCUMULATED_FUNCTION(__shutdown)
12
13 #define _STATIC_INIT(where, func) \
14         void _static_##func(); \
15         ACCUMULATE_FUNCTION(where, _static_##func) \
16         void _static_##func()
17
18 #define STATIC_INIT(func) _STATIC_INIT(__static_init,           func)
19 #define STATIC_INIT_LATE(func) _STATIC_INIT(__static_init_late, func##_late)
20 #define PRECACHE(func) _STATIC_INIT(__static_init_precache,     func##_precache)
21 #define SHUTDOWN(func) _STATIC_INIT(__shutdown,                         func##_shutdown)
22
23 #endif