]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/oo/base.qh
Tidy up OO helpers
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / oo / base.qh
1 #ifndef BASE_H
2 #define BASE_H
3
4 .string classname;
5 .string vtblname;
6 .entity vtblbase;
7 entity spawnVtbl(entity this, entity base)
8 {
9         entity vtbl = spawn();
10         copyentity(this, vtbl);
11         vtbl.vtblname = vtbl.classname;
12         vtbl.classname = "vtbl";
13         vtbl.vtblbase = base ? base : vtbl; // Top level objects use vtbl as base
14         return vtbl;
15 }
16
17 entity Object_vtbl;
18 entity spawnObject(entity this, entity)
19 {
20         this = spawn();
21         this.classname = "Object";
22         if (!Object_vtbl) Object_vtbl = spawnVtbl(this, null_entity);
23         return this;
24 }
25
26 #define NEW(cname) (spawn##cname(null_entity, null_entity))
27
28 #endif