diff options
author | Perttu Ahola <celeron55@gmail.com> | 2012-03-20 01:06:44 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-03-20 01:07:02 +0200 |
commit | 50621ffe851223fb791d4ba47959585154d59d3f (patch) | |
tree | ecc29be7eda6b6a1aa6bf0e85fcf8b3c574979db | |
parent | db4911f9565cae6d982e5fac2627fe45048fab8f (diff) | |
download | minetest-50621ffe851223fb791d4ba47959585154d59d3f.tar.gz minetest-50621ffe851223fb791d4ba47959585154d59d3f.tar.bz2 minetest-50621ffe851223fb791d4ba47959585154d59d3f.zip |
Fix mod paths
-rw-r--r-- | src/server.cpp | 22 | ||||
-rw-r--r-- | src/subgame.cpp | 12 | ||||
-rw-r--r-- | src/subgame.h | 6 |
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_) {} |