From a97cb853f6a7789649f7e2099b44077ef2a43f36 Mon Sep 17 00:00:00 2001 From: magiczocker10 <59317952+magiczocker10@users.noreply.github.com> Date: Sat, 13 Jul 2024 12:10:12 +0200 Subject: [PATCH 1/6] Add PICROSS e save editor --- picross-e/_cache_service_worker.js | 82 +++++++++++++++++++ picross-e/all.dat | Bin 0 -> 740 bytes picross-e/index.html | 113 +++++++++++++++++++++++++++ picross-e/picross-e.js | 121 +++++++++++++++++++++++++++++ 4 files changed, 316 insertions(+) create mode 100644 picross-e/_cache_service_worker.js create mode 100644 picross-e/all.dat create mode 100644 picross-e/index.html create mode 100644 picross-e/picross-e.js diff --git a/picross-e/_cache_service_worker.js b/picross-e/_cache_service_worker.js new file mode 100644 index 0000000..1b48e06 --- /dev/null +++ b/picross-e/_cache_service_worker.js @@ -0,0 +1,82 @@ +/* + Cache Service Worker template by mrc 2019 + mostly based in: + https://github.com/GoogleChrome/samples/blob/gh-pages/service-worker/basic/service-worker.js + https://github.com/chriscoyier/Simple-Offline-Site/blob/master/js/service-worker.js + https://gist.github.com/kosamari/7c5d1e8449b2fbc97d372675f16b566e + + Note for GitHub Pages: + there can be an unexpected behaviour (cache not updating) when site is accessed from + https://user.github.io/repo/ (without index.html) in some browsers (Firefox) + use absolute paths if hosted in GitHub Pages in order to avoid it + also invoke sw with an absolute path: + navigator.serviceWorker.register('/repo/_cache_service_worker.js', {scope: '/repo/'}) +*/ + + +/* MOD: fix old caches for mrc */ +caches.keys().then(function(cacheNames){ + for(var i=0; i { + evt.waitUntil( + caches.open('precache-'+PRECACHE_ID+'-'+PRECACHE_VERSION) + .then(cache => cache.addAll(PRECACHE_URLS)) + .then(self.skipWaiting()) + ); +}); + + +// activate event (fired when sw is has been successfully installed): cleans up old outdated caches +self.addEventListener('activate', evt => { + evt.waitUntil( + caches.keys().then(cacheNames => { + return cacheNames.filter(cacheName => (cacheName.startsWith('precache-'+PRECACHE_ID+'-') && !cacheName.endsWith('-'+PRECACHE_VERSION))); + }).then(cachesToDelete => { + return Promise.all(cachesToDelete.map(cacheToDelete => { + console.log('delete '+cacheToDelete); + return caches.delete(cacheToDelete); + })); + }).then(() => self.clients.claim()) + ); +}); + + +// fetch event (fired when requesting a resource): returns cached resource when possible +self.addEventListener('fetch', evt => { + if(evt.request.url.startsWith(self.location.origin)){ //skip cross-origin requests + evt.respondWith( + caches.match(evt.request).then(cachedResource => { + if (cachedResource) { + return cachedResource; + }else{ + return fetch(evt.request); + } + }) + ); + } +}); diff --git a/picross-e/all.dat b/picross-e/all.dat new file mode 100644 index 0000000000000000000000000000000000000000..2a9524fd4646138c68021f0585eebbaaf3fd53a2 GIT binary patch literal 740 zcmaKqUucbS7{@>F8d|hOXO4uTIbPasaF4So+gxYF& zJ|CVMySxL6>#b3MpXL>;xkBDIYn`5LZ}D>j+%a!X4n~a6G_TDXn>WG|b9&ohYzV%b zg{FRJJPE&6Lv$Se7@Il_)mNZPUzL3>nR|Dq^Y%dHcG%hlzdPa8S{OP7`>gw-&mFYK zTA*V;)bEAe>)_oUsAz;Abr3jP`(o&Grkh#!u7Iqyr^N9EzMZ+%8{E#rg%nI?U}7FD zcmC$I{pB8$J6CQ;y}RijwB{LoBj&creQ4f9CE~CZX#l5+@YG(5neiVuqPalnK&7Cd|aL(mMR#B*amP VOzb + + + Savegame Editor – PICROSS e + + + + + + + + + + + + + + + + + + + + + diff --git a/picross-e/picross-e.js b/picross-e/picross-e.js new file mode 100644 index 0000000..f2038a0 --- /dev/null +++ b/picross-e/picross-e.js @@ -0,0 +1,121 @@ +/* + PICROSS e for HTML5 Save Editor v20160704 + by Marc Robledo 2016 +*/ + +SavegameEditor={ + Name:'PICROSS e', + Filename:'all.dat', + Constants:{ + SETTINGS_CONTROL_METHOD_OFFSET: 0x258, // 0=Button, 1=Stylus + SETTINGS_HINT_NUMBER_OFFSET: 0x259, // 0=OFF, 1=ON + SETTINGS_NAVIGATION_OFFSET: 0x25A, //0=OFF, 1=ON + SETTINGS_BGM_OFFSET: 0x25D, // 0=OFF, 1-5 + SETTINGS_EFFECTS_OFFSET: 0x25E, // 0=OFF, 1-5 + BGM_EFFECTS:[ + {value:0, name:'OFF'}, + {value:1, name:'1'}, + {value:2, name:'2'}, + {value:3, name:'3'}, + {value:4, name:'4'}, + {value:5, name:'5'}, + ], + CONTROL_METHOD:[ + {value:0, name:'Stylus Controls'}, + {value:1, name:'Button Controls'} + ] + }, + + _write_settings_control_method:function(){ + tempFile.writeU8( + SavegameEditor.Constants.SETTINGS_CONTROL_METHOD_OFFSET, + getValue('settings-control-method') + ); + }, + _write_hint_number:function(){ + tempFile.writeU8( + SavegameEditor.Constants.SETTINGS_HINT_NUMBER_OFFSET, + getValue('settings-hint-number-auto-check') + ); + }, + _write_navigation:function(){ + tempFile.writeU8( + SavegameEditor.Constants.SETTINGS_NAVIGATION_OFFSET, + getValue('settings-navigation') + ); + }, + _write_settings_bgm:function(){ + tempFile.writeU8( + SavegameEditor.Constants.SETTINGS_BGM_OFFSET, + getValue('settings-bgm') + ); + }, + _write_settings_effects:function(){ + tempFile.writeU8( + SavegameEditor.Constants.SETTINGS_EFFECTS_OFFSET, + getValue('settings-effects') + ); + }, + _write_puzzle_time:function(e){ + if (e.target.valueAsNumber > 86399000) {return;} // Filter invalid values + tempFile.writeU32( + Number(e.target.dataset.offset), + Math.floor(e.target.valueAsNumber / 1000) * 60 + ); + }, + + /* check if savegame is valid */ + checkValidSavegame:function(){ + return (tempFile.fileSize==740) + }, + + preload:function(){ + get('container-settings-control-method').appendChild(select('settings-control-method', SavegameEditor.Constants.CONTROL_METHOD, SavegameEditor._write_settings_control_method)); + get('checkbox-settings-hint-number-auto-check').addEventListener('change', SavegameEditor._write_hint_number); + get('checkbox-settings-navigation').addEventListener('change', SavegameEditor._write_navigation); + get('container-settings-bgm').appendChild(select('settings-bgm', SavegameEditor.Constants.BGM_EFFECTS, SavegameEditor._write_settings_bgm)); + get('container-settings-effects').appendChild(select('settings-effects', SavegameEditor.Constants.BGM_EFFECTS, SavegameEditor._write_settings_effects)); + }, + + /* load function */ + load:function(){ + tempFile.fileName='all.dat'; + tempFile.littleEndian=true; + + for (var difficulty of [ + ['E', 'easy', 0, 15], + ['N', 'normal', 15, 75], + ['F', 'free', 75, 135], + ['X', 'extra', 135, 150], + ]) { + var ce = get('puzzles-' + difficulty[1]); + for (var i = difficulty[2]; i < difficulty[3]; i++) { + var date = new Date(0); + date.setSeconds(Math.floor(tempFile.readU32(4*i)/60)); + var timeString = date.toISOString().substring(11, 19); + var time_ele = document.createElement('input'); + time_ele.type='time'; + time_ele.min='00:00:00'; + time_ele.max='23:59:59'; + time_ele.step='1'; + time_ele.value=timeString; + time_ele.dataset.offset=4*i; + time_ele.addEventListener('change', SavegameEditor._write_puzzle_time); + ce.append( + col(1, span(difficulty[0] + ('0' + String(i-difficulty[2]+1)).slice(-2))), + col(3, time_ele) + ); + } + } + setValue('settings-control-method', tempFile.readU8(SavegameEditor.Constants.SETTINGS_CONTROL_METHOD_OFFSET)); + getField('checkbox-settings-hint-number-auto-check').checked = tempFile.readU8(SavegameEditor.Constants.SETTINGS_HINT_NUMBER_OFFSET)>0; + getField('checkbox-settings-navigation').checked = tempFile.readU8(SavegameEditor.Constants.SETTINGS_NAVIGATION_OFFSET)>0; + setValue('settings-bgm', tempFile.readU8(SavegameEditor.Constants.SETTINGS_BGM_OFFSET)); + setValue('settings-effects', tempFile.readU8(SavegameEditor.Constants.SETTINGS_EFFECTS_OFFSET)); + }, + + + /* save function */ + save:function(){ + } +} \ No newline at end of file From 21d5c7c73e42878f3ce2347e9c0559211c1dfa79 Mon Sep 17 00:00:00 2001 From: magiczocker10 <59317952+magiczocker10@users.noreply.github.com> Date: Sun, 14 Jul 2024 17:46:12 +0200 Subject: [PATCH 2/6] Add support for e2, e3, e4, e5, e6, e7, e8 and e9 --- picross-e/index.html | 80 +++++-------- picross-e/picross-e.js | 212 ++++++++++++++++++++------------ picross-e/versions.json | 260 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 423 insertions(+), 129 deletions(-) create mode 100644 picross-e/versions.json diff --git a/picross-e/index.html b/picross-e/index.html index 3ce3c49..a961b4d 100644 --- a/picross-e/index.html +++ b/picross-e/index.html @@ -27,7 +27,7 @@