summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/content/content.cpp8
-rw-r--r--src/content/mods.cpp12
2 files changed, 15 insertions, 5 deletions
diff --git a/src/content/content.cpp b/src/content/content.cpp
index d7a2c9652..66ef83d42 100644
--- a/src/content/content.cpp
+++ b/src/content/content.cpp
@@ -41,6 +41,12 @@ ContentType getContentType(const ContentSpec &spec)
return ECT_MODPACK;
}
+ std::ifstream modpack2_is((spec.path + DIR_DELIM + "modpack.conf").c_str());
+ if (modpack2_is.good()) {
+ modpack2_is.close();
+ return ECT_MODPACK;
+ }
+
std::ifstream init_is((spec.path + DIR_DELIM + "init.lua").c_str());
if (init_is.good()) {
init_is.close();
@@ -73,7 +79,7 @@ void parseContentInfo(ContentSpec &spec)
break;
case ECT_MODPACK:
spec.type = "modpack";
- conf_path = spec.path + DIR_DELIM + "mod.conf";
+ conf_path = spec.path + DIR_DELIM + "modpack.conf";
break;
case ECT_GAME:
spec.type = "game";
diff --git a/src/content/mods.cpp b/src/content/mods.cpp
index a3e706760..3cb168e19 100644
--- a/src/content/mods.cpp
+++ b/src/content/mods.cpp
@@ -66,12 +66,16 @@ void parseModContents(ModSpec &spec)
// Handle modpacks (defined by containing modpack.txt)
std::ifstream modpack_is((spec.path + DIR_DELIM + "modpack.txt").c_str());
- if (modpack_is.good()) { // a modpack, recursively get the mods in it
- modpack_is.close(); // We don't actually need the file
+ std::ifstream modpack2_is((spec.path + DIR_DELIM + "modpack.conf").c_str());
+ if (modpack_is.good() || modpack2_is.good()) {
+ if (modpack_is.good())
+ modpack_is.close();
+
+ if (modpack2_is.good())
+ modpack2_is.close();
+
spec.is_modpack = true;
spec.modpack_content = getModsInPath(spec.path, true);
- // modpacks have no dependencies; they are defined and
- // tracked separately for each mod in the modpack
} else {
// Attempt to load dependencies from mod.conf