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