]> icculus.org git repositories - divverent/nexuiz.git/blob - qcsrc/menu-div0test/oo/constructors.h
adding qcsrc/menu-div0test with a test menu.dat source... may or may not replace...
[divverent/nexuiz.git] / qcsrc / menu-div0test / oo / constructors.h
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 EXTENDS
12 #undef METHOD
13 #undef ATTRIB
14 #undef ENDCLASS
15 #endif
16
17 #define CLASS(cname)                 entity spawn##cname() { entity e;
18 #define EXTENDS(base)                e = spawn##base ();
19 #define METHOD(cname,name,prototype) e.name = name##cname;
20 #define ATTRIB(cname,name,type,val)  e.name = val;
21 #define ENDCLASS(cname)              e.instanceOf##cname = 1; e.classname = #cname; return e; }