anchor.diff:  	if(_monitor)
   		monitor = _monitor
   	else
  -		stack_trace("proximity_checker created without proximity_monitor")
  -		qdel(src)
  +		stack_trace("proximity_checker created without host")
  +		return INITIALIZE_HINT_QDEL
   
   /obj/effect/abstract/proximity_checker/Destroy()
   	monitor = null
  
positive.code: 
  /obj/effect/abstract/proximity_checker/Crossed(atom/movable/AM)
  	set waitfor = FALSE
  	var/datum/proximity_monitor/M = monitor
  	if(!M.current_range)
  		return
  	var/atom/H = M.host
  	testing("HasProx: [H] -> [AM]")
  	H.HasProximity(AM)
  
negative.code: 	
  	current_range = range
  
  	var/list/checkers_local = checkers
  	var/old_checkers_len = checkers_local.len
  
  	var/atom/_host = host
  
  	var/atom/loc_to_use = ignore_if_not_on_turf ? _host.loc : get_turf(_host)
  	if(!isturf(loc_to_use))	//only check the host's loc
  		if(range)
  			var/obj/effect/abstract/proximity_checker/pc
  			if(old_checkers_len)
  				pc = checkers_local[old_checkers_len]
  				--checkers_local.len
  				QDEL_LIST(checkers_local)
  			else
  				pc = new(loc_to_use, src)
  
  			checkers_local += pc	//only check the host's loc
  		return
  
  	var/list/turfs = RANGE_TURFS(range, loc_to_use)
  	var/turfs_len = turfs.len
  	var/old_checkers_used = min(turfs_len, old_checkers_len)
  
  	//reuse what we can
  	for(var/I in 1 to old_checkers_len)
  		if(I <= old_checkers_used)
  			var/obj/effect/abstract/proximity_checker/pc = checkers_local[I]
  			pc.loc = turfs[I]
  		else
  			qdel(checkers_local[I])	//delete the leftovers
  
  	if(old_checkers_len < turfs_len)
  		//create what we lack
  		for(var/I in (old_checkers_used + 1) to turfs_len)
  			checkers_local += new /obj/effect/abstract/proximity_checker(turfs[I], src)
  	else
  		checkers_local.Cut(old_checkers_used + 1, old_checkers_len)
  
  /obj/effect/abstract/proximity_checker
  	invisibility = INVISIBILITY_ABSTRACT
  	anchored = TRUE
  	var/datum/proximity_monitor/monitor
  
  /obj/effect/abstract/proximity_checker/Initialize(mapload, datum/proximity_monitor/_monitor)
  