diff options
Diffstat (limited to 'src/gui/guiEngine.cpp')
-rw-r--r-- | src/gui/guiEngine.cpp | 55 |
1 files changed, 26 insertions, 29 deletions
diff --git a/src/gui/guiEngine.cpp b/src/gui/guiEngine.cpp index 941ebe754..2d9659f14 100644 --- a/src/gui/guiEngine.cpp +++ b/src/gui/guiEngine.cpp @@ -138,26 +138,26 @@ GUIEngine::GUIEngine(JoystickController *joystick, m_data(data), m_kill(kill) { - //initialize texture pointers + // initialize texture pointers for (image_definition &texture : m_textures) { texture.texture = NULL; } // is deleted by guiformspec! - m_buttonhandler = new TextDestGuiEngine(this); + auto buttonhandler = std::make_unique<TextDestGuiEngine>(this); + m_buttonhandler = buttonhandler.get(); - //create texture source - m_texture_source = new MenuTextureSource(rendering_engine->get_video_driver()); + // create texture source + m_texture_source = std::make_unique<MenuTextureSource>(rendering_engine->get_video_driver()); - //create soundmanager - MenuMusicFetcher soundfetcher; + // create soundmanager #if USE_SOUND if (g_settings->getBool("enable_sound") && g_sound_manager_singleton.get()) - m_sound_manager = createOpenALSoundManager(g_sound_manager_singleton.get(), &soundfetcher); + m_sound_manager.reset(createOpenALSoundManager(g_sound_manager_singleton.get(), &m_soundfetcher)); #endif if (!m_sound_manager) - m_sound_manager = &dummySoundManager; + m_sound_manager = std::make_unique<DummySoundManager>(); - //create topleft header + // create topleft header m_toplefttext = L""; core::rect<s32> rect(0, 0, g_fontengine->getTextWidth(m_toplefttext.c_str()), @@ -167,20 +167,22 @@ GUIEngine::GUIEngine(JoystickController *joystick, m_irr_toplefttext = gui::StaticText::add(rendering_engine->get_gui_env(), m_toplefttext, rect, false, true, 0, -1); - //create formspecsource - m_formspecgui = new FormspecFormSource(""); + // create formspecsource + auto formspecgui = std::make_unique<FormspecFormSource>(""); + m_formspecgui = formspecgui.get(); /* Create menu */ - m_menu = new GUIFormSpecMenu(joystick, + m_menu = make_irr<GUIFormSpecMenu>( + joystick, m_parent, -1, m_menumanager, - NULL /* &client */, + nullptr /* &client */, m_rendering_engine->get_gui_env(), - m_texture_source, - m_sound_manager, - m_formspecgui, - m_buttonhandler, + m_texture_source.get(), + m_sound_manager.get(), + formspecgui.release(), + buttonhandler.release(), "", false); @@ -191,7 +193,7 @@ GUIEngine::GUIEngine(JoystickController *joystick, infostream << "GUIEngine: Initializing Lua" << std::endl; - m_script = new MainMenuScripting(this); + m_script = std::make_unique<MainMenuScripting>(this); try { m_script->setMainMenuData(&m_data->script_data); @@ -209,8 +211,7 @@ GUIEngine::GUIEngine(JoystickController *joystick, } m_menu->quitMenu(); - m_menu->drop(); - m_menu = NULL; + m_menu.reset(); } /******************************************************************************/ @@ -327,13 +328,10 @@ void GUIEngine::run() /******************************************************************************/ GUIEngine::~GUIEngine() { - if (m_sound_manager != &dummySoundManager){ - delete m_sound_manager; - m_sound_manager = NULL; - } + m_sound_manager.reset(); infostream<<"GUIEngine: Deinitializing scripting"<<std::endl; - delete m_script; + m_script.reset(); m_irr_toplefttext->setText(L""); @@ -343,16 +341,15 @@ GUIEngine::~GUIEngine() m_rendering_engine->get_video_driver()->removeTexture(texture.texture); } - delete m_texture_source; + m_texture_source.reset(); - if (m_cloud.clouds) - m_cloud.clouds->drop(); + m_cloud.clouds.reset(); } /******************************************************************************/ void GUIEngine::cloudInit() { - m_cloud.clouds = new Clouds(m_smgr, -1, rand()); + m_cloud.clouds = make_irr<Clouds>(m_smgr, -1, rand()); m_cloud.clouds->setHeight(100.0f); m_cloud.clouds->update(v3f(0, 0, 0), video::SColor(255,240,240,255)); |