diff --git a/config.ini b/config.ini index 8e9e26a8..6ea0a843 100644 --- a/config.ini +++ b/config.ini @@ -47,6 +47,13 @@ motd=Welcome to OpenFusion! # requires to run. You can override them by changing their values and # uncommenting them (removing the leading # character from that line). +# Should drop fixes be enabled? +# This will add drops to (mostly Academy-specific) mobs that don't have drops +# and rearrange drop tables that are either unassigned or stranded in difficult to reach mobs +# e.g. Hyper Fusionfly and Fusion Numbuh Four drops will become more accessible. +# This is a polish option that is slightly inauthentic to the original game. +#dropfixesenabled=true + # location of the tabledata folder #tdatadir=tdata/ # location of the patch folder diff --git a/src/settings.cpp b/src/settings.cpp index cf542428..1c505a32 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -74,6 +74,9 @@ int settings::EVENTMODE = 0; // race settings bool settings::IZRACESCORECAPPED = true; +// drop fixes enabled +bool settings::DROPFIXESENABLED = false; + void settings::init() { INIReader reader("config.ini"); @@ -117,6 +120,7 @@ void settings::init() { TDATADIR = reader.Get("shard", "tdatadir", TDATADIR); PATCHDIR = reader.Get("shard", "patchdir", PATCHDIR); ENABLEDPATCHES = reader.Get("shard", "enabledpatches", ENABLEDPATCHES); + DROPFIXESENABLED = reader.GetBoolean("shard", "dropfixesenabled", DROPFIXESENABLED); ACCLEVEL = reader.GetInteger("shard", "accountlevel", ACCLEVEL); EVENTMODE = reader.GetInteger("shard", "eventmode", EVENTMODE); DISABLEFIRSTUSEFLAG = reader.GetBoolean("shard", "disablefirstuseflag", DISABLEFIRSTUSEFLAG); @@ -126,4 +130,16 @@ void settings::init() { MONITORPORT = reader.GetInteger("monitor", "port", MONITORPORT); MONITORLISTENIP = reader.Get("monitor", "listenip", MONITORLISTENIP); MONITORINTERVAL = reader.GetInteger("monitor", "interval", MONITORINTERVAL); + + if (DROPFIXESENABLED) { + std::cout << "[INFO] Drop fixes enabled" << std::endl; + if (ENABLEDPATCHES.empty()) { + ENABLEDPATCHES = "0104-fixes"; + } else { + ENABLEDPATCHES += " 0104-fixes"; + if (ENABLEDPATCHES.find("1013") != std::string::npos) { + ENABLEDPATCHES += " 1013-fixes"; + } + } + } } diff --git a/src/settings.hpp b/src/settings.hpp index affe045b..d74c54df 100644 --- a/src/settings.hpp +++ b/src/settings.hpp @@ -45,6 +45,7 @@ namespace settings { extern int MONITORINTERVAL; extern bool DISABLEFIRSTUSEFLAG; extern bool IZRACESCORECAPPED; + extern bool DROPFIXESENABLED; void init(); }