]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/oo/implementation.qh
#include this
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / oo / implementation.qh
1 #ifndef IMPLEMENTATION_H
2 #define IMPLEMENTATION_H
3
4 #if defined(CSQC)
5 #elif defined(MENUQC)
6     #include "../../common/util-pre.qh"
7     #include "../sys-pre.qh"
8     #include "../../dpdefs/menudefs.qc"
9     #include "../../dpdefs/keycodes.qc"
10     #include "../sys-post.qh"
11     #include "../config.qh"
12     #include "../../warpzonelib/mathlib.qh"
13     #include "../../common/util.qh"
14     #include "../../common/test.qh"
15     #include "base.qh"
16     #include "../../common/playerstats.qh"
17     #include "../../common/teams.qh"
18     #include "../../common/constants.qh"
19     #include "../../common/mapinfo.qh"
20     #include "../../common/campaign_common.qh"
21     #include "../../common/weapons/weapons.qh"
22     #include "../../common/counting.qh"
23     #include "../../common/command/markup.qh"
24     #include "../../common/command/rpn.qh"
25     #include "../../common/command/generic.qh"
26     #include "../../common/command/shared_defs.qh"
27     #include "../../common/urllib.qh"
28     #include "../../common/monsters/monsters.qh"
29     #include "../command/menu_cmd.qh"
30     #include "../menu.qh"
31     #include "../draw.qh"
32     #include "../skin.qh"
33     #include "../xonotic/util.qh"
34     #include "interface.qh"
35 #elif defined(SVQC)
36 #endif
37
38 #ifndef INTERFACE
39 #define INTERFACE
40 #endif
41
42 #ifndef IMPLEMENTATION
43 #define IMPLEMENTATION
44 #endif
45
46 #ifdef CLASS
47 #undef CLASS
48 #undef EXTENDS
49 #undef METHOD
50 #undef ATTRIB
51 #undef ATTRIBARRAY
52 #undef ENDCLASS
53 #undef SUPER
54 #endif
55
56 // for the constructor
57 #define CLASS(cname)                       entity spawn##cname() { entity me;
58 #define EXTENDS(base)                      me = spawn##base (); entity basevtbl; basevtbl = base##_vtbl;
59 #define METHOD(cname,name,prototype)       me.name = cname##_##name;
60 #define ATTRIB(cname,name,type,val)        me.name = val;
61 #define ATTRIBARRAY(cname,name,type,cnt)
62 #define ENDCLASS(cname)                    me.instanceOf##cname = 1; me.classname = #cname; if(!cname##_vtbl) cname##_vtbl = spawnVtbl(me, basevtbl); return me; }
63
64 // for the implementation
65 #define SUPER(cname) (cname##_vtbl.vtblbase)
66 #endif