/*! * \file include/OpenRaider.h * \brief Main Game Object * * \author xythobuz */ #ifndef _OPENRAIDER_H_ #define _OPENRAIDER_H_ #include #include "global.h" #include "Console.h" #include "Game.h" #include "Menu.h" #include "Sound.h" #include "Window.h" /*! * \brief Main Game Singleton */ class OpenRaider { public: /*! * \brief Constructs an object of OpenRaider */ OpenRaider(); /*! * \brief Deconstructs an object of OpenRaider */ ~OpenRaider(); /*! * \brief Load the configuration file * \returns 0 on success */ int loadConfig(const char *config); int command(const char *command); int initialize(); void run(); void handleKeyboard(KeyboardButton key, bool pressed); void handleText(char *text, bool notFinished); void handleMouseClick(unsigned int x, unsigned int y, KeyboardButton button, bool released); void handleMouseMotion(int xrel, int yrel); void handleMouseScroll(int xrel, int yrel); Window *mWindow; Sound *mSound; Menu *mMenu; Console *mConsole; Game *mGame; bool mMapListFilled; std::vector mMapList; float mCameraRotationDeltaX; float mCameraRotationDeltaY; char *mBaseDir; char *mPakDir; char *mAudioDir; char *mDataDir; private: int command(const char *command, std::vector *args); char *expandDirectoryNames(const char *s); int help(const char *cmd); int set(const char *var, const char *value); int bind(const char *action, const char *key); int bind(ActionEvents action, const char *key); void loadPakFolderRecursive(const char *dir); void fillMapList(); bool mInit; bool mRunning; KeyboardButton keyBindings[ActionEventCount]; }; #endif