Follow up to 8310253
Achievement code now matches the Quest code. Fixed a few small typos and removed some leftovers by @aleos89 Thanks to @CairoLee and @Tokeiburu
This commit is contained in:
parent
71421a4268
commit
4a28c8c1b0
@ -134,9 +134,9 @@ bool achievement_remove(struct map_session_data *sd, int achievement_id)
|
||||
if (i != sd->achievement_data.count - 1)
|
||||
memmove(&sd->achievement_data.achievements[i], &sd->achievement_data.achievements[i + 1], sizeof(struct achievement) * (sd->achievement_data.count - 1 - i));
|
||||
|
||||
aFree(&sd->achievement_data.achievements[sd->achievement_data.count-1]);
|
||||
sd->achievement_data.count--;
|
||||
if( sd->achievement_data.count == 0 ){
|
||||
aFree(sd->achievement_data.achievements);
|
||||
sd->achievement_data.achievements = NULL;
|
||||
}else{
|
||||
RECREATE(sd->achievement_data.achievements, struct achievement, sd->achievement_data.count);
|
||||
@ -212,7 +212,7 @@ static int achievement_check_groups(DBKey key, DBData *data, va_list ap)
|
||||
return 0;
|
||||
|
||||
ARR_FIND(0, sd->achievement_data.count, i, sd->achievement_data.achievements[i].achievement_id == ad->achievement_id);
|
||||
if (i == sd->achievement_data.count) { // Achievment isn't in player's log
|
||||
if (i == sd->achievement_data.count) { // Achievement isn't in player's log
|
||||
if (achievement_check_dependent(sd, ad->achievement_id) == true) {
|
||||
achievement_add(sd, ad->achievement_id);
|
||||
achievement_update_achievement(sd, ad->achievement_id, true);
|
||||
@ -496,8 +496,9 @@ int *achievement_level(struct map_session_data *sd, bool flag)
|
||||
if (flag == true && old_level != sd->achievement_data.level) {
|
||||
int achievement_id = 240000 + sd->achievement_data.level;
|
||||
|
||||
achievement_add(sd, achievement_id);
|
||||
achievement_update_achievement(sd, achievement_id, true);
|
||||
if( achievement_add(sd, achievement_id) ){
|
||||
achievement_update_achievement(sd, achievement_id, true);
|
||||
}
|
||||
}
|
||||
|
||||
return info;
|
||||
@ -533,7 +534,7 @@ static int achievement_update_objectives(DBKey key, DBData *data, va_list ap)
|
||||
memset(objective_count, 0, sizeof(objective_count)); // Current objectives count
|
||||
|
||||
ARR_FIND(0, sd->achievement_data.count, i, sd->achievement_data.achievements[i].achievement_id == ad->achievement_id);
|
||||
if (i == sd->achievement_data.count) { // Achievment isn't in player's log
|
||||
if (i == sd->achievement_data.count) { // Achievement isn't in player's log
|
||||
if (achievement_check_dependent(sd, ad->achievement_id) == false) // Check to see if dependents are complete before adding to player's log
|
||||
return 0;
|
||||
isNew = true;
|
||||
|
@ -99,8 +99,6 @@ struct achievement_db {
|
||||
|
||||
struct map_session_data;
|
||||
struct block_list;
|
||||
struct config_setting_t;
|
||||
enum _sp;
|
||||
|
||||
struct achievement_db achievement_dummy; ///< Dummy entry for invalid achievement lookups
|
||||
|
||||
|
@ -23392,7 +23392,6 @@ BUILDIN_FUNC(achievementcomplete) {
|
||||
script_pushint(st, false);
|
||||
return SCRIPT_CMD_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
if( !sd->state.pc_loaded ){
|
||||
if( !running_npc_stat_calc_event ){
|
||||
|
Loading…
x
Reference in New Issue
Block a user