#define SUPERTUX_SETUP_H
#include <vector>
+#include <set>
#include <string>
-#include "../gui/menu.h"
-#include "../special/base.h"
namespace SuperTux {
/// File system utility functions
struct FileSystem
{
- static int faccessible(const char *filename);
- static int fcreatedir(const char* relative_dir);
- static int fwriteable(const char *filename);
- static std::vector<std::string> read_directory(const std::string& pathname);
- static string_list_type dsubdirs(const char *rel_path, const char* expected_file);
- static string_list_type dfiles(const char *rel_path, const char* glob, const char* exception_str);
+ static bool faccessible(const std::string& filename);
+ static bool fcreatedir(const std::string& relative_dir);
+ static bool fwriteable(const std::string& filename);
+ static std::set<std::string> read_directory(const std::string& pathname);
+ static std::set<std::string> dsubdirs(const std::string& rel_path, const std::string& expected_file);
+ static std::set<std::string> dfiles(const std::string& rel_path, const std::string& glob, const std::string& exception_str);
+
+ static std::string dirname(const std::string& filename);
};
/// All you need to get an application up and running
struct Setup
{
- static void info(const std::string& _package_name, const std::string& _package_symbol_name, const std::string& _package_version);
+ static void init(const std::string& _package_name, const std::string& _package_symbol_name, const std::string& _package_version);
static void directories(void);
static void general(void);
static void general_free();
- static void video_sdl(unsigned int screen_w, unsigned int screen_h);
- static void video_gl(unsigned int screen_w, unsigned int screen_h);
static void video(unsigned int screen_w, unsigned int screen_h);
static void audio(void);
static void joystick(void);
static void parseargs(int argc, char * argv[]);
+
+ private:
+ static void video_sdl(unsigned int screen_w, unsigned int screen_h);
+ static void video_gl(unsigned int screen_w, unsigned int screen_h);
};
/// Termination handling