Skip to content

Commit 0db73bd

Browse files
sapiersapier
sapier
authored and
sapier
committedJan 2, 2015
More consistent progress bar from 0-100 on startup
1 parent 35149a1 commit 0db73bd

File tree

2 files changed

+26
-14
lines changed

2 files changed

+26
-14
lines changed
 

‎src/client.cpp

+18-5
Original file line numberDiff line numberDiff line change
@@ -2703,17 +2703,27 @@ void Client::afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font)
27032703
assert(m_nodedef_received);
27042704
assert(mediaReceived());
27052705

2706+
wchar_t* text = wgettext("Loading textures...");
2707+
27062708
// Rebuild inherited images and recreate textures
27072709
infostream<<"- Rebuilding images and textures"<<std::endl;
2710+
draw_load_screen(text,device, guienv, 0, 70);
27082711
m_tsrc->rebuildImagesAndTextures();
2712+
delete[] text;
27092713

27102714
// Rebuild shaders
27112715
infostream<<"- Rebuilding shaders"<<std::endl;
2716+
text = wgettext("Rebuilding shaders...");
2717+
draw_load_screen(text, device, guienv, 0, 75);
27122718
m_shsrc->rebuildShaders();
2719+
delete[] text;
27132720

27142721
// Update node aliases
27152722
infostream<<"- Updating node aliases"<<std::endl;
2723+
text = wgettext("Initializing nodes...");
2724+
draw_load_screen(text, device, guienv, 0, 80);
27162725
m_nodedef->updateAliases(m_itemdef);
2726+
delete[] text;
27172727

27182728
// Update node textures and assign shaders to each tile
27192729
infostream<<"- Updating node textures"<<std::endl;
@@ -2723,21 +2733,21 @@ void Client::afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font)
27232733
if(g_settings->getBool("preload_item_visuals"))
27242734
{
27252735
verbosestream<<"Updating item textures and meshes"<<std::endl;
2726-
wchar_t* text = wgettext("Item textures...");
2736+
text = wgettext("Item textures...");
27272737
draw_load_screen(text, device, guienv, 0, 0);
27282738
std::set<std::string> names = m_itemdef->getAll();
27292739
size_t size = names.size();
27302740
size_t count = 0;
27312741
int percent = 0;
27322742
for(std::set<std::string>::const_iterator
2733-
i = names.begin(); i != names.end(); ++i){
2743+
i = names.begin(); i != names.end(); ++i)
2744+
{
27342745
// Asking for these caches the result
27352746
m_itemdef->getInventoryTexture(*i, this);
27362747
m_itemdef->getWieldMesh(*i, this);
27372748
count++;
2738-
percent = count*100/size;
2739-
if (count%50 == 0) // only update every 50 item
2740-
draw_load_screen(text, device, guienv, 0, percent);
2749+
percent = (count * 100 / size * 0.2) + 80;
2750+
draw_load_screen(text, device, guienv, 0, percent);
27412751
}
27422752
delete[] text;
27432753
}
@@ -2748,7 +2758,10 @@ void Client::afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font)
27482758

27492759
m_state = LC_Ready;
27502760
sendReady();
2761+
text = wgettext("Done!");
2762+
draw_load_screen(text, device, guienv, 0, 100);
27512763
infostream<<"Client::afterContentReceived() done"<<std::endl;
2764+
delete[] text;
27522765
}
27532766

27542767
float Client::getRTT(void)

‎src/game.cpp

+8-9
Original file line numberDiff line numberDiff line change
@@ -1325,7 +1325,6 @@ struct FpsControl {
13251325
* many functions that do require objects of thse types do not modify them
13261326
* (so they can be passed as a const qualified parameter)
13271327
*/
1328-
13291328
struct CameraOrientation {
13301329
f32 camera_yaw; // "right/left"
13311330
f32 camera_pitch; // "up/down"
@@ -1898,7 +1897,7 @@ bool Game::initSound()
18981897
bool Game::createSingleplayerServer(const std::string map_dir,
18991898
const SubgameSpec &gamespec, u16 port, std::string *address)
19001899
{
1901-
showOverlayMessage("Creating server...", 0, 25);
1900+
showOverlayMessage("Creating server...", 0, 5);
19021901

19031902
std::string bind_str = g_settings->get("bind_address");
19041903
Address bind_addr(0, 0, 0, 0, port);
@@ -1936,7 +1935,7 @@ bool Game::createClient(const std::string &playername,
19361935
const std::string &password, std::string *address, u16 port,
19371936
std::wstring *error_message)
19381937
{
1939-
showOverlayMessage("Creating client...", 0, 50);
1938+
showOverlayMessage("Creating client...", 0, 10);
19401939

19411940
draw_control = new MapDrawControl;
19421941
if (!draw_control)
@@ -2105,7 +2104,7 @@ bool Game::connectToServer(const std::string &playername,
21052104
const std::string &password, std::string *address, u16 port,
21062105
bool *connect_ok, bool *aborted)
21072106
{
2108-
showOverlayMessage("Resolving address...", 0, 75);
2107+
showOverlayMessage("Resolving address...", 0, 15);
21092108

21102109
Address connect_address(0, 0, 0, 0, port);
21112110

@@ -2196,7 +2195,7 @@ bool Game::connectToServer(const std::string &playername,
21962195
}
21972196

21982197
// Update status
2199-
showOverlayMessage("Connecting to server...", dtime, 100);
2198+
showOverlayMessage("Connecting to server...", dtime, 20);
22002199
}
22012200
} catch (con::PeerNotFoundException &e) {
22022201
// TODO: Should something be done here? At least an info/error
@@ -2251,16 +2250,16 @@ bool Game::getServerContent(bool *aborted)
22512250
}
22522251

22532252
// Display status
2254-
int progress = 0;
2253+
int progress = 25;
22552254

22562255
if (!client->itemdefReceived()) {
22572256
wchar_t *text = wgettext("Item definitions...");
2258-
progress = 0;
2257+
progress = 25;
22592258
draw_load_screen(text, device, guienv, dtime, progress);
22602259
delete[] text;
22612260
} else if (!client->nodedefReceived()) {
22622261
wchar_t *text = wgettext("Node definitions...");
2263-
progress = 25;
2262+
progress = 30;
22642263
draw_load_screen(text, device, guienv, dtime, progress);
22652264
delete[] text;
22662265
} else {
@@ -2281,7 +2280,7 @@ bool Game::getServerContent(bool *aborted)
22812280
message << " ( " << cur << cur_unit << " )";
22822281
}
22832282

2284-
progress = 50 + client->mediaReceiveProgress() * 50 + 0.5;
2283+
progress = 30 + client->mediaReceiveProgress() * 35 + 0.5;
22852284
draw_load_screen(narrow_to_wide(message.str().c_str()), device,
22862285
guienv, dtime, progress);
22872286
}

0 commit comments

Comments
 (0)
Please sign in to comment.