51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef SUBGAME_HEADER
-#define SUBGAME_HEADER
+#pragma once
#include <string>
#include <set>
#include <vector>
-#define WORLDNAME_BLACKLISTED_CHARS "/\\"
+class Settings;
struct SubgameSpec
{
std::string gamemods_path; //path to mods of the game
std::set<std::string> addon_mods_paths; //paths to addon mods for this game
std::string name;
-
- SubgameSpec(const std::string &id_="",
- const std::string &path_="",
- const std::string &gamemods_path_="",
- const std::set<std::string> &addon_mods_paths_=std::set<std::string>(),
- const std::string &name_=""):
+ std::string menuicon_path;
+
+ SubgameSpec(const std::string &id_ = "",
+ const std::string &path_ = "",
+ const std::string &gamemods_path_ = "",
+ const std::set<std::string> &addon_mods_paths_ = std::set<std::string>(),
+ const std::string &name_ = "",
+ const std::string &menuicon_path_ = ""):
id(id_),
path(path_),
- gamemods_path(gamemods_path_),
+ gamemods_path(gamemods_path_),
addon_mods_paths(addon_mods_paths_),
- name(name_)
+ name(name_),
+ menuicon_path(menuicon_path_)
{}
bool isValid() const
}
};
+// minetest.conf
+bool getGameMinetestConfig(const std::string &game_path, Settings &conf);
+// game.conf
+bool getGameConfig(const std::string &game_path, Settings &conf);
+
std::string getGameName(const std::string &game_path);
SubgameSpec findSubgame(const std::string &id);
std::vector<WorldSpec> getAvailableWorlds();
-// Create world directory and world.mt if they don't exist
-bool initializeWorld(const std::string &path, const std::string &gameid);
-
-#endif
-
+// loads the subgame's config and creates world directory
+// and world.mt if they don't exist
+bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamespec);