From 4ac41a793ecfff4025d28a4c97b40ee65949288b Mon Sep 17 00:00:00 2001
From: cora <coradelamouche@gmx.ch>
Date: Thu, 19 May 2022 02:03:28 +0200
Subject: [PATCH] fix two crashes in pathfinding

---
 mods/ENTITIES/mcl_mobs/api.lua | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua
index 71fa681e3..bbcbefb0a 100644
--- a/mods/ENTITIES/mcl_mobs/api.lua
+++ b/mods/ENTITIES/mcl_mobs/api.lua
@@ -2390,7 +2390,7 @@ local do_states = function(self, dtime)
 	elseif self.state == "gowp" then
 		local p = self.object:get_pos()
 		if not p or not self._target then return end
-		if vector.distance(p,self._target) < 2 or #self.waypoints == 0 then
+		if vector.distance(p,self._target) < 2 or ( self.waypoints and #self.waypoints == 0 ) then
 			self.waypoints = nil
 			self._target = nil
 			self.current_target = nil
@@ -2398,7 +2398,7 @@ local do_states = function(self, dtime)
 			if self.callback_arrived then return self.callback_arrived(self) end
 			return true
 		end
-		if not self.current_target or vector.distance(p,self.current_target) < 1.5 then
+		if self.waypoints and ( not self.current_target or vector.distance(p,self.current_target) < 1.5 ) then
 			self.current_target = table.remove(self.waypoints, 1)
 			--minetest.log("nextwp:".. tostring(self.current_target) )
 		elseif self.current_target then