]> git.xonotic.org Git - xonotic/gmqcc.git/blob - tests/operators.qc
Merge branch 'master' into cooking
[xonotic/gmqcc.git] / tests / operators.qc
1 .float mem;
2
3 void main() {
4         float a;
5
6         // regular binary+store
7         a = 5;
8         print(ftos(a += 1), " = ");
9         print(ftos(a), "\n");
10
11         entity e = spawn();
12     e.mem = 10;
13         print(ftos(e.mem += 1), " = ");
14         print(ftos(e.mem), "\n");
15
16     // prefix
17         print(ftos(++a), " = ");
18         print(ftos(a), "\n");
19         print(ftos(--a), " = ");
20         print(ftos(a), "\n");
21         print(ftos(++e.mem), " = ");
22         print(ftos(e.mem), "\n");
23
24         // suffix
25         print(ftos(a++), " = ");
26         print(ftos(a-1), "\n");
27         // the CLANG way:
28         a = 3;
29         print(ftos((a++ + a) + a), " = 11\n");
30
31         // check if minus translates
32         print(ftos(a--), "\n");
33         print(ftos(--a), "\n");
34
35         // postfix on members
36         print(ftos(e.mem--), " = ");
37         print(ftos(e.mem+1), "\n");
38
39         // compounds in general
40         a = 3;
41         print(ftos(a *= 2), " = 6\n");
42         print(ftos(a /= 2), " = 3\n");
43
44     // compounds on vectors
45         vector v;
46         v = '3 4 5';
47         print(vtos(v *= 2), " = '6 8 10'\n");
48         print(vtos(v /= 2), " = '3 4 5'\n");
49
50         // bit compounds
51         a = 1;
52         print(ftos(a |= 2), " = 3\n");
53         print(ftos(a &= 6), " = 2\n");
54         a = 7;
55
56         print(ftos(a &~= 3), " = 4\n");
57 }