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