summaryrefslogtreecommitdiff
path: root/src/mods.cpp
diff options
context:
space:
mode:
authorJürgen Doser <jurgen.doser@gmail.com>2013-01-22 17:06:25 +0100
committerJürgen Doser <jurgen.doser@gmail.com>2013-01-22 19:05:28 +0100
commit26a0efae2359334eb418f91bf85c0eae9db45646 (patch)
treefb9d2b3a3a0ad6ba6ed2d0edb468a1cb3d876e3f /src/mods.cpp
parente237c1d07d4a257329ba4db1631f40054510d445 (diff)
downloadminetest-26a0efae2359334eb418f91bf85c0eae9db45646.tar.gz
minetest-26a0efae2359334eb418f91bf85c0eae9db45646.tar.bz2
minetest-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.cpp5
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());