X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Flib%2Fenumclass.qh;h=532db1deb613bad7d39293f39b458fe437f416d1;hb=7033d7fe553752e1e7689d5cc81728c545bd152f;hp=28c66152834f5683c7b1e7394e573f34655a27f7;hpb=1cdf2cf3155c338eb634f9a17f40436a9186fe1e;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/enumclass.qh b/qcsrc/lib/enumclass.qh index 28c661528..532db1deb 100644 --- a/qcsrc/lib/enumclass.qh +++ b/qcsrc/lib/enumclass.qh @@ -8,7 +8,7 @@ // zero overhead mode, use this for releases -#define ENUMCLASS(id) typedef int id; enum { CASE(id, Null) +#define ENUMCLASS(id) USING(id, int); enum { CASE(id, Null) #define CASE(class, id) class##_##id, #define ENUMCLASS_END(id) }; #define ORDINAL(it) (it) @@ -19,10 +19,10 @@ // edict overhead mode, use this for type checking .int enum_ordinal; -#define ENUMCLASS(id) CLASS(id, Object) int id##_count; CASE(id, Null) +#define ENUMCLASS(id) CLASS(id, Object) int id##_count; const noref entity id##_Null = nil; CASE(id, Null__) #define CASE(class, id) class class##_##id; STATIC_INIT(class##_##id) { entity e = class##_##id = NEW(class); e.enum_ordinal = class##_count++; } #define ENUMCLASS_END(id) ENDCLASS(id) #define ORDINAL(it) ((it).enum_ordinal) -#define ENUMCAST(T, it) ftoe(etof(T##_Null) + (it)) +#define ENUMCAST(T, it) ftoe(etof(T##_Null__) + (it)) #endif