X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2FguiEngine.h;h=e7e5ca05dc30bae22dad0de4ffd7a3df172fd0ed;hb=842acbfad2b70550c562f6429d02c980912d2273;hp=4844593954c98fcf679cc12ed48049eac8b83c4e;hpb=3c4734d69a44aea133e5bd7df66a5dedb87785fb;p=minetest.git diff --git a/src/guiEngine.h b/src/guiEngine.h index 484459395..e7e5ca05d 100644 --- a/src/guiEngine.h +++ b/src/guiEngine.h @@ -27,7 +27,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "modalMenu.h" #include "guiFormSpecMenu.h" #include "sound.h" -#include "tile.h" +#include "client/tile.h" +#include "util/enriched_string.h" /******************************************************************************/ /* Typedefs and macros */ @@ -41,6 +42,12 @@ typedef enum { TEX_LAYER_MAX } texture_layer; +typedef struct { + video::ITexture* texture; + bool tile; + unsigned int minsize; +} image_definition; + /******************************************************************************/ /* forward declarations */ /******************************************************************************/ @@ -67,13 +74,13 @@ class TextDestGuiEngine : public TextDest * receive fields transmitted by guiFormSpecMenu * @param fields map containing formspec field elements currently active */ - void gotText(std::map fields); + void gotText(const StringMap &fields); /** * 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 */ @@ -132,6 +139,7 @@ class MenuMusicFetcher: public OnDemandSoundFetcher class GUIEngine { /** grant ModApiMainMenu access to private members */ friend class ModApiMainMenu; + friend class ModApiSound; public: /** @@ -142,12 +150,13 @@ class GUIEngine { * @param smgr scene manager to add scene elements to * @param data struct to transfer data to main game handling */ - GUIEngine( irr::IrrlichtDevice* dev, - gui::IGUIElement* parent, - IMenuManager *menumgr, - scene::ISceneManager* smgr, - MainMenuData* data, - bool& kill); + GUIEngine(irr::IrrlichtDevice* dev, + JoystickController *joystick, + gui::IGUIElement* parent, + IMenuManager *menumgr, + scene::ISceneManager* smgr, + MainMenuData* data, + bool& kill); /** default destructor */ virtual ~GUIEngine(); @@ -155,17 +164,23 @@ class GUIEngine { /** * return MainMenuScripting interface */ - MainMenuScripting* getScriptIface() { + MainMenuScripting* getScriptIface() + { return m_script; } /** * return dir of current menuscript */ - std::string getScriptDir() { + std::string getScriptDir() + { return m_scriptdir; } + /** pass async callback to scriptengine **/ + unsigned int queueAsync(const std::string &serialized_fct, + const std::string &serialized_params); + private: /** find and run the main menu script */ @@ -174,42 +189,42 @@ class GUIEngine { /** 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; + irr::IrrlichtDevice* m_device; /** parent gui element */ - gui::IGUIElement* m_parent; + gui::IGUIElement* m_parent; /** manager to add menus to */ - IMenuManager* m_menumanager; + IMenuManager* m_menumanager; /** scene manager to add scene elements to */ - scene::ISceneManager* m_smgr; + scene::ISceneManager* m_smgr; /** pointer to data beeing transfered back to main game handling */ - MainMenuData* m_data; + MainMenuData* m_data; /** pointer to texture source */ - ISimpleTextureSource* m_texture_source; + ISimpleTextureSource* m_texture_source; /** pointer to soundmanager*/ - ISoundManager* m_sound_manager; + ISoundManager* m_sound_manager; /** representation of form source to be used in mainmenu formspec */ - FormspecFormSource* m_formspecgui; + FormspecFormSource* m_formspecgui; /** formspec input receiver */ - TextDestGuiEngine* m_buttonhandler; + TextDestGuiEngine* m_buttonhandler; /** the formspec menu */ - GUIFormSpecMenu* m_menu; + GUIFormSpecMenu* m_menu; /** 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; /** scripting interface */ - MainMenuScripting* m_script; + MainMenuScripting* m_script; /** script basefolder */ - std::string m_scriptdir; + std::string m_scriptdir; /** * draw background layer @@ -237,29 +252,29 @@ class GUIEngine { * @param layer draw layer to specify texture * @param texturepath full path of texture to load */ - bool setTexture(texture_layer layer,std::string texturepath); + bool setTexture(texture_layer layer, std::string texturepath, + bool tile_image, unsigned int minsize); /** * download a file using curl * @param url url to download * @param target file to store to */ - 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 */ - video::ITexture* m_textures[TEX_LAYER_MAX]; - - /** draw version string in topleft corner */ - void drawVersion(); + image_definition m_textures[TEX_LAYER_MAX]; /** - * 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; + /** and text that is in it */ + EnrichedString m_toplefttext; /** initialize cloud subsystem */ void cloudInit(); @@ -271,19 +286,19 @@ class GUIEngine { /** internam data required for drawing clouds */ struct clouddata { /** delta time since last cloud processing */ - f32 dtime; + f32 dtime; /** absolute time of last cloud processing */ - u32 lasttime; + u32 lasttime; /** pointer to cloud class */ - Clouds* clouds; + Clouds* clouds; /** camera required for drawing clouds */ scene::ICameraSceneNode* camera; }; /** is drawing of clouds enabled atm */ - bool m_clouds_enabled; + bool m_clouds_enabled; /** data used to draw clouds */ - clouddata m_cloud; + clouddata m_cloud; /** start playing a sound and return handle */ s32 playSound(SimpleSoundSpec spec, bool looped);