]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/lib/self.qh
Merge branch 'TimePath/csqc_viewmodels' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / self.qh
1 #ifndef SELF_H
2 #define SELF_H
3
4 // Transition from global 'self' to local 'this'
5
6 [[alias("self")]] entity __self;
7
8 // Step 1: auto oldself
9 #if 1
10         #define SELFPARAM() noref entity this = __self
11         #define setself(s) (__self = s)
12         #define self __self
13 #endif
14
15 // Step 2: check SELFPARAM() is present for functions that use self
16 #if 0
17         #define SELFPARAM() [[alias("__self")]] noref entity this = __self
18         #define setself(s) (__self = s)
19         #define self this
20 #endif
21
22 // Step 3: const self
23 #if 0
24         #define SELFPARAM() noref const entity this = __self
25         entity setself(entity e) { return self = e; }
26         entity getself() { return self; }
27         #define self getself()
28 #endif
29
30 // Step 4: enable when possible
31 // TODO: Remove SELFPARAM in favor of a parameter
32 #if 0
33         #define SELFPARAM() noref const entity this = __self
34         #define self this
35 #endif
36
37 #endif