From 0571ac694a3411f218b80ea4f77451dab3f78cf3 Mon Sep 17 00:00:00 2001 From: Dev <90421310+EstatoDeviato@users.noreply.github.com> Date: Tue, 28 May 2024 16:09:24 +0200 Subject: [PATCH 1/5] Update ms maximum --- include/courtroom.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/courtroom.h b/include/courtroom.h index a8942efe2..ae19423d5 100644 --- a/include/courtroom.h +++ b/include/courtroom.h @@ -561,7 +561,7 @@ class Courtroom : public QMainWindow { // Minumum and maximum number of parameters in the MS packet static const int MS_MINIMUM = 15; - static const int MS_MAXIMUM = 35; + static const int MS_MAXIMUM = 40; QString m_chatmessage[MS_MAXIMUM]; QString previous_ic_message = ""; From d083e647eff8b8b8b0cf45fd600d827f04a39fd6 Mon Sep 17 00:00:00 2001 From: Dev <90421310+EstatoDeviato@users.noreply.github.com> Date: Sun, 9 Jun 2024 10:26:53 +0200 Subject: [PATCH 2/5] Update courtroom.h --- include/courtroom.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/courtroom.h b/include/courtroom.h index ae19423d5..a8942efe2 100644 --- a/include/courtroom.h +++ b/include/courtroom.h @@ -561,7 +561,7 @@ class Courtroom : public QMainWindow { // Minumum and maximum number of parameters in the MS packet static const int MS_MINIMUM = 15; - static const int MS_MAXIMUM = 40; + static const int MS_MAXIMUM = 35; QString m_chatmessage[MS_MAXIMUM]; QString previous_ic_message = ""; From 4ccfcac41baac090031e5160d788822742b3ca7c Mon Sep 17 00:00:00 2001 From: Dev <90421310+EstatoDeviato@users.noreply.github.com> Date: Wed, 24 Jul 2024 19:11:32 +0200 Subject: [PATCH 3/5] add ui_area_message and ui_area_message_display --- include/courtroom.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/courtroom.h b/include/courtroom.h index b6ec95147..7368d2657 100644 --- a/include/courtroom.h +++ b/include/courtroom.h @@ -775,6 +775,9 @@ class Courtroom : public QMainWindow { ScrollText *ui_music_name; InterfaceLayer *ui_music_display; + ScrollText *ui_area_message; + InterfaceLayer *ui_area_message_display; + StickerLayer *ui_vp_sticker; static const int max_clocks = 5; @@ -958,6 +961,7 @@ public slots: void on_reload_theme_clicked(); void update_ui_music_name(); + void update_ui_area_message(QString text); void onTextChanged(); From e5c8095df99f089ef5d351a7b1fed74a7a1d7676 Mon Sep 17 00:00:00 2001 From: Dev <90421310+EstatoDeviato@users.noreply.github.com> Date: Wed, 24 Jul 2024 19:14:02 +0200 Subject: [PATCH 4/5] add AD packet to show and hide area slide message --- src/packet_distribution.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index 22c9b0232..cd7754d7d 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -709,6 +709,12 @@ void AOApplication::server_packet_received(AOPacket *p_packet) w_courtroom->format_clock(id, time_format, timer_value); } } + else if (header == "AD") { + if (!courtroom_constructed) { + goto end; + } + w_courtroom->update_ui_area_message(f_contents.at(0)); + } else if (header == "CHECK") { if (!courtroom_constructed) goto end; From ae9e63659f6302e9575f77cf4581f12d8057af46 Mon Sep 17 00:00:00 2001 From: Dev <90421310+EstatoDeviato@users.noreply.github.com> Date: Wed, 24 Jul 2024 19:30:31 +0200 Subject: [PATCH 5/5] add area slide message --- src/courtroom.cpp | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 2a2b46f37..ea7ebeb6f 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -205,6 +205,18 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow() ui_music_name->setAttribute(Qt::WA_TransparentForMouseEvents); ui_music_name->setObjectName("ui_music_name"); + ui_area_message_display = new InterfaceLayer(this, ao_app); + ui_area_message_display->set_play_once(false); + ui_area_message_display->set_cull_image(false); + ui_area_message_display->transform_mode = Qt::SmoothTransformation; + ui_area_message_display->setAttribute(Qt::WA_TransparentForMouseEvents); + ui_area_message_display->setObjectName("ui_area_message_display"); + + ui_area_message = new ScrollText(ui_area_message_display); + ui_area_message->setText(tr("None")); + ui_area_message->setAttribute(Qt::WA_TransparentForMouseEvents); + ui_area_message->setObjectName("ui_area_message"); + for (int i = 0; i < max_clocks; i++) { ui_clock[i] = new AOClockLabel(this); ui_clock[i]->setAttribute(Qt::WA_TransparentForMouseEvents); @@ -1158,6 +1170,25 @@ void Courtroom::set_widgets() } ui_music_display->load_image("music_display", ""); + set_size_and_pos(ui_area_message, "area_message"); + + ui_area_message_display->move(0, 0); + pos_size_type design_ini_res = + ao_app->get_element_dimensions("area_message_display", "courtroom_design.ini"); + + if (design_ini_res.width < 0 || design_ini_res.height < 0) { + qWarning() << "could not find \"area_display\" in courtroom_design.ini"; + } + else { + ui_area_message_display->move(design_ini_res.x, + Options::getInstance().menuBarLocked() + ? design_ini_res.y + menu_bar->height() + : design_ini_res.y); + ui_area_message_display->combo_resize(design_ini_res.width, design_ini_res.height); + } + ui_area_message_display->load_image("area_message_display", ""); + ui_area_message_display->hide(); + set_size_and_pos(ui_rp_clock, "rp_clock"); for (int i = 0; i < max_clocks; i++) { @@ -1491,6 +1522,7 @@ void Courtroom::set_fonts(QString p_char) set_font(ui_music_list, "", "music_list", p_char); set_font(ui_area_list, "", "area_list", p_char); set_font(ui_music_name, "", "music_name", p_char); + set_font(ui_area_message, "", "area_message", p_char); for (int i = 0; i < max_clocks; i++) set_font(ui_clock[i], "", "clock_" + QString::number(i), p_char); @@ -1602,7 +1634,7 @@ void Courtroom::set_size_and_pos(QWidget *p_widget, QString p_identifier, QStrin QSet unaffected = {"message", "showname", "back_to_lobby", "char_buttons", // A list of widgets that shouldn't be affected "char_select_left", "char_select_right", "spectator", "char_password", // by the menu bar repositioning "char_list", "char_taken", "char_passworded", "char_search", - "left_evidence_icon", "right_evidence_icon", "music_name"}; + "left_evidence_icon", "right_evidence_icon", "music_name", "area_message"}; QSet affect = {"evidence_background", "evidence_button"}; // Relative widgets that SHOULD be affected // Is the menu bar locked? If so, move the widgets a few pixels down to give it space @@ -4654,6 +4686,17 @@ void Courtroom::update_ui_music_name() ui_music_name->setText(result); } +void Courtroom::update_ui_area_message(QString text) +{ + if (text.isEmpty()) { + ui_area_message_display->hide(); + } + else { + ui_area_message_display->show(); + ui_area_message->setText(text); + } +} + void Courtroom::handle_wtce(QString p_wtce, int variant) { //QString sfx_file = "courtroom_sounds.ini";