summaryrefslogtreecommitdiff
path: root/src/map/unit.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/unit.c')
-rw-r--r--src/map/unit.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/map/unit.c b/src/map/unit.c
index e901d3138..fca406e5f 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -315,21 +315,22 @@ int unit_walktoxy( struct block_list *bl, short x, short y, int flag)
{
struct unit_data* ud = NULL;
struct status_change* sc = NULL;
-#ifdef OFFICIAL_WALKPATH
struct walkpath_data wpd;
-#endif
+
nullpo_ret(bl);
ud = unit_bl2ud(bl);
if( ud == NULL) return 0;
-#ifdef OFFICIAL_WALKPATH
path_search(&wpd, bl->m, bl->x, bl->y, x, y, flag&1, CELL_CHKNOPASS); // Count walk path cells
+#ifdef OFFICIAL_WALKPATH
if( !path_search_long(NULL, bl->m, bl->x, bl->y, x, y, CELL_CHKNOPASS) // Check if there is an obstacle between
&& wpd.path_len > 14 ) // Official number of walkable cells is 14 if and only if there is an obstacle between. [malufett]
return 0;
#endif
+ if( battle_config.max_walk_path < wpd.path_len )
+ return 0;
if (flag&4 && DIFF_TICK(ud->canmove_tick, gettick()) > 0 &&
DIFF_TICK(ud->canmove_tick, gettick()) < 2000)