Added new functions to support diagonal and double pawn moves