mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Some globals (un-)init fixes
This commit is contained in:
parent
2af5191070
commit
d8190e1c5f
16 changed files with 58 additions and 62 deletions
|
@ -47,11 +47,6 @@ gui::IGUIEnvironment *guienv = nullptr;
|
|||
gui::IGUIStaticText *guiroot = nullptr;
|
||||
MainMenuManager g_menumgr;
|
||||
|
||||
bool isMenuActive()
|
||||
{
|
||||
return g_menumgr.menuCount() != 0;
|
||||
}
|
||||
|
||||
// Passed to menus to allow disconnecting and exiting
|
||||
MainGameCallback *g_gamecallback = nullptr;
|
||||
|
||||
|
@ -74,13 +69,20 @@ ClientLauncher::~ClientLauncher()
|
|||
{
|
||||
delete input;
|
||||
|
||||
delete receiver;
|
||||
|
||||
delete g_fontengine;
|
||||
g_fontengine = nullptr;
|
||||
delete g_gamecallback;
|
||||
g_gamecallback = nullptr;
|
||||
|
||||
guiroot = nullptr;
|
||||
guienv = nullptr;
|
||||
assert(g_menumgr.menuCount() == 0);
|
||||
|
||||
delete m_rendering_engine;
|
||||
|
||||
// delete event receiver only after all Irrlicht stuff is gone
|
||||
delete receiver;
|
||||
|
||||
#if USE_SOUND
|
||||
g_sound_manager_singleton.reset();
|
||||
#endif
|
||||
|
@ -103,10 +105,8 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args)
|
|||
g_sound_manager_singleton = createSoundManagerSingleton();
|
||||
#endif
|
||||
|
||||
if (!init_engine()) {
|
||||
errorstream << "Could not initialize game engine." << std::endl;
|
||||
if (!init_engine())
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!m_rendering_engine->get_video_driver()) {
|
||||
errorstream << "Could not initialize video driver." << std::endl;
|
||||
|
@ -129,7 +129,6 @@ bool ClientLauncher::run(GameStartData &start_data, const Settings &cmd_args)
|
|||
init_guienv(guienv);
|
||||
|
||||
g_fontengine = new FontEngine(guienv);
|
||||
FATAL_ERROR_IF(!g_fontengine, "Font engine creation failed.");
|
||||
|
||||
// Create the menu clouds
|
||||
// This is only global so it can be used by RenderingEngine::draw_load_screen().
|
||||
|
@ -301,8 +300,12 @@ void ClientLauncher::init_args(GameStartData &start_data, const Settings &cmd_ar
|
|||
bool ClientLauncher::init_engine()
|
||||
{
|
||||
receiver = new MyEventReceiver();
|
||||
m_rendering_engine = new RenderingEngine(receiver);
|
||||
return m_rendering_engine->get_raw_device() != nullptr;
|
||||
try {
|
||||
m_rendering_engine = new RenderingEngine(receiver);
|
||||
} catch (std::exception &e) {
|
||||
errorstream << e.what() << std::endl;
|
||||
}
|
||||
return !!m_rendering_engine;
|
||||
}
|
||||
|
||||
void ClientLauncher::init_input()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue