let graph = [{"t":"seen","x":10,"y":5},{"t":"lvlup","x":10,"y":5},{"t":"seen","x":10,"y":6},{"t":"seen","x":10,"y":7},{"t":"seen","x":10,"y":9},{"t":"seen","x":11,"y":9},{"t":"seen","x":12,"y":9},{"t":"seen","x":12,"y":10},{"t":"seen","x":12,"y":11},{"t":"lvldn","x":12,"y":11},{"t":"seen","x":12,"y":7},{"t":"seen","x":12,"y":6},{"t":"seen","x":12,"y":5},{"t":"seen","x":13,"y":7},{"t":"seen","x":14,"y":7},{"t":"seen","x":14,"y":6},{"t":"seen","x":14,"y":5},{"t":"seen","x":15,"y":5},{"t":"seen","x":16,"y":5},{"t":"seen","x":17,"y":5},{"t":"seen","x":18,"y":5},{"t":"seen","x":12,"y":12},{"t":"seen","x":12,"y":13},{"t":"seen","x":13,"y":13},{"t":"seen","x":14,"y":13},{"t":"seen","x":16,"y":13},{"t":"seen","x":17,"y":13},{"t":"seen","x":18,"y":13},{"t":"seen","x":16,"y":12},{"t":"seen","x":16,"y":11},{"t":"seen","x":16,"y":10},{"t":"seen","x":16,"y":9},{"t":"seen","x":15,"y":9},{"t":"seen","x":14,"y":9},{"t":"seen","x":14,"y":10},{"t":"seen","x":14,"y":11},{"t":"seen","x":17,"y":9},{"t":"seen","x":18,"y":9},{"t":"seen","x":18,"y":8},{"t":"seen","x":18,"y":7},{"t":"seen","x":18,"y":11},{"t":"seen","x":18,"y":12},{"t":"seen","x":16,"y":7},{"t":"seen","x":14,"y":21},{"t":"lvlup","x":14,"y":21},{"t":"seen","x":13,"y":21},{"t":"half","x":13,"y":22},{"t":"seen","x":12,"y":21},{"t":"half","x":11,"y":22},{"t":"seen","x":11,"y":21},{"t":"seen","x":15,"y":21},{"t":"seen","x":16,"y":21},{"t":"fence","d":"v","x":17,"y":21},{"t":"seen","x":18,"y":21},{"t":"half","x":18,"y":22},{"t":"seen","x":19,"y":21},{"t":"seen","x":20,"y":21},{"t":"half","x":20,"y":20},{"t":"seen","x":16,"y":20},{"t":"seen","x":16,"y":19},{"t":"txt","v":"Mines of Mt. Drash","x":10,"y":3},{"t":"txt","v":"Level 1","x":13,"y":8},{"t":"txt","v":"Level 2","x":14,"y":22},{"t":"door","d":"h","x":16,"y":22,"hidden":false},{"t":"door","d":"h","x":18,"y":10,"hidden":false},{"t":"door","d":"v","x":15,"y":11,"hidden":false},{"t":"door","d":"h","x":18,"y":6,"hidden":true},{"t":"door","d":"h","x":16,"y":6,"hidden":false},{"t":"door","d":"v","x":13,"y":11,"hidden":false},{"t":"door","d":"h","x":12,"y":8,"hidden":false},{"t":"door","d":"h","x":10,"y":8,"hidden":true},{"t":"door","d":"v","x":11,"y":5,"hidden":false},{"t":"door","d":"v","x":13,"y":9,"hidden":false},{"t":"door","d":"v","x":15,"y":7,"hidden":false},{"t":"door","d":"v","x":15,"y":13,"hidden":false},{"t":"door","d":"h","x":16,"y":8,"hidden":false}];
window.addEventListener('keydown', (e)=>{
if(document.activeElement.tagName !== 'BODY') {
return;
}
let prevent=true;
switch(e.which) {
case 38: // up
pos.y--;
pos.d=0;
updatePanForCursor();
break;
case 40: // down
pos.y++;
pos.d=2;
updatePanForCursor();
break;
case 37: // left
pos.x--;
pos.d=3;
updatePanForCursor();
break;
case 39: // right
pos.x++;
pos.d=1;
updatePanForCursor();
break;
case 32: // spacebar
toggleCellSeen(1);
break;
// case 17: // Ctrl
break;
case 49: // 1: doors
toggleCellSeen(2);
break;
case 50: // 2: half-seen
toggleCellSeen(1,true);
break;
case 51: // 3: lvl up
toggleCellSeen(4);
break;
case 52:
toggleCellSeen(5);
break;
case 16: // shift
toggleHidden();
break;
case 53: // 5: vfence
toggleCellSeen(6);
break;
case 54: // 6:
break;
case 104: // keypad up: pan
pan.y++;
break;
case 98: // keypad down
case 101: // keypad down
pan.y--;
break;
case 100: // left
pan.x++;
break;
case 102:
pan.x--;
break;
case 13: // Enter = text
toggleCellSeen(8);
break;
case 82: // r = rotate
pos.d++;
if(pos.d===4) pos.d=0;
break;
case 69: // e = rotate the other way
pos.d--;
if(pos.d <0) pos.d =3;
break;
case 68: // d = doorStyle
doorStyle = !doorStyle;
break;
case 67: // c = toggle chroma bg
chromaBg = !chromaBg;
break;
default:
console.log('unhandled keycode: '+e.which);
prevent=false;
}