From 97c9f85e09080097835be749cc44adf9e79d10ef Mon Sep 17 00:00:00 2001 From: ultramage Date: Sat, 24 Nov 2007 17:11:02 +0000 Subject: Fixed a crash when a taekwon hits a wall while Sprinting (bugreport:483) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11795 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/unit.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/map/unit.c') diff --git a/src/map/unit.c b/src/map/unit.c index 0e01517dc..a9384eca9 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -402,6 +402,7 @@ int unit_run(struct block_list *bl) { struct status_change *sc = status_get_sc(bl); short to_x,to_y,dir_x,dir_y; + int lv; int i; if (!(sc && sc->data[SC_RUN])) @@ -412,11 +413,13 @@ int unit_run(struct block_list *bl) return 0; } - to_x = bl->x; - to_y = bl->y; + lv = sc->data[SC_RUN]->val1; dir_x = dirx[sc->data[SC_RUN]->val2]; dir_y = diry[sc->data[SC_RUN]->val2]; + // determine destination cell + to_x = bl->x; + to_y = bl->y; for(i=0;im,to_x+dir_x,to_y+dir_y,CELL_CHKPASS)) @@ -429,7 +432,7 @@ int unit_run(struct block_list *bl) //If you can't run forward, you must be next to a wall, so bounce back. [Skotlex] clif_status_change(bl, SI_BUMP, 1); status_change_end(bl,SC_RUN,-1); - skill_blown(bl,bl,skill_get_blewcount(TK_RUN,sc->data[SC_RUN]->val1),unit_getdir(bl),0); + skill_blown(bl,bl,skill_get_blewcount(TK_RUN,lv),unit_getdir(bl),0); clif_fixpos(bl); //Why is a clif_slide (skill_blown) AND a fixpos needed? Ask Aegis. clif_status_change(bl, SI_BUMP, 0); return 0; @@ -445,7 +448,7 @@ int unit_run(struct block_list *bl) // copy-paste from above clif_status_change(bl, SI_BUMP, 1); status_change_end(bl,SC_RUN,-1); - skill_blown(bl,bl,skill_get_blewcount(TK_RUN,sc->data[SC_RUN]->val1),unit_getdir(bl),0); + skill_blown(bl,bl,skill_get_blewcount(TK_RUN,lv),unit_getdir(bl),0); clif_fixpos(bl); clif_status_change(bl, SI_BUMP, 0); return 0; -- cgit v1.2.3-60-g2f50