4 #define REGISTER_INIT(ns, id) [[accumulate]] void Register_##ns##_##id##_init(entity this)
6 #define REGISTER(initfunc, ns, array, counter, id, class, fld) \
8 REGISTER_INIT(ns, id) { } \
9 void Register_##ns##_##id() { \
10 entity this = NEW(class); \
12 this.fld = ns##_COUNT; \
13 array[counter++] = this; \
14 Register_##ns##_##id##_init(this); \
16 ACCUMULATE_FUNCTION(initfunc, Register_##ns##_##id) \