From 9f3e6d6b0350a2f8f7e1f47c85919801e25d3401 Mon Sep 17 00:00:00 2001 From: ultramage Date: Sun, 10 Feb 2008 22:40:50 +0000 Subject: Fixed Warp Portal code sometimes producing errors/crashes in the case where a priest enters his/her own warp (bugreport:270) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12189 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 3 +++ src/map/skill.c | 16 +++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 361c58a9d..a8af3df96 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,9 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2008/02/10 + * Fixed Warp Portal code sometimes producing errors/crashes in the case + where a priest enters his/her own warp (bugreport:270) 2008/02/08 * Fixed wrong message in item group loading code (bugreport:936) * Fixed 'charisalpha' not working for the first char (bugreport:940) diff --git a/src/map/skill.c b/src/map/skill.c index 064b6d2d5..b42bb13cc 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6530,11 +6530,17 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned if(bl->type==BL_PC){ struct map_session_data *sd = (struct map_session_data *)bl; if((!sd->chatID || battle_config.chat_warpportal) - && sd->ud.to_x == src->bl.x && sd->ud.to_y == src->bl.y) { - if (pc_setpos(sd,sg->val3,sg->val2>>16,sg->val2&0xffff,3) == 0) { - if (--sg->val1<=0) - skill_delunitgroup(NULL, sg); - } + && sd->ud.to_x == src->bl.x && sd->ud.to_y == src->bl.y) + { + int x = sg->val2>>16; + int y = sg->val2&0xffff; + unsigned short m = sg->val3; + + if( --sg->val1 <= 0 ) + skill_delunitgroup(NULL, sg); + + pc_setpos(sd,m,x,y,3); + sg = src->group; // avoid dangling pointer (pc_setpos can cause deletion of 'sg') } } else if(bl->type == BL_MOB && battle_config.mob_warp&2) -- cgit v1.2.3-70-g09d2