diff options
author | Michieru <Michieru@users.noreply.github.com> | 2014-03-23 00:33:29 +0100 |
---|---|---|
committer | Michieru <Michieru@users.noreply.github.com> | 2014-03-23 00:33:29 +0100 |
commit | a830f934d0e60a63f6491a0ccc6e98341d12af36 (patch) | |
tree | 1c4cab8dea8a86ca600f65fbe7454a88cff420a6 /src/map/path.c | |
parent | 4f7e8ea519e6b6a4a9bf50fabc08b182c47d8171 (diff) | |
download | hercules-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.c | 34 |
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?
} /*========================================== |