Modernize client code (#6250)
[oweals/minetest.git] / src / guiEngine.h
index a59436953fc8fc578c75d4d017dbc16affa833ef..9f59051e8bc4f1cbd700ea16d58c9c52653bc6b3 100644 (file)
@@ -43,7 +43,7 @@ typedef enum {
 } texture_layer;
 
 typedef struct {
-       video::ITexture* texture;
+       video::ITexture *texture = nullptr;
        bool             tile;
        unsigned int     minsize;
 } image_definition;
@@ -68,7 +68,7 @@ public:
         * default constructor
         * @param engine the engine data is transmitted for further processing
         */
-       TextDestGuiEngine(GUIEngine* engine);
+       TextDestGuiEngine(GUIEngine* engine) : m_engine(engine) {};
 
        /**
         * receive fields transmitted by guiFormSpecMenu
@@ -80,11 +80,11 @@ public:
         * receive text/events transmitted by guiFormSpecMenu
         * @param text textual representation of event
         */
-       void gotText(std::wstring text);
+       void gotText(const std::wstring &text);
 
 private:
        /** target to transmit data to */
-       GUIEngine* m_engine;
+       GUIEngine *m_engine = nullptr;
 };
 
 /** GUIEngine specific implementation of ISimpleTextureSource */
@@ -95,7 +95,7 @@ public:
         * default constructor
         * @param driver the video driver to load textures from
         */
-       MenuTextureSource(video::IVideoDriver *driver);
+       MenuTextureSource(video::IVideoDriver *driver) : m_driver(driver) {};
 
        /**
         * destructor, removes all loaded textures
@@ -107,11 +107,11 @@ public:
         * @param name path to the texture
         * @param id receives the texture ID, always 0 in this implementation
         */
-       video::ITexturegetTexture(const std::string &name, u32 *id = NULL);
+       video::ITexture *getTexture(const std::string &name, u32 *id = NULL);
 
 private:
        /** driver to get textures from */
-       video::IVideoDriver *m_driver;
+       video::IVideoDriver *m_driver = nullptr;
        /** set of texture names to delete */
        std::set<std::string> m_to_delete;
 };
@@ -139,6 +139,7 @@ private:
 class GUIEngine {
        /** grant ModApiMainMenu access to private members */
        friend class ModApiMainMenu;
+       friend class ModApiSound;
 
 public:
        /**
@@ -149,13 +150,11 @@ public:
         * @param smgr scene manager to add scene elements to
         * @param data struct to transfer data to main game handling
         */
-       GUIEngine(irr::IrrlichtDevice* dev,
-                       JoystickController *joystick,
-                       gui::IGUIElement* parent,
+       GUIEngine(JoystickController *joystick,
+                       gui::IGUIElement *parent,
                        IMenuManager *menumgr,
-                       scene::ISceneManager* smgr,
-                       MainMenuData* data,
-                       bool& kill);
+                       MainMenuData *data,
+                       bool &kill);
 
        /** default destructor */
        virtual ~GUIEngine();
@@ -163,7 +162,7 @@ public:
        /**
         * return MainMenuScripting interface
         */
-       MainMenuScriptinggetScriptIface()
+       MainMenuScripting *getScriptIface()
        {
                return m_script;
        }
@@ -177,7 +176,8 @@ public:
        }
 
        /** pass async callback to scriptengine **/
-       unsigned int queueAsync(std::string serialized_fct,std::string serialized_params);
+       unsigned int queueAsync(const std::string &serialized_fct,
+                       const std::string &serialized_params);
 
 private:
 
@@ -187,66 +187,61 @@ private:
        /** run main menu loop */
        void run();
 
-       /** handler to limit frame rate within main menu */
-       void limitFrameRate();
-
        /** update size of topleftext element */
        void updateTopLeftTextSize();
 
-       /** device to draw at */
-       irr::IrrlichtDevice*     m_device;
        /** parent gui element */
-       gui::IGUIElement*        m_parent;
+       gui::IGUIElement        *m_parent = nullptr;
        /** manager to add menus to */
