anchor.diff:  
   			else if(d > 3)
   				dir = get_dir(src, p)
  -				loc = get_step_towards(src, p)
  +				loc = get_step(src, dir)
   
   			if(light)
   				light.loc = loc
   
   		else
   			if(item.function & PET_FOLLOW_RIGHT)
  -				dir = p.dir
  -				loc = get_step(p, turn(p.dir, 90))
  +				walkTo(get_step(p, turn(p.dir, 90)), p.dir)
   			else if(item.function & PET_FOLLOW_LEFT)
  -				dir = p.dir
  -				loc = get_step(p, turn(p.dir, -90))
  -			else
  -				dir = get_dir(loc, oldLoc)
  -				loc = oldLoc
  +				walkTo(get_step(p, turn(p.dir, -90)), p.dir)
  +			else
  +				walkTo(oldLoc, get_dir(loc, oldLoc))
   
   			var/const/stepSize = 16
   
  
positive.code: 			animate(src, color = c2.matrix, time = 15, loop = -1)
  			animate(     color = c1.matrix, time = 15)
  
  	proc/follow(turf/oldLoc, mob/Player/p)
  		if(p.z != z) // temp workaround for animate bug
  			refresh(1)
  
negative.code: 			stepCount   = 0
  			isDisposing = 0
  
  			turf/target
  			finalDir
  
  	New(loc, obj/items/wearable/pets/pet)
  		set waitfor = 0
  		..()
  