Fix warnings reported by clang
[oweals/minetest.git] / src / guiEngine.cpp
index 671f0c574dbd91fd7ac31e65744a1bc1329f272d..0a1d722069ebd6c573bf5381b9839e14a0693057 100644 (file)
@@ -32,6 +32,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "clouds.h"
 #include "httpfetch.h"
 #include "util/numeric.h"
+#ifdef __ANDROID__
+#include "tile.h"
+#include <GLES/gl.h>
+#endif
 
 #include <IGUIStaticText.h>
 #include <ICameraSceneNode.h>
@@ -83,6 +87,16 @@ video::ITexture* MenuTextureSource::getTexture(const std::string &name, u32 *id)
        if(name.empty())
                return NULL;
        m_to_delete.insert(name);
+
+#ifdef __ANDROID__
+       video::IImage *image = m_driver->createImageFromFile(name.c_str());
+       if (image) {
+               image = Align2Npot2(image, m_driver);
+               video::ITexture* retval = m_driver->addTexture(name.c_str(), image);
+               image->drop();
+               return retval;
+       }
+#endif
        return m_driver->getTexture(name.c_str());
 }
 
@@ -205,8 +219,9 @@ GUIEngine::GUIEngine(       irr::IrrlichtDevice* dev,
        }
 
        m_menu->quitMenu();
-       m_menu->drop();
-       m_menu = 0;
+       m_menu->remove();
+       delete m_menu;
+       m_menu = NULL;
 }
 
 /******************************************************************************/
@@ -265,6 +280,10 @@ void GUIEngine::run()
                        sleep_ms(25);
 
                m_script->step();
+
+#ifdef __ANDROID__
+               m_menu->getAndroidUIInput();
+#endif
        }
 }
 
@@ -279,8 +298,6 @@ GUIEngine::~GUIEngine()
                m_sound_manager = NULL;
        }
 
-       //TODO: clean up m_menu here
-
        infostream<<"GUIEngine: Deinitializing scripting"<<std::endl;
        delete m_script;
 
@@ -524,6 +541,7 @@ bool GUIEngine::downloadFile(std::string url,std::string target)
        HTTPFetchResult fetchresult;
        fetchrequest.url = url;
        fetchrequest.caller = HTTPFETCH_SYNC;
+       fetchrequest.timeout = g_settings->getS32("curl_file_download_timeout");
        httpfetch_sync(fetchrequest, fetchresult);
 
        if (fetchresult.succeeded) {