public void setLink(TWPoint startPoint, TWPoint endPoint, int direction, int owner)
	{
	// Not if it already exists, tho.
	if (linkArray_[startPoint.x][startPoint.y][direction])
		return;
	linkArray_[startPoint.x][startPoint.y][direction] = true;
	Link newLink = new Link(owner, startPoint, endPoint);
	linkList_.add(newLink);
	System.out.println("setLink added " + startPoint + ", " + endPoint + " @ " + direction);
	touch();

	// Add to the win-check list, and check it
	//
	linkCheck_[owner].add(newLink);
	System.out.println("Link set is now " + linkCheck_[owner]);

	boolean horizontal = (owner == PLAYER_2_PEG) ? true : false;
	if (horizontal)
		{
		if (startPoint.x == 0)
			{
			int index = startPoint.y;
			System.out.println("setting home row " + index + " to " + owner);
			homeRow_[owner][index] = owner;
			}
		}
	else
		{
		boolean isHomeRow = false;
		int index = 0;
		if (startPoint.y == 0)
			{
			isHomeRow = true;
			index = startPoint.x;
			}
		else if (endPoint.y == 0)
			{
			isHomeRow = true;
			index = endPoint.x;
			}
		if (isHomeRow)
			{
			System.out.println("setting home row " + index + " to " + owner);
			homeRow_[owner][index] = owner;
			}
		}

	boolean winner = Utils.checkForWin(linkCheck_[owner], homeRow_[owner], horizontal, boardSize_);
	if (winner)
		{

		// Jan05

		// GUI_.playerWins(owner);

		System.out.println("WINNER, BUT WE'RE HOLDING....");
		theWinner_ = owner;
		}

	} // setLink