From e8f413c23669043e93e7ba1adb85911c55c457c5 Mon Sep 17 00:00:00 2001 From: David Skoland Date: Tue, 14 Feb 2017 09:58:05 +0100 Subject: [PATCH] fixed a crash relating to character selection --- courtroom.cpp | 23 ++++++++++++++++++++++- courtroom.h | 2 ++ packet_distribution.cpp | 12 ++++++------ 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/courtroom.cpp b/courtroom.cpp index 41945fb..4634442 100644 --- a/courtroom.cpp +++ b/courtroom.cpp @@ -354,8 +354,10 @@ void Courtroom::set_widgets() set_size_and_pos(ui_vp_showname, "showname"); QFont pt_8 = ui_vp_showname->font(); + QFont pt_9 = ui_vp_showname->font(); QFont pt_10 = ui_vp_showname->font(); pt_8.setPointSize(8); + pt_9.setPointSize(9); pt_10.setPointSize(10); ui_vp_showname->setFont(pt_8); ui_vp_showname->setStyleSheet("background-color: rgba(0, 0, 0, 0);" @@ -363,7 +365,11 @@ void Courtroom::set_widgets() set_size_and_pos(ui_vp_message, "message"); ui_vp_message->setReadOnly(true); + #if (defined (_WIN32) || defined (_WIN64)) ui_vp_message->setFont(pt_10); + #else + ui_vp_message->setFont(pt_9); + #endif ui_vp_message->setStyleSheet("background-color: rgba(0, 0, 0, 0);" "color: white"); @@ -384,7 +390,11 @@ void Courtroom::set_widgets() ui_vp_objection->combo_resize(ui_viewport->width(), ui_viewport->height()); set_size_and_pos(ui_ic_chatlog, "ic_chatlog"); + #if (defined (_WIN32) || defined (_WIN64)) ui_ic_chatlog->setFont(pt_10); + #else + ui_ic_chatlog->setFont(pt_9); + #endif ui_ic_chatlog->setStyleSheet("background-color: rgba(0, 0, 0, 0);" "color: white;"); @@ -554,7 +564,7 @@ void Courtroom::set_size_and_pos(QWidget *p_widget, QString p_identifier) void Courtroom::set_taken(int n_char, bool p_taken) { - if (n_char >= char_list.size()) + if (n_char > char_list.size()) { qDebug() << "W: set_taken attempted to set an index bigger than char_list size"; return; @@ -568,6 +578,17 @@ void Courtroom::set_taken(int n_char, bool p_taken) char_list.replace(n_char, f_char); } +void Courtroom::done_received() +{ + m_cid = -1; + + set_char_select_page(); + + set_mute_list(); + + show(); +} + void Courtroom::set_char_select_page() { ui_char_select_background->show(); diff --git a/courtroom.h b/courtroom.h index dabbcd7..aefbb24 100644 --- a/courtroom.h +++ b/courtroom.h @@ -46,6 +46,8 @@ public: void set_char_select_page(); void set_background(QString p_background); + void done_received(); + void set_mute_list(); //sets desk and bg based on pos in chatmessage diff --git a/packet_distribution.cpp b/packet_distribution.cpp index 239d079..3a9e786 100644 --- a/packet_distribution.cpp +++ b/packet_distribution.cpp @@ -344,6 +344,9 @@ void AOApplication::server_packet_received(AOPacket *p_packet) } else if (header == "CharsCheck") { + if (!courtroom_constructed) + goto end; + for (int n_char = 0 ; n_char < f_contents.size() ; ++n_char) { if (f_contents.at(n_char) == "-1") @@ -425,13 +428,10 @@ void AOApplication::server_packet_received(AOPacket *p_packet) if (!courtroom_constructed) goto end; - w_courtroom->set_char_select_page(); + if (lobby_constructed) + w_courtroom->append_ms_chatmessage(w_lobby->get_chatlog()); - w_courtroom->append_ms_chatmessage(w_lobby->get_chatlog()); - - w_courtroom->set_mute_list(); - - w_courtroom->show(); + w_courtroom->done_received(); destruct_lobby(); }