public boolean move(Map map, Dot o)
	{
		if(o.curNode<o.node.size())
		{
			if(!about(o.x,o.tx,o.speed) || !about(o.y,o.ty,o.speed))
			{

				xcounter++;
				if(o.x!=0 && o.tx!=0)
				{
				if(!see(new Point((int)o.tx,(int)o.ty), new Point((int)o.x,(int)o.y),map))
				{
					o.curNode=10000;
					System.out.println("i got interrupted, leaving loop");
				}
				xcounter=0;
				}
				o.x+=o.mx;
				o.y+=o.my;
			}
			else
			{
				o.x= o.tx;
				o.y= o.ty;
				o.curNode++;
				
				if(o.curNode<o.node.size() )
				{
					o.mx=o.node.get(o.curNode).dirx;
					o.my=o.node.get(o.curNode).diry;
					o.tx=o.node.get(o.curNode).x;
					o.ty=o.node.get(o.curNode).y;
				}
			}
			return true;
		}
		else
			return false;
	}