-       IMenuManager*            m_menumanager;
+       IMenuManager            *m_menumanager = nullptr;
        /** scene manager to add scene elements to */
-       scene::ISceneManager*    m_smgr;
+       scene::ISceneManager    *m_smgr = nullptr;
        /** pointer to data beeing transfered back to main game handling */
-       MainMenuData*            m_data;
+       MainMenuData            *m_data = nullptr;
        /** pointer to texture source */
-       ISimpleTextureSource*    m_texture_source;
+       ISimpleTextureSource    *m_texture_source = nullptr;
        /** pointer to soundmanager*/
-       ISoundManager*           m_sound_manager;
+       ISoundManager           *m_sound_manager = nullptr;
 
        /** representation of form source to be used in mainmenu formspec */
-       FormspecFormSource*      m_formspecgui;
+       FormspecFormSource      *m_formspecgui = nullptr;
        /** formspec input receiver */
-       TextDestGuiEngine*       m_buttonhandler;
+       TextDestGuiEngine       *m_buttonhandler = nullptr;
        /** the formspec menu */
-       GUIFormSpecMenu*         m_menu;
+       GUIFormSpecMenu         *m_menu = nullptr;
 
        /** reference to kill variable managed by SIGINT handler */
-       bool&                    m_kill;
+       bool                    &m_kill;
 
        /** variable used to abort menu and return back to main game handling */
-       bool                     m_startgame;
+       bool                     m_startgame = false;
 
        /** scripting interface */
-       MainMenuScripting*       m_script;
+       MainMenuScripting       *m_script = nullptr;
 
        /** script basefolder */
-       std::string              m_scriptdir;
+       std::string              m_scriptdir = "";
 
        /**
         * draw background layer
         * @param driver to use for drawing
         */
-       void drawBackground(video::IVideoDriverdriver);
+       void drawBackground(video::IVideoDriver *driver);
        /**
         * draw overlay layer
         * @param driver to use for drawing
         */
-       void drawOverlay(video::IVideoDriverdriver);
+       void drawOverlay(video::IVideoDriver *driver);
        /**
         * draw header layer
         * @param driver to use for drawing
         */
-       void drawHeader(video::IVideoDriverdriver);
+       void drawHeader(video::IVideoDriver *driver);
        /**
         * draw footer layer
         * @param driver to use for drawing
         */
-       void drawFooter(video::IVideoDriverdriver);
+       void drawFooter(video::IVideoDriver *driver);
 
        /**
         * load a texture for a specified layer
@@ -261,22 +256,19 @@ private:
         * @param url url to download
         * @param target file to store to
         */
-       static bool downloadFile(std::string url,std::string target);
+       static bool downloadFile(const std::string &url, const std::string &target);
 
        /** array containing pointers to current specified texture layers */
        image_definition m_textures[TEX_LAYER_MAX];
 
-       /** draw version string in topleft corner */
-       void drawVersion();
-
        /**
-        * specify text to be appended to version string
+        * specify text to appear as top left string
         * @param text to set
         */
-       void setTopleftText(std::string append);
+       void setTopleftText(const std::string &text);
 
        /** pointer to gui element shown at topleft corner */
-       irr::gui::IGUIStaticText*       m_irr_toplefttext;
+       irr::gui::IGUIStaticText *m_irr_toplefttext = nullptr;
        /** and text that is in it */
        EnrichedString m_toplefttext;
 
@@ -294,13 +286,13 @@ private:
                /** absolute time of last cloud processing */
                u32     lasttime;
                /** pointer to cloud class */
-               Clouds* clouds;
+               Clouds *clouds = nullptr;
                /** camera required for drawing clouds */
-               scene::ICameraSceneNode* camera;
+               scene::ICameraSceneNode *camera = nullptr;
        };
 
        /** is drawing of clouds enabled atm */
-       bool        m_clouds_enabled;
+       bool        m_clouds_enabled = true;
        /** data used to draw clouds */
        clouddata   m_cloud;
 
@@ -312,6 +304,4 @@ private:
 
 };
 
-
-
 #endif /* GUI_ENGINE_H_ */