diff --git a/index.html b/index.html
index 96f9740..c0f0a34 100644
--- a/index.html
+++ b/index.html
@@ -4587,6 +4587,7 @@ var hiddenGenres=JSON.parse(localStorage.getItem("drgameHidden")||"[]");
var hiddenSongs=JSON.parse(localStorage.getItem("drgameHiddenSongs")||"{}");
function isSongHidden(genre,name){return hiddenSongs[genre]&&hiddenSongs[genre].indexOf(name)>=0;}
function hideSong(genre,name){
+ if(!mathGate("hide this song"))return;
if(!hiddenSongs[genre])hiddenSongs[genre]=[];
if(hiddenSongs[genre].indexOf(name)<0)hiddenSongs[genre].push(name);
localStorage.setItem("drgameHiddenSongs",JSON.stringify(hiddenSongs));
@@ -4639,19 +4640,16 @@ function setVolume(v){masterVolume=v/100;syncSliders();saveSettings();}
function resetSettings(){gameSpeed=1.0;masterVolume=1.0;syncSliders();saveSettings();}
function loadSettings(){syncSliders();}
function confirmReset(){
- var a=Math.floor(Math.random()*20)+5,b=Math.floor(Math.random()*20)+5;
- var ans=prompt("To reset ALL saved data (scores, settings, gamepad mapping, hidden genres), solve this:\n\nWhat is "+a+" + "+b+"?");
- if(ans===null)return;
- if(parseInt(ans)===a+b){
- localStorage.removeItem("drgame5");localStorage.removeItem("drgameSettings");
- localStorage.removeItem("drgameGpMap");localStorage.removeItem("drgameKeyMap");localStorage.removeItem("drgameHidden");localStorage.removeItem("drgameHiddenSongs");
- savedScores=[];hiddenGenres=[];hiddenSongs={};gpMap={0:2,1:3,2:0,3:1,4:4,5:5,6:6,7:7,8:4};customKeyMap=null;
- LANES[0].key="f";LANES[1].key="g";LANES[2].key="h";LANES[3].key="j";LANES[4].key=" ";LANES[5].key="d";LANES[6].key="k";LANES[7].key="l";
- refreshMiniLB();resetSettings();buildMenu();
- alert("All data cleared!");
- } else {alert("Incorrect — data NOT cleared.");}
+ if(!mathGate("reset ALL saved data")){alert("Incorrect — data NOT cleared.");return;}
+ localStorage.removeItem("drgame5");localStorage.removeItem("drgameSettings");
+ localStorage.removeItem("drgameGpMap");localStorage.removeItem("drgameKeyMap");localStorage.removeItem("drgameHidden");localStorage.removeItem("drgameHiddenSongs");
+ savedScores=[];hiddenGenres=[];hiddenSongs={};gpMap={0:2,1:3,2:0,3:1,4:4,5:5,6:6,7:7,8:4};customKeyMap=null;
+ LANES[0].key="f";LANES[1].key="g";LANES[2].key="h";LANES[3].key="j";LANES[4].key=" ";LANES[5].key="d";LANES[6].key="k";LANES[7].key="l";
+ refreshMiniLB();resetSettings();buildMenu();
+ alert("All data cleared!");
}
function hideGenre(g){
+ if(!mathGate("hide this genre"))return;
if(hiddenGenres.indexOf(g)<0)hiddenGenres.push(g);
localStorage.setItem("drgameHidden",JSON.stringify(hiddenGenres));
if(curGenre===g){var allG=Object.keys(SYNTH_GENRES).concat(Object.keys(GENRES));curGenre=allG.find(function(x){return hiddenGenres.indexOf(x)<0;})||allG[0];curIdx=0;}
@@ -4816,7 +4814,14 @@ function edLaneToY(l){
return ED_HEAD+4*ED_LANE_H+ED_KICK_H/2;
}
+function mathGate(actionLabel){
+ var a=Math.floor(Math.random()*20)+5,b=Math.floor(Math.random()*20)+5;
+ var ans=prompt("To "+actionLabel+", solve this:\n\nWhat is "+a+" + "+b+"?");
+ if(ans===null)return false;
+ return parseInt(ans)===a+b;
+}
function openEditor(){
+ if(!mathGate("edit this melody"))return;
var pieces=SYNTH_GENRES[curGenre]||GENRES[curGenre];
if(!pieces||!pieces[curIdx])return;
edPiece=pieces[curIdx];
@@ -4863,7 +4868,7 @@ window.addEventListener("resize",function(){if(document.getElementById("sed").cl
function edDraw(){
var cv=getEdCanvas(),ctx=getEdCtx(),W=cv.width,H=cv.height;
ctx.clearRect(0,0,W,H);
- var pps=edPxPerSec();
+ var pps=edPxPerUnit();
// Draw lane backgrounds
for(var i=0;i<4;i++){