LCOV - code coverage report
Current view: top level - src - subgame.h (source / functions) Hit Total Coverage
Test: report Lines: 12 12 100.0 %
Date: 2015-07-11 18:23:49 Functions: 9 10 90.0 %

          Line data    Source code
       1             : /*
       2             : Minetest
       3             : Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
       4             : 
       5             : This program is free software; you can redistribute it and/or modify
       6             : it under the terms of the GNU Lesser General Public License as published by
       7             : the Free Software Foundation; either version 2.1 of the License, or
       8             : (at your option) any later version.
       9             : 
      10             : This program is distributed in the hope that it will be useful,
      11             : but WITHOUT ANY WARRANTY; without even the implied warranty of
      12             : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13             : GNU Lesser General Public License for more details.
      14             : 
      15             : You should have received a copy of the GNU Lesser General Public License along
      16             : with this program; if not, write to the Free Software Foundation, Inc.,
      17             : 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
      18             : */
      19             : 
      20             : #ifndef SUBGAME_HEADER
      21             : #define SUBGAME_HEADER
      22             : 
      23             : #include <string>
      24             : #include <set>
      25             : #include <vector>
      26             : 
      27             : class Settings;
      28             : 
      29             : #define WORLDNAME_BLACKLISTED_CHARS "/\\"
      30             : 
      31          15 : struct SubgameSpec
      32             : {
      33             :         std::string id; // "" = game does not exist
      34             :         std::string path; // path to game
      35             :         std::string gamemods_path; //path to mods of the game
      36             :         std::set<std::string> addon_mods_paths; //paths to addon mods for this game
      37             :         std::string name;
      38             :         std::string menuicon_path;
      39             : 
      40           7 :         SubgameSpec(const std::string &id_="",
      41             :                         const std::string &path_="",      
      42             :                         const std::string &gamemods_path_="",
      43             :                         const std::set<std::string> &addon_mods_paths_=std::set<std::string>(),
      44             :                         const std::string &name_="",
      45             :                         const std::string &menuicon_path_=""):
      46             :                 id(id_),
      47             :                 path(path_),
      48             :                 gamemods_path(gamemods_path_),          
      49             :                 addon_mods_paths(addon_mods_paths_),
      50             :                 name(name_),
      51           7 :                 menuicon_path(menuicon_path_)
      52           7 :         {}
      53             : 
      54           2 :         bool isValid() const
      55             :         {
      56           2 :                 return (id != "" && path != "");
      57             :         }
      58             : };
      59             : 
      60             : // minetest.conf
      61             : bool getGameMinetestConfig(const std::string &game_path, Settings &conf);
      62             : // game.conf
      63             : bool getGameConfig(const std::string &game_path, Settings &conf);
      64             : 
      65             : std::string getGameName(const std::string &game_path);
      66             : 
      67             : SubgameSpec findSubgame(const std::string &id);
      68             : SubgameSpec findWorldSubgame(const std::string &world_path);
      69             : 
      70             : std::set<std::string> getAvailableGameIds();
      71             : std::vector<SubgameSpec> getAvailableGames();
      72             : 
      73             : bool getWorldExists(const std::string &world_path);
      74             : std::string getWorldGameId(const std::string &world_path,
      75             :                 bool can_be_legacy=false);
      76             : 
      77          10 : struct WorldSpec
      78             : {
      79             :         std::string path;
      80             :         std::string name;
      81             :         std::string gameid;
      82             : 
      83           4 :         WorldSpec(
      84             :                 const std::string &path_="",
      85             :                 const std::string &name_="",
      86             :                 const std::string &gameid_=""
      87             :         ):
      88             :                 path(path_),
      89             :                 name(name_),
      90           4 :                 gameid(gameid_)
      91           4 :         {}
      92             : 
      93           3 :         bool isValid() const
      94             :         {
      95           3 :                 return (name != "" && path != "" && gameid != "");
      96             :         }
      97             : };
      98             : 
      99             : std::vector<WorldSpec> getAvailableWorlds();
     100             : 
     101             : // loads the subgame's config and creates world directory
     102             : // and world.mt if they don't exist
     103             : bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamespec);
     104             : 
     105             : #endif
     106             : 

Generated by: LCOV version 1.11