Fix Lint broken by b662a4577d692329b9ca83525e6039f2ddcd1ac1
[oweals/minetest.git] / src / client / clientlauncher.h
1 /*
2 Minetest
3 Copyright (C) 2010-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 __CLIENT_LAUNCHER_H__
21 #define __CLIENT_LAUNCHER_H__
22
23 #include "irrlichttypes_extrabloated.h"
24 #include "client/inputhandler.h"
25 #include "gameparams.h"
26
27
28 class ClientLauncher
29 {
30 public:
31         ClientLauncher() :
32                 list_video_modes(false),
33                 skip_main_menu(false),
34                 use_freetype(false),
35                 random_input(false),
36                 address(""),
37                 playername(""),
38                 password(""),
39                 device(NULL),
40                 input(NULL),
41                 receiver(NULL),
42                 skin(NULL),
43                 font(NULL),
44                 simple_singleplayer_mode(false),
45                 current_playername("invĀ£lid"),
46                 current_password(""),
47                 current_address("does-not-exist"),
48                 current_port(0)
49         {}
50
51         ~ClientLauncher();
52
53         bool run(GameParams &game_params, const Settings &cmd_args);
54
55 protected:
56         void init_args(GameParams &game_params, const Settings &cmd_args);
57         bool init_engine();
58         void init_input();
59
60         bool launch_game(std::string &error_message, bool reconnect_requested,
61                 GameParams &game_params, const Settings &cmd_args);
62
63         void main_menu(MainMenuData *menudata);
64         bool create_engine_device();
65
66         void speed_tests();
67         bool print_video_modes();
68
69         bool list_video_modes;
70         bool skip_main_menu;
71         bool use_freetype;
72         bool random_input;
73         std::string address;
74         std::string playername;
75         std::string password;
76         IrrlichtDevice *device;
77         InputHandler *input;
78         MyEventReceiver *receiver;
79         gui::IGUISkin *skin;
80         gui::IGUIFont *font;
81         scene::ISceneManager *smgr;
82         SubgameSpec gamespec;
83         WorldSpec worldspec;
84         bool simple_singleplayer_mode;
85
86         // These are set up based on the menu and other things
87         // TODO: Are these required since there's already playername, password, etc
88         std::string current_playername;
89         std::string current_password;
90         std::string current_address;
91         int current_port;
92 };
93
94 #endif