anchor.diff:  
   	var/list/network = list("ss13")
   	var/obj/machinery/camera/active_camera
  +	/// The turf where the camera was last updated.
  +	var/turf/last_camera_turf
   	var/list/concurrent_users = list()
   
   	// Stuff needed to render the map
  
positive.code: 		active_camera = selected_camera
  		playsound(src, get_sfx("terminal_type"), 25, FALSE)
  
  		// Show static if can't use the camera
  		if(!selected_camera?.can_use())
  			show_camera_static()
  			return TRUE
  
  		var/list/visible_turfs = list()
  
  		// Is this camera located in or attached to a living thing? If so, assume the camera's loc is the living thing.
  		var/cam_location = isliving(selected_camera.loc) ? selected_camera.loc : selected_camera
  
  		var/list/visible_things = selected_camera.isXRay() ? range(selected_camera.view_range, cam_location) : view(selected_camera.view_range, cam_location)
  
  		for(var/turf/visible_turf in visible_things)
  			visible_turfs += visible_turf
  
  		var/list/bbox = get_bbox_of_atoms(visible_turfs)
  		var/size_x = bbox[3] - bbox[1] + 1
  		var/size_y = bbox[4] - bbox[2] + 1
  
  		cam_screen.vis_contents = visible_turfs
  		cam_background.icon_state = "clear"
  		cam_background.fill_rect(1, 1, size_x, size_y)
  
  		return TRUE
  
  /obj/machinery/computer/security/ui_close(mob/user)
  	var/user_ref = REF(user)
  
negative.code: /obj/machinery/computer/security/ui_interact(mob/user, datum/tgui/ui)
  	// Update UI
  	ui = SStgui.try_update_ui(user, src, ui)
  
  	// Update the camera, showing static if necessary and updating data if the location has moved.
  	update_active_camera_screen()
  
  	if(!ui)
  		var/user_ref = REF(user)
  		var/is_living = isliving(user)
  