Das:
dist.x * dist.x + dist.y * dist.y
sollte eigentlich nicht negativ werden können.

Bekommst du noch andere Fehlermeldungen?