Rev 2097 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1833 | jag | 1 | /* |
2 | * defvelaccel.h |
||
2302 | jag | 3 | * DIN Is Noise is copyright (c) 2006-2025 Jagannathan Sampath |
1833 | jag | 4 | * DIN Is Noise is released under GNU Public License 2.0 |
5 | * For more information, please visit https://dinisnoise.org/ |
||
6 | */ |
||
7 | |||
8 | #ifndef __defvelaccel |
||
9 | #define __defvelaccel |
||
10 | |||
11 | #include "angle.h" |
||
12 | #include "random.h" |
||
13 | |||
14 | struct valt { |
||
15 | float val; |
||
16 | int rndrd; |
||
17 | rnd<float> rd; |
||
18 | valt (float v = 0.0f, int rr = 0) : rd (0.0f, 1.0f) { |
||
19 | val = v; |
||
20 | rndrd = rr; |
||
21 | } |
||
1978 | jag | 22 | float operator()(int) {return rd() * val;} |
1833 | jag | 23 | float operator()() {if (rndrd) return rd() * val; else return val;} |
24 | valt& operator= (float v) { |
||
25 | val = v; |
||
26 | return *this; |
||
27 | } |
||
28 | operator float () { |
||
29 | return val; |
||
30 | } |
||
1858 | jag | 31 | }; |
1833 | jag | 32 | |
33 | std::istream& operator>> (std::istream&, valt&); |
||
34 | std::ostream& operator<< (std::ostream&, valt&); |
||
35 | |||
36 | struct defvelaccel { |
||
37 | |||
38 | std::string name; |
||
39 | |||
40 | valt mag; |
||
41 | |||
42 | int dir; |
||
43 | enum {HORIZONTAL, VERTICAL, MOUSE}; |
||
44 | int neg; |
||
45 | |||
46 | int rndrot; |
||
47 | rnd<float> rotrd; |
||
48 | void setrotrd (); |
||
49 | anglet clock, anticlock; |
||
1836 | jag | 50 | int sync; |
1833 | jag | 51 | |
1836 | jag | 52 | struct autost { |
1833 | jag | 53 | |
54 | struct rott { |
||
55 | int yes; |
||
56 | int dir; |
||
57 | int mov; |
||
58 | valt rpm, dps, tps; |
||
1871 | jag | 59 | struct uett { |
60 | int deg; |
||
61 | int tps; |
||
62 | uett () {deg = tps = 0;} |
||
63 | } uet; // update every tick? |
||
64 | |||
1833 | jag | 65 | rott () : rpm(45), dps(6), tps(1) { |
66 | yes = 0; |
||
67 | dir = 0; |
||
68 | mov = 0; |
||
69 | } |
||
70 | } rot; |
||
71 | |||
72 | struct flipt { |
||
73 | valt deg; |
||
74 | int yes; |
||
75 | flipt () : deg (180), yes(0) {} |
||
76 | } flip; |
||
77 | |||
1970 | jag | 78 | struct pauset { |
79 | int yes; |
||
2027 | jag | 80 | int tar; // target >> 0 = autorotate, 1 = autoflip |
1970 | jag | 81 | valt every; |
82 | valt f0r; |
||
83 | pauset (); |
||
84 | } pause; |
||
85 | |||
1833 | jag | 86 | } autos; |
87 | |||
88 | defvelaccel (const std::string& n); |
||
89 | |||
90 | }; |
||
91 | |||
92 | |||
93 | std::ostream& operator<< (std::ostream& f, defvelaccel& dva); |
||
94 | std::istream& operator>> (std::istream& f, defvelaccel& dva); |
||
95 | |||
96 | |||
97 | |||
98 | #endif |