diff options
author | Jürgen Doser <jurgen.doser@gmail.com> | 2013-01-22 17:06:25 +0100 |
---|---|---|
committer | Jürgen Doser <jurgen.doser@gmail.com> | 2013-01-22 19:05:28 +0100 |
commit | 26a0efae2359334eb418f91bf85c0eae9db45646 (patch) | |
tree | fb9d2b3a3a0ad6ba6ed2d0edb468a1cb3d876e3f /src/mods.cpp | |
parent | e237c1d07d4a257329ba4db1631f40054510d445 (diff) | |
download | hax-minetest-server-26a0efae2359334eb418f91bf85c0eae9db45646.tar.gz hax-minetest-server-26a0efae2359334eb418f91bf85c0eae9db45646.zip |
Improve behaviour for empty modpacks and when no mods at all are installed:
Only show enable all / disable all buttons for all add-ons when at
least one add-on is installed. When no add-on ist installed, don't
show any buttons or checkboxes.
Added is_modpack flag to ModSpec to distinguish empty modpacks from
normal mods and check this flag in mod selection gui so that empty
modpacks are not treated like mods that can be enabled or disabled.
Diffstat (limited to 'src/mods.cpp')
-rw-r--r-- | src/mods.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mods.cpp b/src/mods.cpp index 9e3c7d5d7..f6e3d58d7 100644 --- a/src/mods.cpp +++ b/src/mods.cpp @@ -46,6 +46,7 @@ std::map<std::string, ModSpec> getModsInPath(std::string path) modpack_is.close(); // We don't actually need the file ModSpec spec(modname,modpath); spec.modpack_content = getModsInPath(modpath); + spec.is_modpack = true; result.insert(std::make_pair(modname,spec)); } else // not a modpack, add the modspec @@ -76,7 +77,7 @@ std::map<std::string, ModSpec> flattenModTree(std::map<std::string, ModSpec> mod it != mods.end(); ++it) { ModSpec mod = (*it).second; - if(!mod.modpack_content.empty()) //is a modpack + if(mod.is_modpack) { std::map<std::string, ModSpec> content = flattenModTree(mod.modpack_content); @@ -98,7 +99,7 @@ std::vector<ModSpec> flattenMods(std::map<std::string, ModSpec> mods) it != mods.end(); ++it) { ModSpec mod = (*it).second; - if(!mod.modpack_content.empty()) //is a modpack + if(mod.is_modpack) { std::vector<ModSpec> content = flattenMods(mod.modpack_content); result.reserve(result.size() + content.size()); |