Check imported world size, buffers, materials and block codes (t80)
This commit is contained in:
+7
-1
@@ -20,7 +20,13 @@ check('save/load keeps fog', run('(()=>{fogLook(bot.x+bot.w/2,bot.y+bot.h/2);con
|
||||
rect(run, 200, 160, 203, 163, run('EMPTY'));
|
||||
run('placeBlock(BP_WALL, RSTONE, 50, 40, true)');
|
||||
check('old save rebuilds exploration', run('(()=>{const s=serializeWorld();delete s.buffers.fog;deserializeWorld(s.meta,s.buffers);return fogSeen(62,104)>=200 && fogSeen(202,162)===255 && fogSeen(20,220)===0})()'));
|
||||
check('wrong length fog rebuilds exploration', run('(()=>{const s=serializeWorld();s.buffers.fog=new Uint8Array(1);deserializeWorld(s.meta,s.buffers);return fogSeen(202,162)===255})()'));
|
||||
check('wrong length fog is refused without changing exploration', run(`(() => {
|
||||
const s = serializeWorld(), originalFog = fog, originalMat = mat;
|
||||
s.buffers.fog = new Uint8Array(1);
|
||||
try { deserializeWorld(s.meta, s.buffers); }
|
||||
catch (e) { return /fog/i.test(e.message) && fog === originalFog && mat === originalMat && fogSeen(202,162) === 255; }
|
||||
return false;
|
||||
})()`));
|
||||
const hash = () => run('mat.reduce((h,v)=>Math.imul(h^v,16777619)>>>0,2166136261)');
|
||||
run('generateWorld(42, 256, 256, null)'); ticks(run, 300); const h = hash();
|
||||
run('generateWorld(42, 256, 256, null); fogLook = function () {}'); ticks(run, 300);
|
||||
|
||||
Reference in New Issue
Block a user