aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2012-03-20 01:06:44 +0200
committerPerttu Ahola <celeron55@gmail.com>2012-03-20 01:07:02 +0200
commit50621ffe851223fb791d4ba47959585154d59d3f (patch)
treeecc29be7eda6b6a1aa6bf0e85fcf8b3c574979db
parentdb4911f9565cae6d982e5fac2627fe45048fab8f (diff)
downloadminetest-50621ffe851223fb791d4ba47959585154d59d3f.tar.gz
minetest-50621ffe851223fb791d4ba47959585154d59d3f.tar.bz2
minetest-50621ffe851223fb791d4ba47959585154d59d3f.zip
Fix mod paths
-rw-r--r--src/server.cpp22
-rw-r--r--src/subgame.cpp12
-rw-r--r--src/subgame.h6
3 files changed, 17 insertions, 23 deletions
diff --git a/src/server.cpp b/src/server.cpp
index b95d04713..87d43dc69 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -885,25 +885,13 @@ Server::Server(
infostream<<"- world: "<<m_path_world<<std::endl;
infostream<<"- config: "<<m_path_config<<std::endl;
infostream<<"- game: "<<m_gamespec.path<<std::endl;
- for(std::set<std::string>::const_iterator i = m_gamespec.addon_paths.begin();
- i != m_gamespec.addon_paths.end(); i++)
- infostream<<"- addons: "<<(*i)<<std::endl;
- // Path to builtin.lua
- std::string builtinpath = porting::path_share + DIR_DELIM + "builtin"
- + DIR_DELIM + "builtin.lua";
-
- // Add default global mod search path
- m_modspaths.push_front(m_gamespec.path + DIR_DELIM "mods");
// Add world mod search path
m_modspaths.push_front(m_path_world + DIR_DELIM + "worldmods");
// Add addon mod search path
- for(std::set<std::string>::const_iterator i = m_gamespec.addon_paths.begin();
- i != m_gamespec.addon_paths.end(); i++)
- m_modspaths.push_front((*i) + DIR_DELIM + "mods");
- // Add simple user mod search path
- m_modspaths.push_front(porting::path_user + DIR_DELIM + "mods"
- + DIR_DELIM + m_gamespec.id);
+ for(std::set<std::string>::const_iterator i = m_gamespec.mods_paths.begin();
+ i != m_gamespec.mods_paths.end(); i++)
+ m_modspaths.push_front((*i));
// Print out mod search paths
for(core::list<std::string>::Iterator i = m_modspaths.begin();
@@ -912,6 +900,10 @@ Server::Server(
infostream<<"- mods: "<<modspath<<std::endl;
}
+ // Path to builtin.lua
+ std::string builtinpath = porting::path_share + DIR_DELIM + "builtin"
+ + DIR_DELIM + "builtin.lua";
+
// Create world if it doesn't exist
if(!initializeWorld(m_path_world, m_gamespec.id))
throw ServerError("Failed to initialize world");
diff --git a/src/subgame.cpp b/src/subgame.cpp
index e55f1bc97..3d4480ebf 100644
--- a/src/subgame.cpp
+++ b/src/subgame.cpp
@@ -38,14 +38,16 @@ SubgameSpec findSubgame(const std::string &id)
}
if(!fs::PathExists(game_path))
return SubgameSpec();
- // Find addon directories
- std::set<std::string> addon_paths;
+ // Find mod directories
+ std::set<std::string> mods_paths;
+ mods_paths.insert(game_path + DIR_DELIM + "mods");
if(!user_game)
- addon_paths.insert(share + DIR_DELIM + "addons" + DIR_DELIM + id);
- addon_paths.insert(user + DIR_DELIM + "addons" + DIR_DELIM + id);
+ mods_paths.insert(share + DIR_DELIM + "mods" + DIR_DELIM + id);
+ if(user != share || user_game)
+ mods_paths.insert(user + DIR_DELIM + "mods" + DIR_DELIM + id);
// TODO: Read proper name from game_path/game.conf
std::string game_name = id;
- return SubgameSpec(id, game_path, addon_paths, game_name);
+ return SubgameSpec(id, game_path, mods_paths, game_name);
}
std::set<std::string> getAvailableGameIds()
diff --git a/src/subgame.h b/src/subgame.h
index b201a7402..061bb4180 100644
--- a/src/subgame.h
+++ b/src/subgame.h
@@ -28,16 +28,16 @@ struct SubgameSpec
{
std::string id; // "" = game does not exist
std::string path;
- std::set<std::string> addon_paths;
+ std::set<std::string> mods_paths;
std::string name;
SubgameSpec(const std::string &id_="",
const std::string &path_="",
- const std::set<std::string> &addon_paths_=std::set<std::string>(),
+ const std::set<std::string> &mods_paths_=std::set<std::string>(),
const std::string &name_=""):
id(id_),
path(path_),
- addon_paths(addon_paths_),
+ mods_paths(mods_paths_),
name(name_)
{}