summaryrefslogtreecommitdiff
path: root/src/map/achievement.c
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2020-05-11 01:45:30 +0300
committerAndrei Karas <akaras@inbox.ru>2020-06-01 01:08:50 +0300
commit0a01e23a2a37d86281d01a8638017e6e8b35d6c8 (patch)
tree4ec534b0e776fe2d9a10569bd84855661b2570b1 /src/map/achievement.c
parente5a2fa215dbe6fd329efd3ce5f2cc2f5724973d6 (diff)
downloadhercules-0a01e23a2a37d86281d01a8638017e6e8b35d6c8.tar.gz
hercules-0a01e23a2a37d86281d01a8638017e6e8b35d6c8.tar.bz2
hercules-0a01e23a2a37d86281d01a8638017e6e8b35d6c8.tar.xz
hercules-0a01e23a2a37d86281d01a8638017e6e8b35d6c8.zip
Fix crash in achievement progress update
Diffstat (limited to 'src/map/achievement.c')
-rw-r--r--src/map/achievement.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/map/achievement.c b/src/map/achievement.c
index e6a9ae3be..0b0d9749b 100644
--- a/src/map/achievement.c
+++ b/src/map/achievement.c
@@ -194,6 +194,8 @@ static void achievement_progress_add(struct map_session_data *sd, const struct a
// Check if the Achievement is complete.
if (achievement->check_complete(sd, ad)) {
achievement->validate_achieve(sd, ad->id);
+ if ((ach = achievement->ensure(sd, ad)) == NULL)
+ return;
ach->completed_at = time(NULL);
}
@@ -232,6 +234,8 @@ static void achievement_progress_set(struct map_session_data *sd, const struct a
if (achievement->check_complete(sd, ad)) {
achievement->validate_achieve(sd, ad->id);
+ if ((ach = achievement->ensure(sd, ad)) == NULL)
+ return;
ach->completed_at = time(NULL);
}