forked from 0ad/0ad
historic_bruno
c02818ceea
Cleans up rmgen library. Fixes bug in bound checking for circular maps. This was SVN commit r9388.
55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
// TODO: rename/change these functions, so the bounds are more clear
|
|
|
|
/*
|
|
* Return a random floating point number using Math.random library
|
|
*
|
|
* If no parameter given, the returned float is in the interval [0, 1)
|
|
* If two parameters are given, they are minval and maxval, and the returned float is in the interval [minval, maxval)
|
|
*/
|
|
function randFloat()
|
|
{
|
|
if (arguments.length == 0)
|
|
{
|
|
return Math.random();
|
|
}
|
|
else if (arguments.length == 2)
|
|
{
|
|
var minVal = arguments[0];
|
|
var maxVal = arguments[1];
|
|
|
|
return minVal + randFloat() * (maxVal - minVal);
|
|
}
|
|
else
|
|
{
|
|
error("randFloat: invalid number of arguments: "+arguments.length);
|
|
return undefined;
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Return a random integer using Math.random library
|
|
*
|
|
* If one parameter given, it's maxval, and the returned integer is in the interval [0, maxval)
|
|
* If two parameters are given, they are minval and maxval, and the returned integer is in the interval [minval, maxval]
|
|
*/
|
|
function randInt()
|
|
{
|
|
if (arguments.length == 1)
|
|
{
|
|
var maxVal = arguments[0];
|
|
return Math.floor(Math.random() * maxVal);
|
|
}
|
|
else if (arguments.length == 2)
|
|
{
|
|
var minVal = arguments[0];
|
|
var maxVal = arguments[1];
|
|
|
|
return minVal + randInt(maxVal - minVal + 1);
|
|
}
|
|
else
|
|
{
|
|
error("randInt: invalid number of arguments: "+arguments.length);
|
|
return undefined;
|
|
}
|
|
}
|