aboutsummaryrefslogtreecommitdiff
path: root/src/gui/guiEngine.cpp
diff options
context:
space:
mode:
authorDesour <ds.desour@proton.me>2023-04-10 18:43:58 +0200
committerDS <ds.desour@proton.me>2023-04-11 20:06:15 +0200
commitb201c036259a2c2893e54712a8e3e891ad764b71 (patch)
treea26f5a47d995363a61e875210697d1037f21bc75 /src/gui/guiEngine.cpp
parentceec560779e43813dd1c212557160f4dee4910ed (diff)
downloadminetest-b201c036259a2c2893e54712a8e3e891ad764b71.tar.xz
Use smart-ptrs in GUIEngine
Diffstat (limited to 'src/gui/guiEngine.cpp')
-rw-r--r--src/gui/guiEngine.cpp55
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));