Subversion Repositories DIN Is Noise

Rev

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