[CSM] Don't Load the package library (#6944)
[oweals/minetest.git] / src / client / clientlauncher.h
index 09f8c039a1817be1245eac4173a108a485b6728f..2702895d692186a2e4001eb6604a76b8e90746d0 100644 (file)
@@ -17,72 +17,18 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
-#ifndef __CLIENT_LAUNCHER_H__
-#define __CLIENT_LAUNCHER_H__
+#pragma once
 
 #include "irrlichttypes_extrabloated.h"
 #include "client/inputhandler.h"
 #include "gameparams.h"
 
-// A small helper class
-class TimeGetter
-{
-public:
-       virtual u32 getTime(TimePrecision prec) = 0;
-};
-
-// A precise irrlicht one
-class IrrlichtTimeGetter: public TimeGetter
-{
-public:
-       IrrlichtTimeGetter(IrrlichtDevice *device):
-               m_device(device)
-       {}
-       u32 getTime(TimePrecision prec)
-       {
-               if (prec == PRECISION_MILLI) {
-                       if (m_device == NULL)
-                               return 0;
-                       return m_device->getTimer()->getRealTime();
-               } else {
-                       return porting::getTime(prec);
-               }
-       }
-private:
-       IrrlichtDevice *m_device;
-};
-// Not so precise one which works without irrlicht
-class SimpleTimeGetter: public TimeGetter
-{
-public:
-       u32 getTime(TimePrecision prec)
-       {
-               return porting::getTime(prec);
-       }
-};
+class RenderingEngine;
 
 class ClientLauncher
 {
 public:
-       ClientLauncher() :
-               list_video_modes(false),
-               skip_main_menu(false),
-               use_freetype(false),
-               random_input(false),
-               address(""),
-               playername(""),
-               password(""),
-               device(NULL),
-               input(NULL),
-               receiver(NULL),
-               skin(NULL),
-               font(NULL),
-               simple_singleplayer_mode(false),
-               current_playername("inv£lid"),
-               current_password(""),
-               current_address("does-not-exist"),
-               current_port(0)
-       {}
+       ClientLauncher() = default;
 
        ~ClientLauncher();
 
@@ -90,40 +36,35 @@ public:
 
 protected:
        void init_args(GameParams &game_params, const Settings &cmd_args);
-       bool init_engine(int log_level);
+       bool init_engine();
+       void init_input();
 
-       bool launch_game(std::string &error_message, GameParams &game_params,
-                       const Settings &cmd_args);
+       bool launch_game(std::string &error_message, bool reconnect_requested,
+               GameParams &game_params, const Settings &cmd_args);
 
        void main_menu(MainMenuData *menudata);
-       bool create_engine_device(int log_level);
 
        void speed_tests();
-       bool print_video_modes();
 
-       bool list_video_modes;
-       bool skip_main_menu;
-       bool use_freetype;
-       bool random_input;
-       std::string address;
-       std::string playername;
-       std::string password;
-       IrrlichtDevice *device;
-       InputHandler *input;
-       MyEventReceiver *receiver;
-       gui::IGUISkin *skin;
-       gui::IGUIFont *font;
-       scene::ISceneManager *smgr;
+       bool list_video_modes = false;
+       bool skip_main_menu = false;
+       bool use_freetype = false;
+       bool random_input = false;
+       std::string address = "";
+       std::string playername = "";
+       std::string password = "";
+       InputHandler *input = nullptr;
+       MyEventReceiver *receiver = nullptr;
+       gui::IGUISkin *skin = nullptr;
+       gui::IGUIFont *font = nullptr;
        SubgameSpec gamespec;
        WorldSpec worldspec;
-       bool simple_singleplayer_mode;
+       bool simple_singleplayer_mode = false;
 
        // These are set up based on the menu and other things
        // TODO: Are these required since there's already playername, password, etc
-       std::string current_playername;
-       std::string current_password;
-       std::string current_address;
-       int current_port;
+       std::string current_playername = "inv£lid";
+       std::string current_password = "";
+       std::string current_address = "does-not-exist";
+       int current_port = 0;
 };
-
-#endif