MATHS.CPP 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /******************************************************************************
  2. *******************************************************************************
  3. Maths routines...
  4. ******************************************************************************
  5. *****************************************************************************/
  6. #include "global.h"
  7. #include "defines.h"
  8. #include "externs.h"
  9. extern short *afr1;
  10. extern short *afr2;
  11. /******************************************************************************
  12. *****************************************************************************/
  13. //extern int matherr(struct exception *);
  14. int matherr(struct exception *)
  15. {
  16. keys[0x01]=1; // Simulate escape.
  17. return(0);
  18. }
  19. /******************************************************************************
  20. *****************************************************************************/
  21. void af_randomize()
  22. {
  23. rand_seed=rand();
  24. seed=rand_seed&127;
  25. // printf("%d\n",seed&15);
  26. }
  27. /******************************************************************************
  28. *****************************************************************************/
  29. void random_vector(float &a,float &b)
  30. {
  31. double n;
  32. signed short ang=(rand_seed&32767)<<1;
  33. float ab=modf(((float)ang/PI),&n);
  34. a=cos(ab);
  35. b=sin(ab);
  36. }
  37. /******************************************************************************
  38. *****************************************************************************/
  39. // Returns a random value of ( 0 -> (Range-1) )
  40. int rand_range(int range)
  41. {
  42. int rs=(seed*range)/128;
  43. return(rs);
  44. }
  45. /******************************************************************************
  46. *****************************************************************************/
  47. float calc_dist(float x,float y)
  48. {
  49. float r;
  50. r=sqrt((x*x)+(y*y));
  51. if (r>0.1)
  52. return(r);
  53. else
  54. return(0.1);
  55. }