#include "Random";
Random::PCG randomObj = Random::PCG();
// Generates a value, but minus numbers are not allowed.
uint generateANumber(uint gMin, uint gMax){
  if(gMin > gMax){
    return 0;
  }
  uint toReturn;
  for(;;){
    uint thisRandom = randomObj.nextInt(gMax + 1);
    if(thisRandom >= gMin && thisRandom <= gMax){
      toReturn = thisRandom;
      break;
    }
  }
  return toReturn;
}

// Purpose: Generates a value, which allows minus numbers.
int generateAValue(int gMin, int gMax){
  if(gMin > gMax){
    return 0;
  }
  if(gMin * gMax > 0){
    if(gMin > 0){
      uint temp = generateANumber(gMin, gMax);
      return int(temp);
    }else{
      uint temp = generateANumber(uint(-gMax), uint(-gMin));
      return -(int(temp));
    }
  }else{
    if(randomObj.nextInt(2) == 1){
      uint temp = generateANumber(0, uint(-gMin));
      return -(int(temp));
    }else{
      uint temp = generateANumber(0, uint(gMax));
      return int(temp);
    }
  }
}

// Purpose: Generates a location within the dance floor.
Vector generateALocation(){
    return Vector(generateAValue(-1517,1301), generateAValue(-875,594), -388);
}