Loading progress fix on server join.

The display of the loading bar is now smoother, by placing the loading
value modification (and the according `set_loading_value()` call) inside
the for loops. It now accurately depicts the current loading progress.
This commit is contained in:
Cerapter 2018-10-26 19:11:29 +02:00
parent 3b1498366e
commit 91c8e04bde

View File

@ -272,6 +272,8 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
if (!courtroom_constructed) if (!courtroom_constructed)
goto end; goto end;
int total_loading_size = char_list_size + evidence_list_size + music_list_size;
for (int n_element = 0 ; n_element < f_contents.size() ; n_element += 2) for (int n_element = 0 ; n_element < f_contents.size() ; n_element += 2)
{ {
if (f_contents.at(n_element).toInt() != loaded_chars) if (f_contents.at(n_element).toInt() != loaded_chars)
@ -297,11 +299,10 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_lobby->set_loading_text("Loading chars:\n" + QString::number(loaded_chars) + "/" + QString::number(char_list_size)); w_lobby->set_loading_text("Loading chars:\n" + QString::number(loaded_chars) + "/" + QString::number(char_list_size));
w_courtroom->append_char(f_char); w_courtroom->append_char(f_char);
}
int total_loading_size = char_list_size + evidence_list_size + music_list_size; int loading_value = (loaded_chars / static_cast<double>(total_loading_size)) * 100;
int loading_value = (loaded_chars / static_cast<double>(total_loading_size)) * 100; w_lobby->set_loading_value(loading_value);
w_lobby->set_loading_value(loading_value); }
if (improved_loading_enabled) if (improved_loading_enabled)
send_server_packet(new AOPacket("RE#%")); send_server_packet(new AOPacket("RE#%"));
@ -355,6 +356,8 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
if (!courtroom_constructed) if (!courtroom_constructed)
goto end; goto end;
int total_loading_size = char_list_size + evidence_list_size + music_list_size;
for (int n_element = 0 ; n_element < f_contents.size() ; n_element += 2) for (int n_element = 0 ; n_element < f_contents.size() ; n_element += 2)
{ {
if (f_contents.at(n_element).toInt() != loaded_music) if (f_contents.at(n_element).toInt() != loaded_music)
@ -370,12 +373,11 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_lobby->set_loading_text("Loading music:\n" + QString::number(loaded_music) + "/" + QString::number(music_list_size)); w_lobby->set_loading_text("Loading music:\n" + QString::number(loaded_music) + "/" + QString::number(music_list_size));
w_courtroom->append_music(f_music); w_courtroom->append_music(f_music);
int loading_value = ((loaded_chars + loaded_evidence + loaded_music) / static_cast<double>(total_loading_size)) * 100;
w_lobby->set_loading_value(loading_value);
} }
int total_loading_size = char_list_size + evidence_list_size + music_list_size;
int loading_value = ((loaded_chars + loaded_evidence + loaded_music) / static_cast<double>(total_loading_size)) * 100;
w_lobby->set_loading_value(loading_value);
QString next_packet_number = QString::number(((loaded_music - 1) / 10) + 1); QString next_packet_number = QString::number(((loaded_music - 1) / 10) + 1);
send_server_packet(new AOPacket("AM#" + next_packet_number + "#%")); send_server_packet(new AOPacket("AM#" + next_packet_number + "#%"));
} }
@ -398,6 +400,8 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
if (!courtroom_constructed) if (!courtroom_constructed)
goto end; goto end;
int total_loading_size = char_list_size + evidence_list_size + music_list_size;
for (int n_element = 0 ; n_element < f_contents.size() ; ++n_element) for (int n_element = 0 ; n_element < f_contents.size() ; ++n_element)
{ {
QStringList sub_elements = f_contents.at(n_element).split("&"); QStringList sub_elements = f_contents.at(n_element).split("&");
@ -415,11 +419,10 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_lobby->set_loading_text("Loading chars:\n" + QString::number(loaded_chars) + "/" + QString::number(char_list_size)); w_lobby->set_loading_text("Loading chars:\n" + QString::number(loaded_chars) + "/" + QString::number(char_list_size));
w_courtroom->append_char(f_char); w_courtroom->append_char(f_char);
}
int total_loading_size = char_list_size + evidence_list_size + music_list_size; int loading_value = ((loaded_chars + loaded_evidence + loaded_music) / static_cast<double>(total_loading_size)) * 100;
int loading_value = (loaded_chars / static_cast<double>(total_loading_size)) * 100; w_lobby->set_loading_value(loading_value);
w_lobby->set_loading_value(loading_value); }
send_server_packet(new AOPacket("RM#%")); send_server_packet(new AOPacket("RM#%"));
} }
@ -428,6 +431,8 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
if (!courtroom_constructed) if (!courtroom_constructed)
goto end; goto end;
int total_loading_size = char_list_size + evidence_list_size + music_list_size;
for (int n_element = 0 ; n_element < f_contents.size() ; ++n_element) for (int n_element = 0 ; n_element < f_contents.size() ; ++n_element)
{ {
++loaded_music; ++loaded_music;
@ -435,11 +440,10 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_lobby->set_loading_text("Loading music:\n" + QString::number(loaded_music) + "/" + QString::number(music_list_size)); w_lobby->set_loading_text("Loading music:\n" + QString::number(loaded_music) + "/" + QString::number(music_list_size));
w_courtroom->append_music(f_contents.at(n_element)); w_courtroom->append_music(f_contents.at(n_element));
}
int total_loading_size = char_list_size + evidence_list_size + music_list_size; int loading_value = ((loaded_chars + loaded_evidence + loaded_music) / static_cast<double>(total_loading_size)) * 100;
int loading_value = (loaded_chars / static_cast<double>(total_loading_size)) * 100; w_lobby->set_loading_value(loading_value);
w_lobby->set_loading_value(loading_value); }
send_server_packet(new AOPacket("RD#%")); send_server_packet(new AOPacket("RD#%"));
} }