Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/standalone.html
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@
</div>
<div class="footer">
<span id="errormessage" style="color:red;"></span>
<a href="__HOMEPAGE__" target="_blank">__HOMEPAGE__</a>
<a href="__HOMEPAGE__" target="_blank">__HOMEPAGE_STRIPPED_PROTOCOL__</a>
</div>

<script src="js/storagewrapper.js"></script>
Expand Down
4 changes: 2 additions & 2 deletions src/standalone_inlined.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="description" content="__GAMETITLE__"> <title>__GAMETITLE__</title> <style> body{ background-color:black; font-family:"Courier New", Courier, monospace }#gameCanvas{ position:absolute;top:0px;left:0px;width:100%;height:100%;bottom:0px;right:0px;border:0px;background-color:black; -webkit-tap-highlight-color:rgba(0,0,0,0);image-rendering:-moz-crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:pixelated;image-rendering:crisp-edges;}h1{ color:lightblue;font-weight:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:2em;margin-top:0.5em;margin-bottom:0.5em;}a{ color:lightblue;}.title{ background-color:none;text-align:center;font-size:100%;float:center;color:gray;position:absolute;left:10%;right:10%;top:0%;height:10%;}.footer{ background-color:none;text-align:center;float:center;color:white;position:absolute;margin-top:10px;left:10%;right:10%;top:90%;bottom:10%;}.gameContainer{ background-color:none;position:absolute;left:10%;right:10%;top:70px;bottom:70px;touch-action:none;}.mobile-menu{ position:relative;top:4em;margin-left:auto;margin-right:auto;font-weight:bold;border-radius:0.25em;}.mobile-menu.item-count-3{ width:30em;}.mobile-menu.item-count-3 .button{ width:28.3333%; padding:7.5% 0%;}.mobile-menu.item-count-2{ width:20em;}.mobile-menu.item-count-2 .button{ width:46%; padding:12.1765% 0%;}.mobile-menu.item-count-1{ width:10em;}.mobile-menu.item-count-1 .button{ width:98%; padding:26.5% 0%;}.mobile-menu, .tab-icon, .mobile-menu .close{ background:rgba(0,0,0,0.4);border:2px solid rgba(255, 255, 255, 0.4);color:rgba(255, 255, 255, 1);}.mobile-menu .button{ margin:2%;border-radius:0.25em;text-align:center;float:left;}.mobile-menu .clear{ clear:both;}.tab-affordance, .close-affordance{ width:6em;height:6em;position:absolute;z-index:1000;}.tab-affordance{ left:-2em;top:55px;}.close-affordance{ left:-4em;top:-1em;}.tab-icon, .mobile-menu .close{ height:48px;position:absolute;border-radius:6px;}.tab-icon{ left:-0.5em;top:70px;width:18px;border-radius:0 6px 6px 0;border-left:0;}.mobile-menu .close{ left:-18px;width:18px;top:0px;border-radius:6px 0 0 6px;border-right:0;}.tab-icon .slice, .mobile-menu .close .slice{ margin:4.5px 1px;width:2px;height:80%;background:rgba(255, 255, 255, 0.4);}.tab-icon .slice{ float:right;}.tab-icon .slice:first-child{ margin-right:4.5px;}.mobile-menu .close .slice{ float:left;}.mobile-menu .close .slice:first-child{ margin-left:4.5px;}@media screen and (max-width:32em){ .mobile-menu{ font-size:0.8em;width:90%;}}@media screen and (max-width:24em){ .mobile-menu{ font-size:0.65em;width:90%;}}.disable-select{ -webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}</style> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> </head> <body> <div class="title"><h1>__GAMETITLE__</h1></div> <div class="gameContainer"> <canvas id="gameCanvas" onmousemove="mouseMove(event)" onmouseout="mouseOut()" onkeydown="keyDown()"></canvas> </div> <div class="footer"> <span id="errormessage" style="color:red;"></span> <a href="__HOMEPAGE__" target="_blank">__HOMEPAGE__</a> </div> <script>function storage_has(e){return null!==localStorage.getItem(e)}function storage_get(e){return localStorage.getItem(e)}function storage_set(e,t){return localStorage.setItem(e,t)}function storage_remove(e){localStorage.removeItem(e)}</script> <script>function doSetupTitleScreenLevelContinue(){try{if(storage_has(document.URL)){if(storage_has(document.URL+"_checkpoint")){var e=storage_get(document.URL+"_checkpoint");curlevelTarget=JSON.parse(e);var t=[];for(var n in Object.keys(curlevelTarget.dat))t[n]=curlevelTarget.dat[n];curlevelTarget.dat=new Int32Array(t)}curlevel=storage_get(document.URL)}}catch(e){}}var unitTesting=!1,curlevel=0,curlevelTarget=null,hasUsedCheckpoint=!1,levelEditorOpened=!1,muted=0,runrulesonlevelstart_phase=!1,ignoreNotJustPressedAction=!0;doSetupTitleScreenLevelContinue();var verbose_logging=!1,throttle_movement=!1,cache_console_messages=!1,quittingTitleScreen=!1,quittingMessageScreen=!1,deltatime=17,timer=0,repeatinterval=150,autotick=0,autotickinterval=0,winning=!1,againing=!1,againinterval=150,norepeat_action=!1,oldflickscreendat=[],keybuffer=[],restarting=!1,messageselected=!1,textImages={},initLevel={width:5,height:5,layerCount:2,dat:[1,3,3,1,1,2,2,3,3,1,2,1,2,2,3,3,1,1,2,2,3,2,1,3,2,1,3,2,1,3,1,3,3,1,1,2,2,3,3,1,2,1,2,2,3,3,1,1,2,2],movementMask:[1,3,3,1,1,2,2,3,3,1,2,1,2,2,3,3,1,1,2,2,3,2,1,3,2,1,3,2,1,3,1,3,3,1,1,2,2,3,3,1,2,1,2,2,3,3,1,1,2,2],rigidGroupIndexMask:[],rigidMovementAppliedMask:[],bannedGroup:[],colCellContents:[],rowCellContents:[],colCellContents_Movements:[],rowCellContents_Movements:[]},level=initLevel;</script> <script>function stripTags(n){var e=document.createElement("div");return e.innerHTML=n,e.textContent||e.innerText||""}function consolePrint(n,e){}function consolePrintFromRule(n,e,r){}function consoleCacheDump(n){}function consoleError(n,e){var r=document.getElementById("errormessage");n=stripTags(n),r.innerHTML+=n+"<br>"}function logErrorNoLine(n){var e=document.getElementById("errormessage");n=stripTags(n),e.innerHTML+=n+"<br>"}function logBetaMessage(n){var e=document.getElementById("errormessage");n=stripTags(n),e.innerHTML+=n+"<br>"}function clearInputHistory(){}function pushInput(n){}var canSetHTMLColors=!0,canDump=!1,canOpenEditor=!1,canYoutube=!0,IDE=!1;const diffToVisualize=null;</script> <script>var font = {
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="description" content="__GAMETITLE__"> <title>__GAMETITLE__</title> <style> body{ background-color:black; font-family:"Courier New", Courier, monospace }#gameCanvas{ position:absolute;top:0px;left:0px;width:100%;height:100%;bottom:0px;right:0px;border:0px;background-color:black; -webkit-tap-highlight-color:rgba(0,0,0,0);image-rendering:-moz-crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:pixelated;image-rendering:crisp-edges;}h1{ color:lightblue;font-weight:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:2em;margin-top:0.5em;margin-bottom:0.5em;}a{ color:lightblue;}.title{ background-color:none;text-align:center;font-size:100%;float:center;color:gray;position:absolute;left:10%;right:10%;top:0%;height:10%;}.footer{ background-color:none;text-align:center;float:center;color:white;position:absolute;margin-top:10px;left:10%;right:10%;top:90%;bottom:10%;}.gameContainer{ background-color:none;position:absolute;left:10%;right:10%;top:70px;bottom:70px;touch-action:none;}.mobile-menu{ position:relative;top:4em;margin-left:auto;margin-right:auto;font-weight:bold;border-radius:0.25em;}.mobile-menu.item-count-3{ width:30em;}.mobile-menu.item-count-3 .button{ width:28.3333%; padding:7.5% 0%;}.mobile-menu.item-count-2{ width:20em;}.mobile-menu.item-count-2 .button{ width:46%; padding:12.1765% 0%;}.mobile-menu.item-count-1{ width:10em;}.mobile-menu.item-count-1 .button{ width:98%; padding:26.5% 0%;}.mobile-menu, .tab-icon, .mobile-menu .close{ background:rgba(0,0,0,0.4);border:2px solid rgba(255, 255, 255, 0.4);color:rgba(255, 255, 255, 1);}.mobile-menu .button{ margin:2%;border-radius:0.25em;text-align:center;float:left;}.mobile-menu .clear{ clear:both;}.tab-affordance, .close-affordance{ width:6em;height:6em;position:absolute;z-index:1000;}.tab-affordance{ left:-2em;top:55px;}.close-affordance{ left:-4em;top:-1em;}.tab-icon, .mobile-menu .close{ height:48px;position:absolute;border-radius:6px;}.tab-icon{ left:-0.5em;top:70px;width:18px;border-radius:0 6px 6px 0;border-left:0;}.mobile-menu .close{ left:-18px;width:18px;top:0px;border-radius:6px 0 0 6px;border-right:0;}.tab-icon .slice, .mobile-menu .close .slice{ margin:4.5px 1px;width:2px;height:80%;background:rgba(255, 255, 255, 0.4);}.tab-icon .slice{ float:right;}.tab-icon .slice:first-child{ margin-right:4.5px;}.mobile-menu .close .slice{ float:left;}.mobile-menu .close .slice:first-child{ margin-left:4.5px;}@media screen and (max-width:32em){ .mobile-menu{ font-size:0.8em;width:90%;}}@media screen and (max-width:24em){ .mobile-menu{ font-size:0.65em;width:90%;}}.disable-select{ -webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}</style> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> </head> <body> <div class="title"><h1>__GAMETITLE__</h1></div> <div class="gameContainer"> <canvas id="gameCanvas" onmousemove="mouseMove(event)" onmouseout="mouseOut()" onkeydown="keyDown()"></canvas> </div> <div class="footer"> <span id="errormessage" style="color:red;"></span> <a href="__HOMEPAGE__" target="_blank">__HOMEPAGE_STRIPPED_PROTOCOL__</a> </div> <script>function storage_has(e){return null!==localStorage.getItem(e)}function storage_get(e){return localStorage.getItem(e)}function storage_set(e,t){return localStorage.setItem(e,t)}function storage_remove(e){localStorage.removeItem(e)}</script> <script>function doSetupTitleScreenLevelContinue(){try{if(storage_has(document.URL)){if(storage_has(document.URL+"_checkpoint")){var e=storage_get(document.URL+"_checkpoint");curlevelTarget=JSON.parse(e);var t=[];for(var n in Object.keys(curlevelTarget.dat))t[n]=curlevelTarget.dat[n];curlevelTarget.dat=new Int32Array(t)}curlevel=storage_get(document.URL)}}catch(e){}}var unitTesting=!1,curlevel=0,curlevelTarget=null,hasUsedCheckpoint=!1,levelEditorOpened=!1,muted=0,runrulesonlevelstart_phase=!1,ignoreNotJustPressedAction=!0;doSetupTitleScreenLevelContinue();var verbose_logging=!1,throttle_movement=!1,cache_console_messages=!1,quittingTitleScreen=!1,quittingMessageScreen=!1,deltatime=17,timer=0,repeatinterval=150,autotick=0,autotickinterval=0,winning=!1,againing=!1,againinterval=150,norepeat_action=!1,oldflickscreendat=[],keybuffer=[],restarting=!1,messageselected=!1,textImages={},initLevel={width:5,height:5,layerCount:2,dat:[1,3,3,1,1,2,2,3,3,1,2,1,2,2,3,3,1,1,2,2,3,2,1,3,2,1,3,2,1,3,1,3,3,1,1,2,2,3,3,1,2,1,2,2,3,3,1,1,2,2],movementMask:[1,3,3,1,1,2,2,3,3,1,2,1,2,2,3,3,1,1,2,2,3,2,1,3,2,1,3,2,1,3,1,3,3,1,1,2,2,3,3,1,2,1,2,2,3,3,1,1,2,2],rigidGroupIndexMask:[],rigidMovementAppliedMask:[],bannedGroup:[],colCellContents:[],rowCellContents:[],colCellContents_Movements:[],rowCellContents_Movements:[]},level=initLevel;</script> <script>function stripTags(n){var e=document.createElement("div");return e.innerHTML=n,e.textContent||e.innerText||""}function consolePrint(n,e){}function consolePrintFromRule(n,e,r){}function consoleCacheDump(n){}function consoleError(n,e){var r=document.getElementById("errormessage");n=stripTags(n),r.innerHTML+=n+"<br>"}function logErrorNoLine(n){var e=document.getElementById("errormessage");n=stripTags(n),e.innerHTML+=n+"<br>"}function logBetaMessage(n){var e=document.getElementById("errormessage");n=stripTags(n),e.innerHTML+=n+"<br>"}function clearInputHistory(){}function pushInput(n){}var canSetHTMLColors=!0,canDump=!1,canOpenEditor=!1,canYoutube=!0,IDE=!1;const diffToVisualize=null;</script> <script>var font = {
'0':`
00000
00000
Expand Down Expand Up @@ -12823,4 +12823,4 @@ function Animatable(key, increment, update) {
}

Mobile.enable();
}());</script> <div style="z-index:2;background:transparent;position:absolute;top:0.5em;right:1em;"> <img alt="mute" id="muteButton" width="32px" height="32px" onclick="muteAudio()" style="display:none" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwgAADsIBFShKgAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xOdTWsmQAAAIGSURBVFhH3ZchcsJAGIURiApEBbIH6BEqOQASWYHoESoQFcwgOAaiEsEBKip6BERlBQJRwQEqtu/tvj+TLMnAJpntTL+ZP/De7p/9k102YUCcc0tEbpbx4MHIAMcKQ2LM4ktmOCYH9gXIawXzQasLYGKnAphryErC53VJLiPvhNgjtog54tZ3bgDt7QpgTkyD/42Y+aQa2CG5APYvMdGnFTBC3COeEG8IY4M4uxtsSCqAfQ1ZhSdZATangdNCvhCVImheVQC6FFdKZHtkeQ8fB8QOsUCM5N0hPhBkQ8+gEQ5BXLUb+swSsu0cZXjFE/kswu7ElB6hCAeJS/isCDXZOcaIKeKdHvhBPKiN00F4l+zu1BaQtKkop1Ic5BCx8g3OfSJu5Fthj9LnBfB7Ckqzc/Dq1oihtA34LP0SpHuV7r0AYyXN6SC7SO+ley9gFpQ7SHNNkFifpP9fAcZaOvsUNC3ChbQtwq30eQGg88+QwLKNjRuS/e6toLl0bQGNsF+MmuwcdRuR7Ya2EfEJ6Z8JFOEQRK6tuHg8U4TDBdClr4eRn3uDRjhcCfsasgpPsgLs8uP4iBiryUMzqQDC/iXiFxJbA1zttg4IX9EqgxM2JBdAmBPT4Pf/SmYwr4y8PC+lBnMNWUn4vLbJBvNBtz8m4E//mtkGlK0IjhWG1Jj8EnRWMPhg8AvjeqPLyfe3igAAAABJRU5ErkJggg=="> <img alt="unmute" id="unMuteButton" width="32px" height="32px" onclick="unMuteAudio()" style="display:none" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTnU1rJkAAABqElEQVRYR72XW3LDMAwDc7QerTdPRWjBoW1aedXZGUYUAIlqP9LpLbjf77+jvs3vfvgUvkDMmiPHzGxg9HTXEjNjsB6A0Nar+MxYg+UPFoH5ccLCauE+3Wmqvke+Pk5YWAl3sJuXGiSx3wfSOsMsrKRm4i6DJJAEktB+L1YW1oG4xyAJJIGUSOsMs7A2xB0GSSAJpA3Sz8xgYYnh/8R5g+ZKFG6Q9yAQ9dS3JEcEkkBqkb8K2X8EcYEkkE5RxkH6rkz7VT10uu3wwcbrcOipB+hEg62ZmlR9hbL1wEkJndgRMpVgif1+j3yH6LsSOtGALZAE0rUPwBJICfJ1D0A2ylamfDxXke8QfVfCGdak6pXpNkZBvkP0XeUl3hvkFiKfP8CwT5BPIfavD0iQBNJhEPJnDzCjr6Q31sMfI4P0/gPM6BP20ivTnSClxrZFvkP0WQ4YCQuImfzNYLfId4i+VqL0ExDfgNUi3yF6V6LkC3AsQW6R7xB9rZeHmzhrkFrkO0R/qHcZZ4Plv3sROARHv1mvImbG4GxixbucmDVHMjOauf8qY/jt9gdOODPsYZA1BAAAAABJRU5ErkJggg=="> </div> <script>var sourceCode=__GAMEDAT__;compile(["restart"],sourceCode);</script> </body> </html>
}());</script> <div style="z-index:2;background:transparent;position:absolute;top:0.5em;right:1em;"> <img alt="mute" id="muteButton" width="32px" height="32px" onclick="muteAudio()" style="display:none" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwgAADsIBFShKgAAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xOdTWsmQAAAIGSURBVFhH3ZchcsJAGIURiApEBbIH6BEqOQASWYHoESoQFcwgOAaiEsEBKip6BERlBQJRwQEqtu/tvj+TLMnAJpntTL+ZP/De7p/9k102YUCcc0tEbpbx4MHIAMcKQ2LM4ktmOCYH9gXIawXzQasLYGKnAphryErC53VJLiPvhNgjtog54tZ3bgDt7QpgTkyD/42Y+aQa2CG5APYvMdGnFTBC3COeEG8IY4M4uxtsSCqAfQ1ZhSdZATangdNCvhCVImheVQC6FFdKZHtkeQ8fB8QOsUCM5N0hPhBkQ8+gEQ5BXLUb+swSsu0cZXjFE/kswu7ElB6hCAeJS/isCDXZOcaIKeKdHvhBPKiN00F4l+zu1BaQtKkop1Ic5BCx8g3OfSJu5Fthj9LnBfB7Ckqzc/Dq1oihtA34LP0SpHuV7r0AYyXN6SC7SO+ley9gFpQ7SHNNkFifpP9fAcZaOvsUNC3ChbQtwq30eQGg88+QwLKNjRuS/e6toLl0bQGNsF+MmuwcdRuR7Ya2EfEJ6Z8JFOEQRK6tuHg8U4TDBdClr4eRn3uDRjhcCfsasgpPsgLs8uP4iBiryUMzqQDC/iXiFxJbA1zttg4IX9EqgxM2JBdAmBPT4Pf/SmYwr4y8PC+lBnMNWUn4vLbJBvNBtz8m4E//mtkGlK0IjhWG1Jj8EnRWMPhg8AvjeqPLyfe3igAAAABJRU5ErkJggg=="> <img alt="unmute" id="unMuteButton" width="32px" height="32px" onclick="unMuteAudio()" style="display:none" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTnU1rJkAAABqElEQVRYR72XW3LDMAwDc7QerTdPRWjBoW1aedXZGUYUAIlqP9LpLbjf77+jvs3vfvgUvkDMmiPHzGxg9HTXEjNjsB6A0Nar+MxYg+UPFoH5ccLCauE+3Wmqvke+Pk5YWAl3sJuXGiSx3wfSOsMsrKRm4i6DJJAEktB+L1YW1oG4xyAJJIGUSOsMs7A2xB0GSSAJpA3Sz8xgYYnh/8R5g+ZKFG6Q9yAQ9dS3JEcEkkBqkb8K2X8EcYEkkE5RxkH6rkz7VT10uu3wwcbrcOipB+hEg62ZmlR9hbL1wEkJndgRMpVgif1+j3yH6LsSOtGALZAE0rUPwBJICfJ1D0A2ylamfDxXke8QfVfCGdak6pXpNkZBvkP0XeUl3hvkFiKfP8CwT5BPIfavD0iQBNJhEPJnDzCjr6Q31sMfI4P0/gPM6BP20ivTnSClxrZFvkP0WQ4YCQuImfzNYLfId4i+VqL0ExDfgNUi3yF6V6LkC3AsQW6R7xB9rZeHmzhrkFrkO0R/qHcZZ4Plv3sROARHv1mvImbG4GxixbucmDVHMjOauf8qY/jt9gdOODPsYZA1BAAAAABJRU5ErkJggg=="> </div> <script>var sourceCode=__GAMEDAT__;compile(["restart"],sourceCode);</script> </body> </html>