mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 09:15:29 +01:00 
			
		
		
		
	@@ -42,6 +42,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 | 
			
		||||
/* mainmenumanager.h
 | 
			
		||||
 */
 | 
			
		||||
gui::IGUIEnvironment *guienv = nullptr;
 | 
			
		||||
gui::IGUIStaticText *guiroot = nullptr;
 | 
			
		||||
MainMenuManager g_menumgr;
 | 
			
		||||
 | 
			
		||||
bool isMenuActive()
 | 
			
		||||
@@ -217,6 +218,14 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args)
 | 
			
		||||
 | 
			
		||||
			m_rendering_engine->get_gui_env()->clear();
 | 
			
		||||
 | 
			
		||||
			/*
 | 
			
		||||
				We need some kind of a root node to be able to add
 | 
			
		||||
				custom gui elements directly on the screen.
 | 
			
		||||
				Otherwise they won't be automatically drawn.
 | 
			
		||||
			*/
 | 
			
		||||
			guiroot = m_rendering_engine->get_gui_env()->addStaticText(L"",
 | 
			
		||||
				core::rect<s32>(0, 0, 10000, 10000));
 | 
			
		||||
 | 
			
		||||
			bool game_has_run = launch_game(error_message, reconnect_requested,
 | 
			
		||||
				start_data, cmd_args);
 | 
			
		||||
 | 
			
		||||
@@ -547,8 +556,7 @@ void ClientLauncher::main_menu(MainMenuData *menudata)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	/* show main menu */
 | 
			
		||||
	GUIEngine mymenu(&input->joystick, m_rendering_engine->get_gui_env()->getRootGUIElement(),
 | 
			
		||||
			m_rendering_engine, &g_menumgr, menudata, *kill);
 | 
			
		||||
	GUIEngine mymenu(&input->joystick, guiroot, m_rendering_engine, &g_menumgr, menudata, *kill);
 | 
			
		||||
 | 
			
		||||
	/* leave scene manager in a clean state */
 | 
			
		||||
	m_rendering_engine->get_scene_manager()->clear();
 | 
			
		||||
 
 | 
			
		||||
@@ -1806,19 +1806,19 @@ inline bool Game::handleCallbacks()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (g_gamecallback->changepassword_requested) {
 | 
			
		||||
		(new GUIPasswordChange(guienv, guienv->getRootGUIElement(), -1,
 | 
			
		||||
		(new GUIPasswordChange(guienv, guiroot, -1,
 | 
			
		||||
				       &g_menumgr, client, texture_src))->drop();
 | 
			
		||||
		g_gamecallback->changepassword_requested = false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (g_gamecallback->changevolume_requested) {
 | 
			
		||||
		(new GUIVolumeChange(guienv, guienv->getRootGUIElement(), -1,
 | 
			
		||||
		(new GUIVolumeChange(guienv, guiroot, -1,
 | 
			
		||||
				     &g_menumgr, texture_src))->drop();
 | 
			
		||||
		g_gamecallback->changevolume_requested = false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (g_gamecallback->keyconfig_requested) {
 | 
			
		||||
		(new GUIKeyChangeMenu(guienv, guienv->getRootGUIElement(), -1,
 | 
			
		||||
		(new GUIKeyChangeMenu(guienv, guiroot, -1,
 | 
			
		||||
				      &g_menumgr, texture_src))->drop();
 | 
			
		||||
		g_gamecallback->keyconfig_requested = false;
 | 
			
		||||
	}
 | 
			
		||||
@@ -4150,7 +4150,7 @@ void Game::updateFrame(ProfilerGraph *graph, RunStats *stats, f32 dtime,
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (isMenuActive())
 | 
			
		||||
			m_rendering_engine->get_gui_env()->getRootGUIElement()->bringToFront(formspec);
 | 
			
		||||
			guiroot->bringToFront(formspec);
 | 
			
		||||
	} while (false);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
 
 | 
			
		||||
@@ -53,8 +53,6 @@ GameUI::GameUI()
 | 
			
		||||
}
 | 
			
		||||
void GameUI::init()
 | 
			
		||||
{
 | 
			
		||||
	IGUIElement *guiroot = guienv->getRootGUIElement();
 | 
			
		||||
 | 
			
		||||
	// First line of debug text
 | 
			
		||||
	m_guitext = gui::StaticText::add(guienv, utf8_to_wide(PROJECT_NAME_C).c_str(),
 | 
			
		||||
		core::rect<s32>(0, 0, 0, 0), false, true, guiroot);
 | 
			
		||||
 
 | 
			
		||||
@@ -139,9 +139,9 @@ void GUIFormSpecMenu::create(GUIFormSpecMenu *&cur_formspec, Client *client,
 | 
			
		||||
	TextDest *txt_dest, const std::string &formspecPrepend, ISoundManager *sound_manager)
 | 
			
		||||
{
 | 
			
		||||
	if (cur_formspec == nullptr) {
 | 
			
		||||
		cur_formspec = new GUIFormSpecMenu(joystick, guienv->getRootGUIElement(),
 | 
			
		||||
			-1, &g_menumgr, client, guienv, client->getTextureSource(), sound_manager,
 | 
			
		||||
			fs_src, txt_dest, formspecPrepend);
 | 
			
		||||
		cur_formspec = new GUIFormSpecMenu(joystick, guiroot, -1, &g_menumgr,
 | 
			
		||||
			client, guienv, client->getTextureSource(), sound_manager, fs_src,
 | 
			
		||||
			txt_dest, formspecPrepend);
 | 
			
		||||
		cur_formspec->doPause = false;
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
 
 | 
			
		||||
@@ -38,8 +38,8 @@ public:
 | 
			
		||||
	virtual void signalKeyConfigChange() = 0;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// FIXME: do we really need this global variable?
 | 
			
		||||
extern gui::IGUIEnvironment *guienv;
 | 
			
		||||
extern gui::IGUIStaticText *guiroot;
 | 
			
		||||
 | 
			
		||||
// Handler for the modal menus
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user