summaryrefslogtreecommitdiff
path: root/src/map/path.c
diff options
context:
space:
mode:
authorMichieru <Michieru@users.noreply.github.com>2014-03-23 00:33:29 +0100
committerMichieru <Michieru@users.noreply.github.com>2014-03-23 00:33:29 +0100
commita830f934d0e60a63f6491a0ccc6e98341d12af36 (patch)
tree1c4cab8dea8a86ca600f65fbe7454a88cff420a6 /src/map/path.c
parent4f7e8ea519e6b6a4a9bf50fabc08b182c47d8171 (diff)
downloadhercules-a830f934d0e60a63f6491a0ccc6e98341d12af36.tar.gz
hercules-a830f934d0e60a63f6491a0ccc6e98341d12af36.tar.bz2
hercules-a830f934d0e60a63f6491a0ccc6e98341d12af36.tar.xz
hercules-a830f934d0e60a63f6491a0ccc6e98341d12af36.zip
Fix Bug 8106
http://hercules.ws/board/tracker/issue-8106-crescent-elbow-knockback-range/ Increase reflect damage make by crescent elbow Fix Bug 8099 http://hercules.ws/board/tracker/issue-8099-renewal-acid-bomb-damage/ Cart Revolution will now always knock targets to the West - rAthena:1f26499994af9b64aa96d5ed46f6e7cdefdb025b Fix a bug with Backslide that let you continue to move even if you hit a wall on some case. Thanks to Ind
Diffstat (limited to 'src/map/path.c')
-rw-r--r--src/map/path.c34
1 files changed, 11 insertions, 23 deletions
diff --git a/src/map/path.c b/src/map/path.c
index 21d14c815..3b33fce65 100644
--- a/src/map/path.c
+++ b/src/map/path.c
@@ -82,29 +82,17 @@ int path_blownpos(int16 m,int16 x0,int16 y0,int16 dx,int16 dy,int count)
dy=(dy>0)?1:((dy<0)?-1:0);
}
- while( count > 0 && (dx != 0 || dy != 0) ) {
- if( !md->getcellp(md,x0+dx,y0+dy,CELL_CHKPASS) ) {// attempt partial movement
- int fx = ( dx != 0 && md->getcellp(md,x0+dx,y0,CELL_CHKPASS) );
- int fy = ( dy != 0 && md->getcellp(md,x0,y0+dy,CELL_CHKPASS) );
- if( fx && fy )
- {
- if(rnd()&1)
- dx=0;
- else
- dy=0;
- }
- if( !fx )
- dx=0;
- if( !fy )
- dy=0;
- }
-
- x0 += dx;
- y0 += dy;
- count--;
- }
-
- return (x0<<16)|y0; //TODO: use 'struct point' here instead?
+ while( count > 0 && (dx != 0 || dy != 0) ) {
+ if( !md->getcellp(md,x0+dx,y0+dy,CELL_CHKPASS) ) {
+ break;
+ }
+
+ x0 += dx;
+ y0 += dy;
+ count--;
+ }
+
+ return (x0<<16)|y0; //TODO: use 'struct point' here instead?
}
/*==========================================