mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-11 17:51:04 +00:00
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
This commit is contained in:
parent
db4ea4658c
commit
6ab3b4c838
16 changed files with 571 additions and 1262 deletions
|
@ -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) {
|
||||
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 (!targetfile.good()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return retval;
|
||||
HTTPFetchRequest fetchrequest;
|
||||
HTTPFetchResult fetchresult;
|
||||
fetchrequest.url = url;
|
||||
fetchrequest.caller = HTTPFETCH_SYNC;
|
||||
httpfetch_sync(fetchrequest, fetchresult);
|
||||
|
||||
if (fetchresult.succeeded) {
|
||||
targetfile << fetchresult.data;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue