anchor.diff:  
   /obj/item/clothing/glasses/meson/engine/proc/invis_update()
   	for(var/obj/O in invis_objects)
  -		if(!t_ray_on() || !(O in range(1, loc)))
  +		if(!t_ray_on() || !(O in range(range, loc)))
   			invis_objects -= O
   			var/turf/T = O.loc
   			if(T && T.intact)
  
positive.code: 		vision_flags = 0
  		darkness_view = 2
  		invis_view = SEE_INVISIBLE_LIVING
  		usr << "<span class='notice'>You toggle the goggles' scanning mode to \[T-Ray].</span>"
  	else
  		SSobj.processing.Remove(src)
  		vision_flags = SEE_TURFS
  		darkness_view = 1
  		invis_view = SEE_INVISIBLE_MINIMUM
  		usr << "<span class='notice'>You toggle the goggles' scanning mode to \[Meson].</span>"
  		invis_update()
  
  	update_icon()
  
  /obj/item/clothing/glasses/meson/engine/process()
  	if(!mode)
  		return null
  
  	if(!istype(loc,/mob/living/carbon/human))
  		invis_update()
  		return null
  
  	var/mob/living/carbon/human/user = loc
  	if(user.glasses != src)
  		invis_update()
  		return null
  
  	scan()
  
  
negative.code: 
  	if(on)
  		SSobj.processing |= src
  		loc << "<span class='notice'>You turn the goggles on.</span>"
  	else
  		SSobj.processing.Remove(src)
  		loc << "<span class='notice'>You turn the goggles off.</span>"
  		invis_update()
  
  	update_icon()
  
  /obj/item/clothing/glasses/meson/engine/tray/t_ray_on()
  	return on && ..()