3 Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
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 General Public License for more details.
15 You should have received a copy of the GNU 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.
25 extern Settings g_settings;
27 // This makes and maps textures
29 extern ITextureSource *g_texturesource;
33 extern Profiler g_profiler;
39 extern std::ostream *dout_con_ptr;
40 extern std::ostream *derr_con_ptr;
41 extern std::ostream *dout_client_ptr;
42 extern std::ostream *derr_client_ptr;
43 extern std::ostream *dout_server_ptr;
44 extern std::ostream *derr_server_ptr;
46 #define dout_con (*dout_con_ptr)
47 #define derr_con (*derr_con_ptr)
48 #define dout_client (*dout_client_ptr)
49 #define derr_client (*derr_client_ptr)
50 #define dout_server (*dout_server_ptr)
51 #define derr_server (*derr_server_ptr)
54 All kinds of stuff that needs to be exposed from main.cpp
57 #include "modalMenu.h"
58 #include "guiPauseMenu.h" //For IGameCallback
60 extern gui::IGUIEnvironment* guienv;
61 extern gui::IGUIStaticText *guiroot;
63 // Handler for the modal menus
65 class MainMenuManager : public IMenuManager
68 virtual void createdMenu(GUIModalMenu *menu)
70 for(core::list<GUIModalMenu*>::Iterator
72 i != m_stack.end(); i++)
77 if(m_stack.size() != 0)
78 (*m_stack.getLast())->setVisible(false);
79 m_stack.push_back(menu);
82 virtual void deletingMenu(GUIModalMenu *menu)
84 // Remove all entries if there are duplicates
87 removed_entry = false;
88 for(core::list<GUIModalMenu*>::Iterator
90 i != m_stack.end(); i++)
99 }while(removed_entry);
101 /*core::list<GUIModalMenu*>::Iterator i = m_stack.getLast();
105 if(m_stack.size() != 0)
106 (*m_stack.getLast())->setVisible(true);
111 return m_stack.size();
114 core::list<GUIModalMenu*> m_stack;
117 extern MainMenuManager g_menumgr;
119 extern bool noMenuActive();
121 class MainGameCallback : public IGameCallback
124 MainGameCallback(IrrlichtDevice *a_device):
125 disconnect_requested(false),
126 changepassword_requested(false),
131 virtual void exitToOS()
133 device->closeDevice();
136 virtual void disconnect()
138 disconnect_requested = true;
141 virtual void changePassword()
143 changepassword_requested = true;
146 bool disconnect_requested;
147 bool changepassword_requested;
148 IrrlichtDevice *device;
151 extern MainGameCallback *g_gamecallback;