anchor.diff:  	var/z_c	= target.z
   
   	var/icon/temp = icon('96x96.dmi',"")
  +	var/icon/black = icon('space.dmi', "black")
   	var/mobs = ""
   	for (var/i = 1; i <= 3; i++)
   		for (var/j = 1; j <= 3; j++)
   			var/turf/T = locate(x_c,y_c,z_c)
  -			temp.Blend(get_icon(T),ICON_OVERLAY,31*(j-1),62 - 31*(i-1))
  +
  +			var/mob/dummy = new(T)	//Go go visibility check dummy
  +			if(dummy in viewers(world.view, user))
  +				temp.Blend(get_icon(T),ICON_OVERLAY,31*(j-1-1),31 - 31*(i-1))
  +			else
  +				temp.Blend(black,ICON_OVERLAY,31*(j-1),62 - 31*(i-1))
   			mobs += get_mobs(T)
  +			del dummy	//Alas, nameless creature
   			x_c++
   		y_c--
   		x_c = x_c - 3
  
positive.code: 			if(A.l_hand) holding = "They are holding \a [A.l_hand]"
  			if(A.r_hand)
  				if(holding)
  					holding += " and \a [A.r_hand]."
  				else
  					holding = "They are holding \a [A.r_hand]."
  
  		if(!mob_detail)
  			mob_detail = "You can see [A] on the photo[A:health < 75 ? " - [A] looks hurt":""].[holding ? " [holding]":"."]. "
  		else
  			mob_detail += "You can also see [A] on the photo[A:health < 75 ? " - [A] looks hurt":""].[holding ? " [holding]":"."]"
  	return mob_detail
  
  /obj/item/weapon/camera_test/afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag)
  
negative.code: 			gap = round(gap / 1.247330950103979)
  		if (gap < 1)
  			gap = 1
  		for (var/i = 1; gap + i <= atoms.len; i++)
  			var/atom/l = atoms[i]		//Fucking hate
  			var/atom/r = atoms[gap+i]	//how lists work here
  			if (l.layer > r.layer)		//no "atoms[i].layer" for me
  				atoms.Swap(i, gap + i)
  				swapped = 1
  
  	for (var/i; i <= atoms.len; i++)
  		var/atom/A = atoms[i]
  		if (A)
  			var/icon/img = build_composite_icon(A)
  			if(istype(img, /icon))
  				res.Blend(img,ICON_OVERLAY,32+A.pixel_x,32+A.pixel_y)
  	return res
  
  /obj/item/weapon/camera_test/attack_self(var/mob/user as mob)
  