protected Vector getInvokerScopeRoomSet(MOB backupMob)
	{
		if((invoker()==null)
		||(invoker().location()==null))
		{
			if((backupMob!=null)&&(backupMob.location()!=null))
				 return new XVector(backupMob.location());
			return new Vector();
		}
		final int depth=super.getXMAXRANGELevel(invoker());
		if(depth==0) return new XVector(invoker().location());
		final Vector rooms=new Vector();
		// needs to be area-only, because of the aggro-tracking rule
		TrackingLibrary.TrackingFlags flags;
		flags = new TrackingLibrary.TrackingFlags()
				.plus(TrackingLibrary.TrackingFlag.OPENONLY)
				.plus(TrackingLibrary.TrackingFlag.AREAONLY)
				.plus(TrackingLibrary.TrackingFlag.NOAIR);
		CMLib.tracking().getRadiantRooms(invoker().location(), rooms, flags, null, depth, null);
		if(!rooms.contains(invoker().location()))
			rooms.addElement(invoker().location());
		return rooms;
	}