X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fmenu%2Foo%2Fbase.qh;fp=qcsrc%2Fmenu%2Foo%2Fbase.qh;h=a8337501be68c5d77b007bc6da7e2441aa87b377;hp=30423850e807a4bdd64909ecf2bc50ecb28bc7eb;hb=2d5aa7ee7767f1efe503f0e1da6d4e7d88355b0a;hpb=244f8292cf03247e90bf1a0c3fee1f491f6b93a0 diff --git a/qcsrc/menu/oo/base.qh b/qcsrc/menu/oo/base.qh index 30423850e..a8337501b 100644 --- a/qcsrc/menu/oo/base.qh +++ b/qcsrc/menu/oo/base.qh @@ -2,33 +2,27 @@ #define BASE_H .string classname; -entity Object_vtbl; .string vtblname; .entity vtblbase; -// THIS LINE INTENTIONALLY LEFT BLANK -entity spawnVtbl(entity e, entity b) +entity spawnVtbl(entity this, entity base) { - entity v; - v = spawn(); - copyentity(e, v); - v.vtblname = v.classname; - v.classname = "vtbl"; - if(b) - v.vtblbase = b; - else - v.vtblbase = v; - return v; + entity vtbl = spawn(); + copyentity(this, vtbl); + vtbl.vtblname = vtbl.classname; + vtbl.classname = "vtbl"; + vtbl.vtblbase = base ? base : vtbl; // Top level objects use vtbl as base + return vtbl; } -entity spawnObject() + +entity Object_vtbl; +entity spawnObject(entity this, entity) { - entity e; - e = spawn(); - e.classname = "Object"; - if(!Object_vtbl) - Object_vtbl = spawnVtbl(e, null_entity); - return e; + this = spawn(); + this.classname = "Object"; + if (!Object_vtbl) Object_vtbl = spawnVtbl(this, null_entity); + return this; } -#define NEW(cname) (spawn##cname()) +#define NEW(cname) (spawn##cname(null_entity, null_entity)) #endif