summaryrefslogtreecommitdiff
path: root/src/guiEngine.cpp
diff options
context:
space:
mode:
authorShadowNinja <shadowninja@minetest.net>2014-04-15 13:41:07 -0400
committerShadowNinja <shadowninja@minetest.net>2014-04-27 16:15:53 -0400
commit6ab3b4c83856b5c8a1a526c0e4dc55babe79d50d (patch)
tree90e64f78dd3ceac12dbb21ac6b045500de0ca603 /src/guiEngine.cpp
parentdb4ea4658c58772ee447ff0eff8bb39b692081ec (diff)
downloadminetest-6ab3b4c83856b5c8a1a526c0e4dc55babe79d50d.tar.gz
minetest-6ab3b4c83856b5c8a1a526c0e4dc55babe79d50d.tar.bz2
minetest-6ab3b4c83856b5c8a1a526c0e4dc55babe79d50d.zip
Remove dependency on marshal and many other async changes
This makes a number of changes: * Remove the dependency on marshal by using string.dump and loadstring. * Use lua_tolstring rather than having Lua functions pass string lengths to C++. * Move lua_api/l_async_events.* to cpp_api/s_async.*, where it belongs. * Make AsyncWorkerThread a child of ScriptApiBase, this removes some duplicate functionality. * Don't wait for async threads to shut down. (Is this safe? Might result in corruption if the thread is writing to a file.) * Pop more unused items from the stack * Code style fixes * Other misc changes
Diffstat (limited to 'src/guiEngine.cpp')
-rw-r--r--src/guiEngine.cpp46
1 files changed, 20 insertions, 26 deletions
diff --git a/src/guiEngine.cpp b/src/guiEngine.cpp
index b929c4f71..672a0d37f 100644
--- a/src/guiEngine.cpp
+++ b/src/guiEngine.cpp
@@ -186,19 +186,20 @@ GUIEngine::GUIEngine( irr::IrrlichtDevice* dev,
// Initialize scripting
- infostream<<"GUIEngine: Initializing Lua"<<std::endl;
+ infostream << "GUIEngine: Initializing Lua" << std::endl;
m_script = new MainMenuScripting(this);
try {
- if (m_data->errormessage != "")
- {
+ if (m_data->errormessage != "") {
m_script->setMainMenuErrorMessage(m_data->errormessage);
m_data->errormessage = "";
}
- if (!loadMainMenuScript())
- assert("no future without mainmenu" == 0);
+ if (!loadMainMenuScript()) {
+ errorstream << "No future without mainmenu" << std::endl;
+ abort();
+ }
run();
}
@@ -512,32 +513,25 @@ bool GUIEngine::setTexture(texture_layer layer,std::string texturepath) {
/******************************************************************************/
bool GUIEngine::downloadFile(std::string url,std::string target) {
#if USE_CURL
- bool retval = true;
+ std::ofstream targetfile(target.c_str(), std::ios::out | std::ios::binary);
- FILE* targetfile = fopen(target.c_str(),"wb");
+ if (!targetfile.good()) {
+ return false;
+ }
- if (targetfile) {
- HTTPFetchRequest fetchrequest;
- HTTPFetchResult fetchresult;
- fetchrequest.url = url;
- fetchrequest.caller = HTTPFETCH_SYNC;
- httpfetch_sync(fetchrequest,fetchresult);
+ HTTPFetchRequest fetchrequest;
+ HTTPFetchResult fetchresult;
+ fetchrequest.url = url;
+ fetchrequest.caller = HTTPFETCH_SYNC;
+ httpfetch_sync(fetchrequest, fetchresult);
- if (fetchresult.succeeded) {
- if (fwrite(fetchresult.data.c_str(),1,fetchresult.data.size(),targetfile) != fetchresult.data.size()) {
- retval = false;
- }
- }
- else {
- retval = false;
- }
- fclose(targetfile);
- }
- else {
- retval = false;
+ if (fetchresult.succeeded) {
+ targetfile << fetchresult.data;
+ } else {
+ return false;
}
- return retval;
+ return true;
#else
return false;
#endif