4 [[alias("self")]] entity __self;
6 #define WITH(type, name, value, block) do { \
7 type __with_save = (name); \
13 // Step 1: auto oldself
15 #define SELFPARAM() noref entity this = __self
16 #define setself(s) (__self = s)
20 // Step 2: check SELFPARAM() is present for functions that use self
22 #define SELFPARAM() [[alias("__self")]] noref entity this = __self
23 #define setself(s) (__self = s)
29 #define SELFPARAM() noref const entity this = __self
30 entity setself(entity e) { return self = e; }
31 entity getself() { return self; }
32 #define self getself()
35 // Step 4: enable when possible
37 #define SELFPARAM() noref const entity this = __self
41 #define spawn() new(entity)