anchor.diff:  		return
   	zooming = TRUE
   
  -/obj/item/gun/energy/beam_rifle/proc/stop_zooming()
  +/obj/item/gun/energy/beam_rifle/proc/stop_zooming(mob/user)
   	if(zooming)
   		zooming = FALSE
  -		reset_zooming()
  -
  -/obj/item/gun/energy/beam_rifle/proc/reset_zooming()
  -	if(!check_user(FALSE))
  -		return
  +		reset_zooming(user)
  +
  +/obj/item/gun/energy/beam_rifle/proc/reset_zooming(mob/user)
  +	if(!user)
  +		user = current_user
  +	if(!user || !user.client)
  +		return FALSE
   	zoom_animating = 0
  -	animate(current_user.client, pixel_x = 0, pixel_y = 0, 0, FALSE, LINEAR_EASING, ANIMATION_END_NOW)
  +	animate(user.client, pixel_x = 0, pixel_y = 0, 0, FALSE, LINEAR_EASING, ANIMATION_END_NOW)
   	zoom_current_view_increase = 0
  -	current_user.client.change_view(CONFIG_GET(string/default_view))
  +	user.client.change_view(CONFIG_GET(string/default_view))
   	zooming_angle = 0
   	current_zoom_x = 0
   	current_zoom_y = 0
  
positive.code: 	set_user(user)
  	. = ..()
  
  /obj/item/gun/energy/beam_rifle/dropped()
  	set_user()
  	. = ..()
  
  
negative.code: 	zooming_angle = lastangle
  	start_zooming()
  
  /obj/item/gun/energy/beam_rifle/proc/stop_aiming(mob/user)
  	set waitfor = FALSE
  	aiming_time_left = aiming_time
  	aiming = FALSE
  	QDEL_LIST(current_tracers)
  	stop_zooming(user)
  
  /obj/item/gun/energy/beam_rifle/proc/set_user(mob/user)
  	if(user == current_user)
  		return
  	stop_aiming(current_user)
  	if(istype(current_user))
  		LAZYREMOVE(current_user.mousemove_intercept_objects, src)
  		current_user = null
  