mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-11 17:51:04 +00:00
Use smart-ptrs in GUIEngine
This commit is contained in:
parent
ceec560779
commit
b201c03625
3 changed files with 51 additions and 52 deletions
|
@ -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));
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue