@Override
	public void unInvoke()
	{
		// undo the affects of this spell
		if(affected==null)
			return;
		if(!(affected instanceof Room))
			return;
		final Room room=(Room)affected;
		if((canBeUninvoked())&&(denDirection >= 0))
		{
			int denDirection=this.denDirection;
			this.denDirection=-1;
			final Room R=room.getRoomInDir(denDirection);
			if((R!=null)&&(R.roomID().equalsIgnoreCase("")))
			{
				R.showHappens(CMMsg.MSG_OK_VISUAL,L("The den fades away..."));
				room.rawDoors()[Directions.UP]=null;
				room.setRawExit(Directions.UP,null);
				if(room.amDestroyed())
					CMLib.map().emptyRoom(R, null, true);
				else
					CMLib.map().emptyRoom(R, room, true);
				R.destroy();
			}
			room.clearSky();
		}
		super.unInvoke();
	}