enabled flipping and fast loading for tsuserver

This commit is contained in:
OmniTroid 2017-03-13 14:22:33 +01:00
parent 96ad7c60f7
commit 8acaf365b1
4 changed files with 75 additions and 28 deletions

View File

@ -130,7 +130,7 @@ public:
private: private:
const int RELEASE = 2; const int RELEASE = 2;
const int MAJOR_VERSION = 2; const int MAJOR_VERSION = 2;
const int MINOR_VERSION = 4; const int MINOR_VERSION = 5;
QString user_theme = "default"; QString user_theme = "default";

View File

@ -1141,6 +1141,12 @@ void Courtroom::handle_chatmessage_2()
int emote_mod = m_chatmessage[EMOTE_MOD].toInt(); int emote_mod = m_chatmessage[EMOTE_MOD].toInt();
if (ao_app->flipping_enabled && m_chatmessage[FLIP].toInt() == 1)
ui_vp_player_char->set_flipped(true);
else
ui_vp_player_char->set_flipped(false);
switch (emote_mod) switch (emote_mod)
{ {
case 1: case 2: case 6: case 1: case 2: case 6:

View File

@ -235,7 +235,10 @@ void Lobby::on_connect_released()
{ {
ui_connect->set_image("connect.png"); ui_connect->set_image("connect.png");
AOPacket *f_packet = new AOPacket("askchaa#%"); AOPacket *f_packet;
f_packet = new AOPacket("askchaa#%");
ao_app->send_server_packet(f_packet); ao_app->send_server_packet(f_packet);
} }

View File

@ -136,33 +136,51 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
} }
else if (header == "ID") else if (header == "ID")
{ {
//default(legacy) values
encryption_needed = true;
yellow_text_enabled = false;
prezoom_enabled = false;
flipping_enabled = false;
custom_objection_enabled = false;
improved_loading_enabled = false;
if (f_contents.size() < 2) if (f_contents.size() < 2)
goto end; goto end;
s_pv = f_contents.at(0).toInt(); s_pv = f_contents.at(0).toInt();
QString server_version = f_contents.at(1); QString server_software = f_contents.at(1);
if (server_version == "v1312.150") int server_release = 0;
int server_major = 0;
int server_minor = 0;
if (f_contents.size() >= 3)
{
QStringList version_list = f_contents.at(2).split(".");
if (version_list.size() >= 3)
{
server_release = version_list.at(0).toInt();
server_major = version_list.at(1).toInt();
server_minor = version_list.at(2).toInt();
}
}
if (server_software == "v1312.150")
{ {
encryption_needed = false; encryption_needed = false;
yellow_text_enabled = true; yellow_text_enabled = true;
//prezoom still needs some tweaking to work
prezoom_enabled = false;
//same goes for flipping, sadly
flipping_enabled = false;
custom_objection_enabled = true; custom_objection_enabled = true;
//improved loading disabled for now
improved_loading_enabled = false;
} }
else else if (server_software == "tsuserver3")
{ {
encryption_needed = true; if (server_release >= 3)
yellow_text_enabled = false; {
prezoom_enabled = false; yellow_text_enabled = true;
flipping_enabled = false; flipping_enabled = true;
custom_objection_enabled = false; custom_objection_enabled = true;
improved_loading_enabled = false; improved_loading_enabled = true;
}
} }
send_server_packet(new AOPacket("ID#AO2#" + get_version_string() + "#%")); send_server_packet(new AOPacket("ID#AO2#" + get_version_string() + "#%"));
@ -221,10 +239,9 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
AOPacket *f_packet; AOPacket *f_packet;
//AO2 loading disabled for now if(improved_loading_enabled)
//if(improved_loading_enabled) f_packet = new AOPacket("RC#%");
// f_packet = new AOPacket("RC#%"); else
//else
f_packet = new AOPacket("askchar2#%"); f_packet = new AOPacket("askchar2#%");
send_server_packet(f_packet); send_server_packet(f_packet);
@ -354,8 +371,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_courtroom->set_taken(n_char, false); w_courtroom->set_taken(n_char, false);
} }
} }
//AO2 loading is temporarily disabled as it needs to be revised altogether
/*
else if (header == "SC") else if (header == "SC")
{ {
if (!courtroom_constructed) if (!courtroom_constructed)
@ -364,13 +380,13 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
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("&");
if (sub_elements.size() < 2)
break;
char_type f_char; char_type f_char;
f_char.name = sub_elements.at(0); f_char.name = sub_elements.at(0);
f_char.description = sub_elements.at(1); if (sub_elements.size() >= 2)
//temporary. the TC packet sets this properly f_char.description = sub_elements.at(1);
//temporary. the CharsCheck packet sets this properly
f_char.taken = false; f_char.taken = false;
++loaded_chars; ++loaded_chars;
@ -384,8 +400,29 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
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);
send_server_packet(new AOPacket("RE#%")); send_server_packet(new AOPacket("RM#%"));
} }
else if (header == "SM")
{
if (!courtroom_constructed)
goto end;
for (int n_element = 0 ; n_element < f_contents.size() ; ++n_element)
{
++loaded_music;
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));
}
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;
w_lobby->set_loading_value(loading_value);
send_server_packet(new AOPacket("RD#%"));
}
/* obsolete
else if (header == "SE") else if (header == "SE")
{ {
if (!courtroom_constructed) if (!courtroom_constructed)
@ -422,6 +459,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
send_server_packet(new AOPacket("RM#%")); send_server_packet(new AOPacket("RM#%"));
} }
*/ */
else if (header == "DONE") else if (header == "DONE")
{ {
if (!courtroom_constructed) if (!courtroom_constructed)