]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/oo/interface.qc
Merge CLASS and EXTENDS, #define NEW(cname) (spawn##cname())
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / oo / interface.qc
1 #ifndef INTERFACE
2 #define INTERFACE
3 #endif
4
5 #ifdef IMPLEMENTATION
6 #undef IMPLEMENTATION
7 #endif
8
9 #ifdef CLASS
10 #undef CLASS
11 #undef METHOD
12 #undef ATTRIB
13 #undef ATTRIBARRAY
14 #undef ENDCLASS
15 #undef SUPER
16 #endif
17
18 #define CLASS(cname,base)                  entity spawn##cname(); entity cname##_vtbl;
19 #define METHOD(cname,name,prototype)       prototype cname##_##name; .prototype name;
20 #define ATTRIB(cname,name,type,val)        .type name;
21 #define ATTRIBARRAY(cname,name,type,cnt)   .type name[cnt];
22 #define ENDCLASS(cname)                    .float instanceOf##cname;
23 #define SUPER(cname)
24
25 #include "../classes.inc"