summaryrefslogtreecommitdiff
path: root/src/map/chrif.cpp
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2014-11-04 22:28:16 -0800
committerBen Longbons <b.r.longbons@gmail.com>2014-11-04 22:28:16 -0800
commit0bc322efc087ab0c7b53709e5e20ac76aee761de (patch)
treec656fb93447bc7268920f020c8459c7392abce6d /src/map/chrif.cpp
parentad98bbcff7d6385dbcc4b2c7d393c7f16420ebdd (diff)
downloadtmwa-0bc322efc087ab0c7b53709e5e20ac76aee761de.tar.gz
tmwa-0bc322efc087ab0c7b53709e5e20ac76aee761de.tar.bz2
tmwa-0bc322efc087ab0c7b53709e5e20ac76aee761de.tar.xz
tmwa-0bc322efc087ab0c7b53709e5e20ac76aee761de.zip
Perform divorces asynchronously to avoid crashes
Diffstat (limited to 'src/map/chrif.cpp')
-rw-r--r--src/map/chrif.cpp11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/map/chrif.cpp b/src/map/chrif.cpp
index 09c238c..dbdd401 100644
--- a/src/map/chrif.cpp
+++ b/src/map/chrif.cpp
@@ -751,18 +751,13 @@ int chrif_divorce(CharId char_id, CharId partner_id)
if (sd && sd->status.partner_id == partner_id)
{
sd->status.partner_id = CharId();
-
- if (sd->npc_flags.divorce)
- {
- sd->npc_flags.divorce = 0;
- map_scriptcont(sd, sd->npc_id);
- }
}
sd = map_nick2sd(map_charid2nick(partner_id));
- nullpo_retz(sd);
- if (sd->status.partner_id == char_id)
+ if (sd && sd->status.partner_id == char_id)
+ {
sd->status.partner_id = CharId();
+ }
return 0;
}