diff --git a/scripts/crittermoth.pex b/scripts/crittermoth.pex index a3846456..501c4a64 100644 Binary files a/scripts/crittermoth.pex and b/scripts/crittermoth.pex differ diff --git a/source/scripts/crittermoth.psc b/source/scripts/crittermoth.psc index f59261e2..572f9b0f 100644 --- a/source/scripts/crittermoth.psc +++ b/source/scripts/crittermoth.psc @@ -362,13 +362,20 @@ ObjectReference Function PickNextPlant() float distanceTraveled = Math.sqrt(Math.pow(distanceTraveledX, 2) + Math.pow(distanceTraveledY, 2)) - wanderRangeX = RandomFloat(fMinWander, fMaxWander) * Math.cos(distanceTraveledX / distanceTraveled) - if (distanceTraveledX < 0) ; more efficient than calling math.abs - wanderRangeX *= -1 + if distanceTraveled > 0 + wanderRangeX = RandomFloat(fMinWander, fMaxWander) * Math.cos(distanceTraveledX / distanceTraveled) + if (distanceTraveledX < 0) ; more efficient than calling math.abs + wanderRangeX *= -1 + endif + wanderRangeY = RandomFloat(fMinWander, fMaxWander) * Math.sin(distanceTraveledY / distanceTraveled) endif - wanderRangeY = RandomFloat(fMinWander, fMaxWander) * Math.sin(distanceTraveledY / distanceTraveled) - else + endif + + if wanderRangeX == 0 wanderRangeX = RandomFloat(fMinWander, fMaxWander) * RandomInt(-1, 1) + endif + + if wanderRangeY == 0 wanderRangeY = RandomFloat(fMinWander, fMaxWander) * RandomInt(-1, 1) endif