Browse Source

Tweak the algorithm a little bit

Hans Nielsen 13 years ago
parent
commit
c839c5fa56
1 changed files with 7 additions and 2 deletions
  1. 7 2
      locationbot.py

+ 7 - 2
locationbot.py

@@ -335,10 +335,15 @@ class LocationBot(ircbot.SingleServerIRCBot):
 				for channel in self.__channels.intersection(channels):
 					self.__locations.append((nick, channel, granularity, new_location, new_coordinates, new_accuracy, new_speed, new_heading, new_altitude, new_altitude_accuracy))
 		if channels:
-			min_radius = min(old_accuracy, new_accuracy)
+			if new_location != old_location: # old method
+				make_update_noise()
 			distance = calc_distance(old_coordinates[0], old_coordinates[1],
 			                         new_coordinates[0], new_coordinates[1])
-			if distance > min_radius or new_location != old_location:
+			avg_radius = (old_accuracy + new_accuracy) / 2
+			if distance > avg_radius:
+				make_update_noise()
+			min_radius = min(old_accuracy, new_accuracy)
+			if distance > min_radius and new_radius < old_radius:
 				make_update_noise()
 
 	def __login(self, connection, nickmask, nick, arguments = ''):