mirror of
https://github.com/boxgaming/qbjs.git
synced 2024-09-20 04:24:45 +00:00
Debugged RND.
This commit is contained in:
parent
530b53c224
commit
fdfbf2816f
1 changed files with 12 additions and 17 deletions
27
qb.js
27
qb.js
|
@ -1635,8 +1635,8 @@ var QB = new function() {
|
||||||
const buffer = new ArrayBuffer(8);
|
const buffer = new ArrayBuffer(8);
|
||||||
const view = new DataView(buffer);
|
const view = new DataView(buffer);
|
||||||
var m;
|
var m;
|
||||||
if (n == undefined) { // TODO: implement prompt
|
if (n == undefined) { // TODO: implement user prompt case
|
||||||
view.setFloat64(0, 0, false); // assumes n=0
|
view.setFloat64(0, 0, false); // assumes n=0 for now
|
||||||
m = view.getUint32(0);
|
m = view.getUint32(0);
|
||||||
m ^= (m >> 16);
|
m ^= (m >> 16);
|
||||||
_rndSeed = ((m & 0xffff)<<8) | (_rndSeed & 0xff);
|
_rndSeed = ((m & 0xffff)<<8) | (_rndSeed & 0xff);
|
||||||
|
@ -1653,21 +1653,16 @@ var QB = new function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.func_Rnd = function(n) {
|
this.func_Rnd = function(n) {
|
||||||
if (n == undefined) { // Normal use.
|
if (n == undefined) {n = 1;}
|
||||||
|
if (n != 0) {
|
||||||
|
if (n < 0) {
|
||||||
|
const buffer = new ArrayBuffer(8);
|
||||||
|
const view = new DataView(buffer);
|
||||||
|
view.setFloat32(0, n, false);
|
||||||
|
var m = view.getUint32(0);
|
||||||
|
_rndSeed = (m & 0xFFFFFF) + ((m & 0xFF000000) >>> 24);
|
||||||
|
}
|
||||||
_rndSeed = (_rndSeed * 16598013 + 12820163) & 0xFFFFFF;
|
_rndSeed = (_rndSeed * 16598013 + 12820163) & 0xFFFFFF;
|
||||||
} else if (n > 0) { // Identical to above?
|
|
||||||
_rndSeed = (_rndSeed * 16598013 + 12820163) & 0xFFFFFF;
|
|
||||||
//} else if (n == 0) { // Repeat last value, so change nothing.
|
|
||||||
} else if (n < 0) { // buggy
|
|
||||||
/*
|
|
||||||
m=*((uint32*)&n);
|
|
||||||
rnd_seed=(m&0xFFFFFF)+((m&0xFF000000)>>24);
|
|
||||||
*/
|
|
||||||
const buffer = new ArrayBuffer(8);
|
|
||||||
const view = new DataView(buffer);
|
|
||||||
view.setFloat64(0, n, false);
|
|
||||||
var m = view.getUint32(0);
|
|
||||||
_rndSeed = (m & 0xFFFFFF) + ((m & 0xFF000000)>>24);
|
|
||||||
}
|
}
|
||||||
return _rndSeed / 0x1000000;
|
return _rndSeed / 0x1000000;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue