private final int gen_noncaps_delta(int index, int[] delta, int nDelta, boolean sliding,
			Move[] moves, int startIndex) {
		int moveIndex = startIndex;
		// Record the board's en passant square, white/black castling rights and
		// half-moves
		for (int i = 0; i < nDelta; i++) // Loop through the 8 possible deltas
		{
			// Get the index of a square one step away from the orignal square
			// by using the current delta
			int deltaIndex = index;
			deltaIndex += delta[i];

			/* Loop until out of moves, off the board or run into a piece */
			while((deltaIndex & 0x88) == 0 && boardArray[deltaIndex] == EMPTY_SQUARE) {
				moves[moveIndex++].move = Move.createMove(
						boardArray[index], index, deltaIndex, 0,
						ORDINARY_MOVE, 0);

				if(!sliding) break;

				deltaIndex += delta[i];
			}
		}
		return moveIndex - startIndex;
	} // END gen_noncaps_delta()