const KEY_UP_ARROW = 38;
const KEY_RIGHT_ARROW = 39;
const KEY_DOWN_ARROW = 40;
const KEY_LEFT_ARROW = 37;
const KEY_SPACE_BAR = 32;

const KEY_W = 87;
const KEY_S = 83;
const KEY_A = 65;
const KEY_D = 68;
const KEY_E = 69;

const KEY_I = 73;
const KEY_J = 74;
const KEY_K = 75;
const KEY_L = 76;
const KEY_O = 79;

const KEY_T = 84;
const KEY_F = 70;
const KEY_G = 71;
const KEY_H = 72;
const KEY_Z = 90;

function inputInit(){
    document.addEventListener("keydown", keyPressed);
    document.addEventListener("keyup", keyReleased);
    p1.setupControls(KEY_UP_ARROW, KEY_RIGHT_ARROW, KEY_DOWN_ARROW, KEY_LEFT_ARROW, KEY_SPACE_BAR);
    p3.setupControls(KEY_W, KEY_D, KEY_S, KEY_A, KEY_E);
    p4.setupControls(KEY_I, KEY_L, KEY_K, KEY_J, KEY_O);
    p2.setupControls(KEY_T, KEY_H, KEY_G, KEY_F, KEY_Z);
    
}

function keyPressed(evt){
    checkBombPlacement(evt.keyCode, p1);
    checkBombPlacement(evt.keyCode, p2);
    checkBombPlacement(evt.keyCode, p3);
    checkBombPlacement(evt.keyCode, p4);
    SetKeyHoldState(evt.keyCode, p1, true);
    SetKeyHoldState(evt.keyCode, p2, true);
    SetKeyHoldState(evt.keyCode, p3, true);
    SetKeyHoldState(evt.keyCode, p4, true);
    evt.preventDefault();
    }
    


function keyReleased(evt){
    SetKeyHoldState(evt.keyCode, p1, false);
    SetKeyHoldState(evt.keyCode, p2, false);
    SetKeyHoldState(evt.keyCode, p3, false);
    SetKeyHoldState(evt.keyCode, p4, false);
}

function SetKeyHoldState(thisKey, thisPlayer, setTo){
    if(thisKey == thisPlayer.controlKeyForNorth){
        thisPlayer.keyPressed_North = setTo;
    }
    if(thisKey == thisPlayer.controlKeyForEast){
        thisPlayer.keyPressed_East = setTo;
    }
    if(thisKey == thisPlayer.controlKeyForSouth){
        thisPlayer.keyPressed_South = setTo;
    }
    if(thisKey == thisPlayer.controlKeyForWest){
        thisPlayer.keyPressed_West = setTo;
    }
}

function checkBombPlacement(thisKey, thisPlayer) {
    if(thisKey == thisPlayer.controlKeyForBomb) {
        thisPlayer.putBomb();
    }
}