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
23
qb.js
23
qb.js
|
@ -1635,8 +1635,8 @@ var QB = new function() {
|
|||
const buffer = new ArrayBuffer(8);
|
||||
const view = new DataView(buffer);
|
||||
var m;
|
||||
if (n == undefined) { // TODO: implement prompt
|
||||
view.setFloat64(0, 0, false); // assumes n=0
|
||||
if (n == undefined) { // TODO: implement user prompt case
|
||||
view.setFloat64(0, 0, false); // assumes n=0 for now
|
||||
m = view.getUint32(0);
|
||||
m ^= (m >> 16);
|
||||
_rndSeed = ((m & 0xffff)<<8) | (_rndSeed & 0xff);
|
||||
|
@ -1653,21 +1653,16 @@ var QB = new function() {
|
|||
}
|
||||
|
||||
this.func_Rnd = function(n) {
|
||||
if (n == undefined) { // Normal use.
|
||||
_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);
|
||||
*/
|
||||
if (n == undefined) {n = 1;}
|
||||
if (n != 0) {
|
||||
if (n < 0) {
|
||||
const buffer = new ArrayBuffer(8);
|
||||
const view = new DataView(buffer);
|
||||
view.setFloat64(0, n, false);
|
||||
view.setFloat32(0, n, false);
|
||||
var m = view.getUint32(0);
|
||||
_rndSeed = (m & 0xFFFFFF) + ((m & 0xFF000000)>>24);
|
||||
_rndSeed = (m & 0xFFFFFF) + ((m & 0xFF000000) >>> 24);
|
||||
}
|
||||
_rndSeed = (_rndSeed * 16598013 + 12820163) & 0xFFFFFF;
|
||||
}
|
||||
return _rndSeed / 0x1000000;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue