diff --git a/aoapplication.cpp b/aoapplication.cpp index cb98aef..d7c3e66 100644 --- a/aoapplication.cpp +++ b/aoapplication.cpp @@ -57,6 +57,7 @@ void AOApplication::destruct_lobby() } delete w_lobby; + w_lobby = nullptr; lobby_constructed = false; } @@ -86,6 +87,7 @@ void AOApplication::destruct_courtroom() } delete w_courtroom; + w_courtroom = nullptr; courtroom_constructed = false; } @@ -157,7 +159,7 @@ void AOApplication::ms_connect_finished(bool connected, bool will_retry) { if (will_retry) { - if (w_lobby != nullptr) + if (lobby_constructed) w_lobby->append_error("Error connecting to master server. Will try again in " + QString::number(net_manager->ms_reconnect_delay_ms / 1000.f) + " seconds."); } diff --git a/courtroom.cpp b/courtroom.cpp index c187e9c..2769f77 100644 --- a/courtroom.cpp +++ b/courtroom.cpp @@ -2585,6 +2585,32 @@ void Courtroom::set_hp_bar(int p_bar, int p_state) } } +void Courtroom::toggle_judge_buttons(bool is_on) +{ + if (is_on) + { + ui_witness_testimony->show(); + ui_cross_examination->show(); + ui_guilty->show(); + ui_not_guilty->show(); + ui_defense_minus->show(); + ui_defense_plus->show(); + ui_prosecution_minus->show(); + ui_prosecution_plus->show(); + } + else + { + ui_witness_testimony->hide(); + ui_cross_examination->hide(); + ui_guilty->hide(); + ui_not_guilty->hide(); + ui_defense_minus->hide(); + ui_defense_plus->hide(); + ui_prosecution_minus->hide(); + ui_prosecution_plus->hide(); + } +} + void Courtroom::mod_called(QString p_ip) { ui_server_chatlog->append(p_ip); @@ -2621,27 +2647,13 @@ void Courtroom::on_ooc_return_pressed() if (ooc_message.startsWith("/pos")) { - if (ooc_message.startsWith("/pos jud")) + if (ooc_message == "/pos jud") { - ui_witness_testimony->show(); - ui_cross_examination->show(); - ui_guilty->show(); - ui_not_guilty->show(); - ui_defense_minus->show(); - ui_defense_plus->show(); - ui_prosecution_minus->show(); - ui_prosecution_plus->show(); + toggle_judge_buttons(true); } else { - ui_witness_testimony->hide(); - ui_cross_examination->hide(); - ui_guilty->hide(); - ui_not_guilty->hide(); - ui_defense_minus->hide(); - ui_defense_plus->hide(); - ui_prosecution_minus->hide(); - ui_prosecution_plus->hide(); + toggle_judge_buttons(false); } } else if (ooc_message.startsWith("/login")) @@ -2891,6 +2903,8 @@ void Courtroom::on_pos_dropdown_changed(int p_index) if (p_index < 0 || p_index > 5) return; + toggle_judge_buttons(false); + QString f_pos; switch (p_index) @@ -2906,6 +2920,7 @@ void Courtroom::on_pos_dropdown_changed(int p_index) break; case 3: f_pos = "jud"; + toggle_judge_buttons(true); break; case 4: f_pos = "hld"; diff --git a/courtroom.h b/courtroom.h index 874b682..ec9f9ef 100644 --- a/courtroom.h +++ b/courtroom.h @@ -204,6 +204,9 @@ public: //state is an number between 0 and 10 inclusive void set_hp_bar(int p_bar, int p_state); + //Toggles the judge buttons, whether they should appear or not. + void toggle_judge_buttons(bool is_on); + void announce_case(QString title, bool def, bool pro, bool jud, bool jur, bool steno); void check_connection_received();