Advertisement
ijontichy

commonFuncs.h

Jun 1st, 2012
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.62 KB | None | 0 0
  1. // A bunch of functions that I've built up
  2. // They come in handy :>
  3.  
  4.  
  5. function int abs(int x)
  6. {
  7.     if (x < 0) { return -x; }
  8.     return x;
  9. }
  10.  
  11. function int mod(int x, int y)
  12. {
  13.     int ret = x - ((x / y) * y);
  14.     if (ret < 0) { ret = y + ret; }
  15.     return ret;
  16. }
  17.  
  18. function int pow(int x, int y)
  19. {
  20.     int n = 1;
  21.     while (y-- > 0) { n *= x; }
  22.     return n;
  23. }
  24.  
  25. function int powFloat(int x, int y)
  26. {
  27.     int n = 1.0;
  28.     while (y-- > 0) { n = FixedMul(n, x); }
  29.     return n;
  30. }
  31.  
  32. function int min(int x, int y)
  33. {
  34.     if (x < y) { return x; }
  35.     return y;
  36. }
  37.  
  38. function int max (int x, int y)
  39. {
  40.     if (x > y) { return x; }
  41.     return y;
  42. }
  43.  
  44. function int middle(int x, int y, int z)
  45. {
  46.     if ((x < z) && (y < z)) { return min(max(x, y), z); }
  47.     return max(min(x, y), z);
  48. }
  49.  
  50. function int keyUp(int key)
  51. {
  52.     int buttons = GetPlayerInput(-1, INPUT_BUTTONS);
  53.  
  54.     if (~buttons & key) { return 1; }
  55.     return 0;
  56. }
  57.  
  58. function int keyDown(int key)
  59. {
  60.     int buttons = GetPlayerInput(-1, INPUT_BUTTONS);
  61.  
  62.     if (buttons & key) { return 1; }
  63.     return 0;
  64. }
  65.  
  66. function int keyPressed(int key)
  67. {
  68.     int buttons     = GetPlayerInput(-1, INPUT_BUTTONS);
  69.     int oldbuttons  = GetPlayerInput(-1, INPUT_OLDBUTTONS);
  70.     int newbuttons  = (buttons ^ oldbuttons) & buttons;
  71.  
  72.     if (newbuttons & key) { return 1; }
  73.     return 0;
  74. }
  75.  
  76. function int adjustBottom(int tmin, int tmax, int i)
  77. {
  78.     if (i < tmin) { tmin = i; }
  79.     if (i > tmax) { tmin += (i - tmax); }
  80.  
  81.     return tmin;
  82. }
  83.  
  84. function int adjustTop(int tmin, int tmax, int i)
  85. {
  86.     if (i < tmin) { tmax -= (tmin - i); }
  87.     if (i > tmax) { tmax = i; }
  88.  
  89.     return tmax;
  90. }
  91.  
  92. // Taken from http://zdoom.org/wiki/Sqrt
  93. function int sqrt(int number)
  94. {
  95.     if (number == 1.0) { return 1.0;  }
  96.     if (number <= 0) { return 0; }
  97.     int val = 150.0;
  98.     for (int i=0; i<15; i++) { val = (val + FixedDiv(number, val)) >> 1; }
  99.  
  100.     return val;
  101. }
  102.  
  103. function int quadPos(int a, int b, int c)
  104. {
  105.     int s1 = sqrt(FixedMul(b, b)-(4*FixedMul(a, c)));
  106.     int s2 = (2 * a);
  107.     int b1 = FixedDiv(-b + s1, s2);
  108.  
  109.     return b1;
  110. }
  111.  
  112. function int quadNeg(int a, int b, int c)
  113. {
  114.     int s1 = sqrt(FixedMul(b, b)-(4*FixedMul(a, c)));
  115.     int s2 = (2 * a);
  116.     int b1 = FixedDiv(-b - s1, s2);
  117.  
  118.     return b1;
  119. }
  120.  
  121. function int quadHigh(int a, int b, int c, int x)
  122. {
  123.     c -= x;
  124.     return quadPos(a, b, c);
  125. }
  126.  
  127. function int quadLow(int a, int b, int c, int x)
  128. {
  129.     c -= x;
  130.     return quadNeg(a, b, c);
  131. }
  132.  
  133. function int quad(int a, int b, int c, int y)
  134. {
  135.     return FixedMul(a, FixedMul(y, y)) + FixedMul(b, y) + y;
  136. }
  137.  
  138. // Note: high is not inclusive because it's more useful that way
  139. function int inRange(int low, int high, int x)
  140. {
  141.     return ((x >= low) && (x < high));
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement