diff options
author | Andrei Karas <akaras@inbox.ru> | 2020-05-11 01:45:30 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2020-06-01 01:08:50 +0300 |
commit | 0a01e23a2a37d86281d01a8638017e6e8b35d6c8 (patch) | |
tree | 4ec534b0e776fe2d9a10569bd84855661b2570b1 /src/map | |
parent | e5a2fa215dbe6fd329efd3ce5f2cc2f5724973d6 (diff) | |
download | hercules-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')
-rw-r--r-- | src/map/achievement.c | 4 |
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); } |