pre.js (1164B)
1 // pre.js - antes de main(): monta /data en IDBFS (IndexedDB) para que la config, las 2 // partidas locales y los tokens (data_dir() en comun/linux/paths.c) sobrevivan a 3 // cerrar la pestana. Se carga primero y recien si salio bien se activa autoPersist: 4 // si la carga fallara y se escribiera igual, syncfs borraria de IndexedDB todo lo 5 // que no esta en memoria. paths_flush() ademas espera el sync tras guardar algo 6 // importante, y no hace nada si Module.noPersist. 7 Module.preRun = Module.preRun || []; 8 Module.preRun.push(function () { 9 try { 10 FS.mkdir('/data'); 11 FS.mount(IDBFS, {}, '/data'); 12 addRunDependency('idbfs'); 13 FS.syncfs(true, function (err) { 14 if (err) { 15 console.warn('IDBFS: no se pudo cargar, se juega sin guardar', err); 16 Module.noPersist = true; 17 if (Module.setStatus) Module.setStatus('Sin almacenamiento: esta sesion no guarda partidas'); 18 } else { 19 var m = FS.lookupPath('/data').node.mount; 20 if (m && m.opts) m.opts.autoPersist = true; 21 } 22 removeRunDependency('idbfs'); 23 }); 24 } catch (e) { 25 console.warn('sin persistencia', e); 26 Module.noPersist = true; 27 } 28 });