summaryrefslogtreecommitdiff
path: root/src/client.cpp
diff options
context:
space:
mode:
authorsapier <Sapier at GMX dot net>2014-08-23 12:16:46 +0200
committersapier <Sapier at GMX dot net>2015-01-02 17:53:42 +0100
commit0db73bd83effa7dbc0f28862c8157e0283d24e44 (patch)
tree9a4d17a2b659da9e29ca8fc7edc1bd8d8b1fc132 /src/client.cpp
parent35149a10e3b26425e358cb6f4ae0449a052d30a7 (diff)
downloadminetest-0db73bd83effa7dbc0f28862c8157e0283d24e44.tar.gz
minetest-0db73bd83effa7dbc0f28862c8157e0283d24e44.tar.bz2
minetest-0db73bd83effa7dbc0f28862c8157e0283d24e44.zip
More consistent progress bar from 0-100 on startup
Diffstat (limited to 'src/client.cpp')
-rw-r--r--src/client.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/client.cpp b/src/client.cpp
index b401eb804..cfa8704b3 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -2703,17 +2703,27 @@ void Client::afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font)
assert(m_nodedef_received);
assert(mediaReceived());
+ wchar_t* text = wgettext("Loading textures...");
+
// Rebuild inherited images and recreate textures
infostream<<"- Rebuilding images and textures"<<std::endl;
+ draw_load_screen(text,device, guienv, 0, 70);
m_tsrc->rebuildImagesAndTextures();
+ delete[] text;
// Rebuild shaders
infostream<<"- Rebuilding shaders"<<std::endl;
+ text = wgettext("Rebuilding shaders...");
+ draw_load_screen(text, device, guienv, 0, 75);
m_shsrc->rebuildShaders();
+ delete[] text;
// Update node aliases
infostream<<"- Updating node aliases"<<std::endl;
+ text = wgettext("Initializing nodes...");
+ draw_load_screen(text, device, guienv, 0, 80);
m_nodedef->updateAliases(m_itemdef);
+ delete[] text;
// Update node textures and assign shaders to each tile
infostream<<"- Updating node textures"<<std::endl;
@@ -2723,21 +2733,21 @@ void Client::afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font)
if(g_settings->getBool("preload_item_visuals"))
{
verbosestream<<"Updating item textures and meshes"<<std::endl;
- wchar_t* text = wgettext("Item textures...");
+ text = wgettext("Item textures...");
draw_load_screen(text, device, guienv, 0, 0);
std::set<std::string> names = m_itemdef->getAll();
size_t size = names.size();
size_t count = 0;
int percent = 0;
for(std::set<std::string>::const_iterator
- i = names.begin(); i != names.end(); ++i){
+ i = names.begin(); i != names.end(); ++i)
+ {
// Asking for these caches the result
m_itemdef->getInventoryTexture(*i, this);
m_itemdef->getWieldMesh(*i, this);
count++;
- percent = count*100/size;
- if (count%50 == 0) // only update every 50 item
- draw_load_screen(text, device, guienv, 0, percent);
+ percent = (count * 100 / size * 0.2) + 80;
+ draw_load_screen(text, device, guienv, 0, percent);
}
delete[] text;
}
@@ -2748,7 +2758,10 @@ void Client::afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font)
m_state = LC_Ready;
sendReady();
+ text = wgettext("Done!");
+ draw_load_screen(text, device, guienv, 0, 100);
infostream<<"Client::afterContentReceived() done"<<std::endl;
+ delete[] text;
}
float Client::getRTT(void)