summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-07-03 10:22:03 +0000
committershennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-07-03 10:22:03 +0000
commit9cc59af3b0b4c2872fb70e0f0b00f17afcd7122a (patch)
tree3bcb974e22e2a9807ba7eddc480f69be46bb0e64 /src
parentdbd1f8cd60a0ac82e6161fefe5308475e8f124c0 (diff)
downloadhercules-9cc59af3b0b4c2872fb70e0f0b00f17afcd7122a.tar.gz
hercules-9cc59af3b0b4c2872fb70e0f0b00f17afcd7122a.tar.bz2
hercules-9cc59af3b0b4c2872fb70e0f0b00f17afcd7122a.tar.xz
hercules-9cc59af3b0b4c2872fb70e0f0b00f17afcd7122a.zip
r16370 has fixed a behavior in *athena that has always made walking easier/smoother, unlike how it actually is meant to be, however since users have been exposed to this behavior for so many years I'm adding a config to disable it in order to save endless posts/bug reports on a intended feature.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16372 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/config/core.h6
-rw-r--r--src/map/skill.c4
-rw-r--r--src/map/unit.c11
3 files changed, 15 insertions, 6 deletions
diff --git a/src/map/config/core.h b/src/map/config/core.h
index 9963d38b9..848829ea2 100644
--- a/src/map/config/core.h
+++ b/src/map/config/core.h
@@ -18,6 +18,12 @@
**/
#define MAX_SUGGESTIONS 10
+//Comment to disable the official walk path
+// -- The official walkpath disables users from taking non-clear walk paths,
+// -- e.g. if they want to get around a obstacle they have to walk around it,
+// -- while with OFFICIAL_WALKPATH disabled if they click to walk around a obstacle the server will do it automatically
+#define OFFICIAL_WALKPATH
+
/// leave this line uncommented to enable callfunc checks when processing scripts.
/// while allowed, the script engine will attempt to match user-defined functions
/// in scripts allowing direct function callback (without the use of callfunc.)
diff --git a/src/map/skill.c b/src/map/skill.c
index 71a048b8a..31ec7acd1 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -8823,10 +8823,10 @@ int skill_castend_id(int tid, unsigned int tick, int id, intptr_t data)
else
skill_consume_requirement(sd,ud->skillid,ud->skilllv,1);
}
-
+#ifdef OFFICIAL_WALKPATH
if( !path_search_long(NULL, src->m, src->x, src->y, target->x, target->y, CELL_CHKWALL) )
break;
-
+#endif
if( (src->type == BL_MER || src->type == BL_HOM) && !skill_check_condition_mercenary(src, ud->skillid, ud->skilllv, 1) )
break;
diff --git a/src/map/unit.c b/src/map/unit.c
index ea114ea72..ed4035ebe 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -322,9 +322,9 @@ int unit_walktoxy( struct block_list *bl, short x, short y, int flag)
ud = unit_bl2ud(bl);
if( ud == NULL) return 0;
-
+#ifdef OFFICIAL_WALKPATH
if( !path_search_long(NULL, bl->m, bl->x, bl->y, x, y, CELL_CHKWALL) ) return 0;
-
+#endif
if (flag&4 && DIFF_TICK(ud->canmove_tick, gettick()) > 0 &&
DIFF_TICK(ud->canmove_tick, gettick()) < 2000)
{ // Delay walking command. [Skotlex]
@@ -1714,8 +1714,11 @@ static int unit_attack_timer_sub(struct block_list* src, int tid, unsigned int t
return 0;
if( status_isdead(src) || status_isdead(target) ||
- battle_check_target(src,target,BCT_ENEMY) <= 0 || !status_check_skilluse(src, target, 0, 0) ||
- !path_search_long(NULL, src->m, src->x, src->y, target->x, target->y, CELL_CHKWALL) )
+ battle_check_target(src,target,BCT_ENEMY) <= 0 || !status_check_skilluse(src, target, 0, 0)
+#ifdef OFFICIAL_WALKPATH
+ || !path_search_long(NULL, src->m, src->x, src->y, target->x, target->y, CELL_CHKWALL)
+#endif
+ )
return 0; // can't attack under these conditions
if( src->m != target->m )