aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOmniTroid <davidskoland@gmail.com>2017-03-13 14:22:33 +0100
committerOmniTroid <davidskoland@gmail.com>2017-03-13 14:22:33 +0100
commit8acaf365b16ad7f261b28cf7ce2e66178a3d2820 (patch)
treedb34d6190337a741fa8a3ed8445ea339fe7a5294
parent96ad7c60f7fbb1e16716ec3f0b6e62bf056b9a02 (diff)
enabled flipping and fast loading for tsuserver
-rw-r--r--aoapplication.h2
-rw-r--r--courtroom.cpp6
-rw-r--r--lobby.cpp5
-rw-r--r--packet_distribution.cpp90
4 files changed, 75 insertions, 28 deletions
diff --git a/aoapplication.h b/aoapplication.h
index fc42fe76..de6a5614 100644
--- a/aoapplication.h
+++ b/aoapplication.h
@@ -130,7 +130,7 @@ public:
private:
const int RELEASE = 2;
const int MAJOR_VERSION = 2;
- const int MINOR_VERSION = 4;
+ const int MINOR_VERSION = 5;
QString user_theme = "default";
diff --git a/courtroom.cpp b/courtroom.cpp
index 5806c69c..25d71669 100644
--- a/courtroom.cpp
+++ b/courtroom.cpp
@@ -1141,6 +1141,12 @@ void Courtroom::handle_chatmessage_2()
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)
{
case 1: case 2: case 6:
diff --git a/lobby.cpp b/lobby.cpp
index b5b51667..3674ea97 100644
--- a/lobby.cpp
+++ b/lobby.cpp
@@ -235,7 +235,10 @@ void Lobby::on_connect_released()
{
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);
}
diff --git a/packet_distribution.cpp b/packet_distribution.cpp
index 956c4b3a..27a845f7 100644
--- a/packet_distribution.cpp
+++ b/packet_distribution.cpp
@@ -136,33 +136,51 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
}
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)
goto end;
s_pv = f_contents.at(0).toInt();
- QString server_version = f_contents.at(1);
+ QString server_software = f_contents.at(1);
+
+ 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_version == "v1312.150")
+ if (server_software == "v1312.150")
{
encryption_needed = false;
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;
- //improved loading disabled for now
- improved_loading_enabled = false;
}
- else
+ else if (server_software == "tsuserver3")
{
- encryption_needed = true;
- yellow_text_enabled = false;
- prezoom_enabled = false;
- flipping_enabled = false;
- custom_objection_enabled = false;
- improved_loading_enabled = false;
+ if (server_release >= 3)
+ {
+ yellow_text_enabled = true;
+ flipping_enabled = true;
+ custom_objection_enabled = true;
+ improved_loading_enabled = true;
+ }
}
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;
- //AO2 loading disabled for now
- //if(improved_loading_enabled)
- // f_packet = new AOPacket("RC#%");
- //else
+ if(improved_loading_enabled)
+ f_packet = new AOPacket("RC#%");
+ else
f_packet = new AOPacket("askchar2#%");
send_server_packet(f_packet);
@@ -354,8 +371,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_courtroom->set_taken(n_char, false);
}
}
- //AO2 loading is temporarily disabled as it needs to be revised altogether
- /*
+
else if (header == "SC")
{
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)
{
QStringList sub_elements = f_contents.at(n_element).split("&");
- if (sub_elements.size() < 2)
- break;
char_type f_char;
f_char.name = sub_elements.at(0);
- f_char.description = sub_elements.at(1);
- //temporary. the TC packet sets this properly
+ if (sub_elements.size() >= 2)
+ f_char.description = sub_elements.at(1);
+
+ //temporary. the CharsCheck packet sets this properly
f_char.taken = false;
++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;
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")
{
if (!courtroom_constructed)
@@ -422,6 +459,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
send_server_packet(new AOPacket("RM#%"));
}
*/
+
else if (header == "DONE")
{
if (!courtroom_constructed)