summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDastgir <dastgirp@gmail.com>2018-08-07 18:58:55 +0530
committerHaru <haru@dotalux.com>2019-04-07 18:01:52 +0200
commitcd32aea9bdd0addf1dbd96cf1cdeb3c798d93e34 (patch)
tree9081fe065493187c30cf03e36eb1c19e26ca22b9
parente1e951c805916853e55ff5b9ce0531e0cf483ebf (diff)
downloadhercules-cd32aea9bdd0addf1dbd96cf1cdeb3c798d93e34.tar.gz
hercules-cd32aea9bdd0addf1dbd96cf1cdeb3c798d93e34.tar.bz2
hercules-cd32aea9bdd0addf1dbd96cf1cdeb3c798d93e34.tar.xz
hercules-cd32aea9bdd0addf1dbd96cf1cdeb3c798d93e34.zip
Added configuration to enable/disable achievement system
-rw-r--r--conf/map/battle/feature.conf5
-rw-r--r--src/map/achievement.c6
-rw-r--r--src/map/battle.c1
-rw-r--r--src/map/battle.h2
4 files changed, 14 insertions, 0 deletions
diff --git a/conf/map/battle/feature.conf b/conf/map/battle/feature.conf
index 1ed94b2a4..c306dd97b 100644
--- a/conf/map/battle/feature.conf
+++ b/conf/map/battle/feature.conf
@@ -83,4 +83,9 @@ features: {
// Attendance End time in the format YearMonthDay
feature_attendance_endtime: 20180331
+
+ // Enable Achievement System
+ // true: enable (Default)
+ // false: disable
+ enable_achievement_system: true
}
diff --git a/src/map/achievement.c b/src/map/achievement.c
index 057ea29c3..7ab80e183 100644
--- a/src/map/achievement.c
+++ b/src/map/achievement.c
@@ -301,6 +301,9 @@ static int achievement_validate_type(struct map_session_data *sd, enum achieveme
Assert_ret(criteria->goal != 0);
+ if (battle_config.feature_enable_achievement == 0)
+ return 0;
+
if (type == ACH_QUEST) {
ShowError("achievement_validate_type: ACH_QUEST is not handled by this function. (use achievement_validate())\n");
return 0;
@@ -358,6 +361,9 @@ static bool achievement_validate(struct map_session_data *sd, int aid, unsigned
Assert_retr(false, progress > 0);
Assert_retr(false, obj_idx < MAX_ACHIEVEMENT_OBJECTIVES);
+ if (battle_config.feature_enable_achievement == 0)
+ return false;
+
if ((ad = achievement->get(aid)) == NULL) {
ShowError("achievement_validate: Invalid Achievement %d provided.", aid);
return false;
diff --git a/src/map/battle.c b/src/map/battle.c
index 1b7bf909e..798f50b13 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -7414,6 +7414,7 @@ static const struct battle_data {
{ "min_item_sell_price", &battle_config.min_item_sell_price, 0, 0, INT_MAX, },
{ "display_fake_hp_when_dead", &battle_config.display_fake_hp_when_dead, 1, 0, 1, },
{ "magicrod_type", &battle_config.magicrod_type, 0, 0, 1, },
+ { "features/enable_achievement_system", &battle_config.feature_enable_achievement, 1, 0, 1, },
};
static bool battle_set_value_sub(int index, int value)
diff --git a/src/map/battle.h b/src/map/battle.h
index c797e665a..7e03f0a8e 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -578,6 +578,8 @@ struct Battle_Config {
int display_fake_hp_when_dead;
int magicrod_type;
+
+ int feature_enable_achievement;
};
/* criteria for battle_config.idletime_critera */