From: TimePath Date: Fri, 1 Sep 2017 08:34:06 +0000 (+1000) Subject: spawnfuncs: hide original .classname X-Git-Tag: xonotic-v0.8.5~2487^2~2 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=fbfce6b9d09569c8a0cf926480c33778c6869962;p=xonotic%2Fxonotic-data.pk3dir.git spawnfuncs: hide original .classname --- diff --git a/qcsrc/lib/spawnfunc.qh b/qcsrc/lib/spawnfunc.qh index 3434d3998..e30e565fd 100644 --- a/qcsrc/lib/spawnfunc.qh +++ b/qcsrc/lib/spawnfunc.qh @@ -33,14 +33,20 @@ noref bool require_spawnfunc_prefix; .void(entity) __spawnfunc_constructor; noref IntrusiveList g_spawn_queue; - .string targetname, __spawnfunc_targetname; + #define SPAWNFUNC_INTERNAL_FIELDS(X) \ - X(targetname, string_null) \ + X(string, classname, "spawnfunc") \ + X(string, targetname, string_null) \ /**/ + + #define X(T, fld, def) .T fld, __spawnfunc_##fld; + SPAWNFUNC_INTERNAL_FIELDS(X) + #undef X + void __spawnfunc_defer(entity prototype, void(entity) constructor) { IL_PUSH(g_spawn_queue, prototype); - #define X(fld, def) { prototype.__spawnfunc_##fld = prototype.fld; prototype.fld = def; } + #define X(T, fld, def) { prototype.__spawnfunc_##fld = prototype.fld; prototype.fld = def; } SPAWNFUNC_INTERNAL_FIELDS(X); #undef X prototype.__spawnfunc_constructor = constructor; @@ -57,7 +63,7 @@ noref bool require_spawnfunc_prefix; entity e = new(clone); copyentity(prototype, e); IL_PUSH(g_map_entities, e); - #define X(fld, def) { e.fld = e.__spawnfunc_##fld; e.__spawnfunc_##fld = def; } + #define X(T, fld, def) { e.fld = e.__spawnfunc_##fld; e.__spawnfunc_##fld = def; } SPAWNFUNC_INTERNAL_FIELDS(X); #undef X e.__spawnfunc_constructor(e);