protected void buildWhirl()
	{
		int[] curXY=new int[]{xsize-1,0};
		int dirs[]=new int[]{Directions.WEST,Directions.SOUTH,Directions.EAST,Directions.NORTH};
		int num=xsize-1;
		Room lastRoom=null;
		while(num>0)
		{
			for(int dir : dirs)
			{
				for(int i=0;i<num;i++)
				{
					if(!linkRoomOpen(curXY,dir))
					{
						num--;
						break;
					}
					else
					{
						lastRoom=subMap[curXY[0]][curXY[1]];
					}
				}
			}
		}
		int dir = Directions.DOWN;
		while(lastRoom != null)
		{
			lastRoom.giveASky(0);
			Room downRoom = lastRoom.getRoomInDir(dir);
			if(downRoom != null)
			{
				Behavior currents=CMClass.getBehavior("WaterCurrents");
				if(currents != null)
				{
					currents.setParms("minticks=1 maxticks=2 chance=75 BOATS "+CMLib.directions().getDirectionName(dir));
					currents.setSavable(true);
					lastRoom.addBehavior(currents);
					lastRoom.setDescription(lastRoom.description() +L("%0D^HThe swirling waters are pulling you "+CMLib.directions().getDirectionName(dir)+".^?"));
				}
			}
			lastRoom=downRoom;
		}
	}