From 0db73bd83effa7dbc0f28862c8157e0283d24e44 Mon Sep 17 00:00:00 2001 From: sapier Date: Sat, 23 Aug 2014 12:16:46 +0200 Subject: More consistent progress bar from 0-100 on startup --- src/client.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'src/client.cpp') 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"<rebuildImagesAndTextures(); + delete[] text; // Rebuild shaders infostream<<"- Rebuilding shaders"<rebuildShaders(); + delete[] text; // Update node aliases infostream<<"- Updating node aliases"<updateAliases(m_itemdef); + delete[] text; // Update node textures and assign shaders to each tile infostream<<"- Updating node textures"<getBool("preload_item_visuals")) { verbosestream<<"Updating item textures and meshes"< names = m_itemdef->getAll(); size_t size = names.size(); size_t count = 0; int percent = 0; for(std::set::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"<