diff options
Diffstat (limited to 'packet_distribution.cpp')
| -rw-r--r-- | packet_distribution.cpp | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/packet_distribution.cpp b/packet_distribution.cpp index 5250dfa..391f2e2 100644 --- a/packet_distribution.cpp +++ b/packet_distribution.cpp @@ -99,7 +99,12 @@ void AOApplication::server_packet_received(AOPacket *p_packet) if (f_contents.size() < 1) return; - //T0D0: save server version here, somehow(it's in the HI# packet usually) + s_pv = f_contents.at(0).toInt(); + + if (f_contents.size() < 2) + return; + + //T0D0: store server version } else if (header == "CT") { @@ -121,6 +126,37 @@ void AOApplication::server_packet_received(AOPacket *p_packet) w_lobby->set_player_count(f_contents.at(0).toInt(), f_contents.at(1).toInt()); } + else if (header == "SI") + { + if (f_contents.size() > 3) + return; + + char_list_size = f_contents.at(0).toInt(); + loaded_chars = 0; + evidence_list_size = f_contents.at(1).toInt(); + loaded_evidence = 0; + music_list_size = f_contents.at(2).toInt(); + loaded_music = 0; + + destruct_courtroom(); + + construct_courtroom(); + + AOPacket *f_packet = new AOPacket("askchar2#%"); + send_server_packet(f_packet); + delete f_packet; + } + else if (header == "CI") + { + if (!courtroom_constructed) + return; + AOPacket *f_packet = new AOPacket("AN#1#%"); + send_server_packet(f_packet); + delete f_packet; + + //w_courtroom->append_char(); + + } } void AOApplication::send_ms_packet(AOPacket *p_packet) @@ -142,7 +178,7 @@ void AOApplication::send_server_packet(AOPacket *p_packet) if (encryption_needed) { - qDebug() << "S:(e)" << f_packet; + qDebug() << "S(e):" << f_packet; p_packet->encrypt_header(s_decryptor); f_packet = p_packet->to_string(); |
