1
1
Fork 0
mirror of https://github.com/boxgaming/qbjs.git synced 2024-09-20 04:24:45 +00:00

Debugged RND.

This commit is contained in:
William Barnes 2022-05-30 16:06:18 -04:00
parent 530b53c224
commit fdfbf2816f

29
qb.js
View file

@ -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;}
_rndSeed = (_rndSeed * 16598013 + 12820163) & 0xFFFFFF; if (n != 0) {
} else if (n > 0) { // Identical to above? if (n < 0) {
_rndSeed = (_rndSeed * 16598013 + 12820163) & 0xFFFFFF; const buffer = new ArrayBuffer(8);
//} else if (n == 0) { // Repeat last value, so change nothing. const view = new DataView(buffer);
} else if (n < 0) { // buggy view.setFloat32(0, n, false);
/* var m = view.getUint32(0);
m=*((uint32*)&n); _rndSeed = (m & 0xFFFFFF) + ((m & 0xFF000000) >>> 24);
rnd_seed=(m&0xFFFFFF)+((m&0xFF000000)>>24); }
*/ _rndSeed = (_rndSeed * 16598013 + 12820163) & 0xFFFFFF;
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;
} }