From 27a101d01083abaf880fcc336f83a0e4426d5127 Mon Sep 17 00:00:00 2001 From: sD Date: Fri, 6 Mar 2020 17:14:42 +0100 Subject: [PATCH 1/9] fix compiler warnings for unused vars --- src/aoblipplayer.cpp | 4 ++-- src/aocharmovie.cpp | 1 - src/aooptionsdialog.cpp | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/aoblipplayer.cpp b/src/aoblipplayer.cpp index 1c668ab..7929b73 100644 --- a/src/aoblipplayer.cpp +++ b/src/aoblipplayer.cpp @@ -23,7 +23,7 @@ void AOBlipPlayer::set_blips(QString p_sfx) void AOBlipPlayer::blip_tick() { - int f_cycle = m_cycle++; + m_cycle++; if (m_cycle == 5) m_cycle = 0; @@ -70,7 +70,7 @@ void AOBlipPlayer::set_blips(QString p_sfx) void AOBlipPlayer::blip_tick() { - int f_cycle = m_cycle++; + m_cycle++; if (m_cycle == 5) m_cycle = 0; diff --git a/src/aocharmovie.cpp b/src/aocharmovie.cpp index e84c493..dfd5355 100644 --- a/src/aocharmovie.cpp +++ b/src/aocharmovie.cpp @@ -208,7 +208,6 @@ void AOCharMovie::play_pre(QString p_char, QString p_emote, int duration) m_movie->stop(); m_movie->setFileName(gif_path); m_movie->jumpToFrame(0); - int real_duration = 0; play_once = true; play(p_char, p_emote, ""); } diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp index 37d4957..3749b65 100644 --- a/src/aooptionsdialog.cpp +++ b/src/aooptionsdialog.cpp @@ -244,7 +244,6 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi ui_audio_device_combobox = new QComboBox(ui_audio_widget); // Let's fill out the combobox with the available audio devices. Or don't if there is no audio - int a = 0; if (needs_default_audiodev()) { @@ -253,6 +252,7 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi } #ifdef BASSAUDIO BASS_DEVICEINFO info; + int a = 0; for (a = 0; BASS_GetDeviceInfo(a, &info); a++) { ui_audio_device_combobox->addItem(info.name); From 2701fab91fcc417ba8e219054d0fa3e109b2e64a Mon Sep 17 00:00:00 2001 From: sD Date: Fri, 6 Mar 2020 17:14:49 +0100 Subject: [PATCH 2/9] indentation --- src/networkmanager.cpp | 4 ++-- src/packet_distribution.cpp | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/networkmanager.cpp b/src/networkmanager.cpp index a9810d4..b029eab 100644 --- a/src/networkmanager.cpp +++ b/src/networkmanager.cpp @@ -134,9 +134,9 @@ void NetworkManager::on_srv_lookup() for (const QDnsServiceRecord &record : srv_records) { -#ifdef DEBUG_NETWORK + #ifdef DEBUG_NETWORK qDebug() << "Connecting to " << record.target() << ":" << record.port(); -#endif + #endif ms_socket->connectToHost(record.target(), record.port()); QTime timer; timer.start(); diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index d1c51bd..5e17542 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -564,11 +564,11 @@ void AOApplication::server_packet_received(AOPacket *p_packet) { if (courtroom_constructed) w_courtroom->reset_music_list(); - for (int n_element = 0 ; n_element < f_contents.size() ; ++n_element) - { - w_courtroom->append_music(f_contents.at(n_element)); - } - w_courtroom->list_music(); + for (int n_element = 0 ; n_element < f_contents.size() ; ++n_element) + { + w_courtroom->append_music(f_contents.at(n_element)); + } + w_courtroom->list_music(); } else if (header == "BN") { From 80bf49ee90e996c9f356d438231f941bad118b52 Mon Sep 17 00:00:00 2001 From: sD Date: Fri, 6 Mar 2020 22:14:59 +0100 Subject: [PATCH 3/9] ok bass --- src/aoblipplayer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/aoblipplayer.cpp b/src/aoblipplayer.cpp index 7929b73..9b548c3 100644 --- a/src/aoblipplayer.cpp +++ b/src/aoblipplayer.cpp @@ -23,7 +23,7 @@ void AOBlipPlayer::set_blips(QString p_sfx) void AOBlipPlayer::blip_tick() { - m_cycle++; + int f_cycle = m_cycle++; if (m_cycle == 5) m_cycle = 0; From cc1afbe30ec154a146ebb663da1319fe04cd4a40 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 7 Mar 2020 01:49:54 -0600 Subject: [PATCH 4/9] add support for 2.4-style chatboxes --- src/courtroom.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/courtroom.cpp b/src/courtroom.cpp index b9686e7..3d85c30 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -1655,7 +1655,21 @@ void Courtroom::handle_chatmessage_2() ui_vp_chatbox->set_image("chatmed.png"); else { - QString chatbox_path = ao_app->get_base_path() + "misc/" + chatbox + "/chatbox.png"; + QString chatbox_path; + QString misc_path = ao_app->get_base_path() + "misc/" + chatbox + "/chatbox.png"; + // support for 2.4 legacy chatboxes + QString legacy_path = ao_app->get_base_path() + "misc/" + chatbox + ".png"; + if (file_exists(misc_path)) + { + chatbox_path = misc_path; + } + else if (file_exists(legacy_path)) + chatbox_path = legacy_path; + else + { + QString hnngh_colonel = ao_app->get_theme_path("chatmed.png"); + chatbox_path = hnngh_colonel; + } ui_vp_chatbox->set_image_from_path(chatbox_path); } From 369cc298e408b33fe57c9d4ff72cb8a691f7550e Mon Sep 17 00:00:00 2001 From: sD Date: Sat, 7 Mar 2020 21:45:27 +0100 Subject: [PATCH 5/9] rename fallback chatbox --- src/courtroom.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 3d85c30..805c8cc 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -1667,8 +1667,8 @@ void Courtroom::handle_chatmessage_2() chatbox_path = legacy_path; else { - QString hnngh_colonel = ao_app->get_theme_path("chatmed.png"); - chatbox_path = hnngh_colonel; + QString default_chatbox_path = ao_app->get_theme_path("chatmed.png"); + chatbox_path = default_chatbox_path; } ui_vp_chatbox->set_image_from_path(chatbox_path); } From a2f1a79bc948effbfd76c882f81479f519806007 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sun, 8 Mar 2020 05:44:49 -0500 Subject: [PATCH 6/9] add theme support --- include/courtroom.h | 12 +++++ src/courtroom.cpp | 117 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 117 insertions(+), 12 deletions(-) diff --git a/include/courtroom.h b/include/courtroom.h index 41e88e7..30c3b94 100644 --- a/include/courtroom.h +++ b/include/courtroom.h @@ -209,6 +209,9 @@ public: void append_ms_chatmessage(QString f_name, QString f_message); void append_server_chatmessage(QString p_name, QString p_message, QString p_colour); + //check whether or not current theme has images for buttons with fallback text + void detect_fallback_text(); + //these functions handle chatmessages sequentially. //The process itself is very convoluted and merits separate documentation //But the general idea is objection animation->pre animation->talking->idle @@ -412,6 +415,15 @@ private: //is set to true if the bg folder contains defensedesk.png, prosecutiondesk.png and stand.png bool is_ao2_bg = false; + // whether or not to use text for buttons instead of images, true is text + bool change_char_fallback = true; + bool reload_theme_fallback = true; + bool settings_fallback = true; + bool call_mod_fallback = true; + bool casing_fallback = true; + bool amswap_fallback = true; + bool ooc_toggle_fallback = true; + //whether the ooc chat is server or master chat, true is server bool server_ooc = true; diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 805c8cc..39f949b 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -367,6 +367,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow() set_widgets(); set_char_select(); + detect_fallback_text(); } void Courtroom::set_mute_list() @@ -609,7 +610,15 @@ void Courtroom::set_widgets() ui_take_that->set_image("takethat.png"); set_size_and_pos(ui_ooc_toggle, "ooc_toggle"); - ui_ooc_toggle->setText(tr("Server")); + if (ooc_toggle_fallback) + { + ui_ooc_toggle->setText(tr("Server")); + } + else + { + ui_ooc_toggle->set_image("ooc_toggle_server.png"); + ui_ooc_toggle->setText(tr("")); + } set_size_and_pos(ui_witness_testimony, "witness_testimony"); ui_witness_testimony->set_image("witnesstestimony.png"); @@ -622,22 +631,70 @@ void Courtroom::set_widgets() ui_not_guilty->set_image("notguilty.png"); set_size_and_pos(ui_change_character, "change_character"); - ui_change_character->setText(tr("Change character")); + if (change_char_fallback) + { + ui_change_character->setText(tr("Change character")); + } + else + { + ui_change_character->set_image("change_character.png"); + ui_change_character->setText(tr("")); // set text to empty otherwise it just sits there + } set_size_and_pos(ui_reload_theme, "reload_theme"); - ui_reload_theme->setText(tr("Reload theme")); + if (reload_theme_fallback) + { + ui_reload_theme->setText(tr("Reload theme")); + } + else + { + ui_reload_theme->set_image("reload_theme.png"); + ui_reload_theme->setText(tr("")); + } set_size_and_pos(ui_call_mod, "call_mod"); - ui_call_mod->setText(tr("Call mod")); + if (call_mod_fallback) + { + ui_call_mod->setText(tr("Call mod")); + } + else + { + ui_call_mod->set_image("call_mod.png"); + ui_call_mod->setText(tr("")); + } set_size_and_pos(ui_settings, "settings"); - ui_settings->setText(tr("Settings")); + if (settings_fallback) + { + ui_settings->setText(tr("Settings")); + } + else + { + ui_settings->set_image("settings.png"); + ui_settings->setText(tr("")); + } set_size_and_pos(ui_announce_casing, "casing_button"); - ui_announce_casing->setText(tr("Casing")); - + if (casing_fallback) + { + ui_announce_casing->setText(tr("Casing")); + } + else + { + ui_announce_casing->set_image("casing.png"); + ui_announce_casing->setText(tr("")); + } + set_size_and_pos(ui_switch_area_music, "switch_area_music"); - ui_switch_area_music->setText(tr("A/M")); + if (amswap_fallback) + { + ui_switch_area_music->setText(tr("A/M")); + } + else + { + ui_switch_area_music->set_image("amswap.png"); + ui_switch_area_music->setText(tr("")); + } set_size_and_pos(ui_pre, "pre"); ui_pre->setText(tr("Preanim")); @@ -1131,6 +1188,32 @@ void Courtroom::append_server_chatmessage(QString p_name, QString p_message, QSt ui_server_chatlog->append_chatmessage(p_name, p_message, colour); } +void Courtroom::detect_fallback_text() +{ + QString change_char_path = ao_app->get_theme_path("change_character.png"); + QString reload_theme_path = ao_app->get_theme_path("reload_theme.png"); + QString settings_path = ao_app->get_theme_path("settings.png"); + QString call_mod_path = ao_app->get_theme_path("call_mod.png"); + QString casing_path = ao_app->get_theme_path("casing.png"); + QString amswap_path = ao_app->get_theme_path("amswap.png"); + QString ooc_toggle_path = ao_app->get_theme_path("ooc_toggle_ms.png"); + + if (file_exists(change_char_path)) {change_char_fallback = false;} + else {change_char_fallback = true;} + if (file_exists(reload_theme_path)) {reload_theme_fallback = false;} + else {reload_theme_fallback = true;} + if (file_exists(settings_path)) {settings_fallback = false;} + else {settings_fallback = true;} + if (file_exists(call_mod_path)) {call_mod_fallback = false;} + else {call_mod_fallback = true;} + if (file_exists(casing_path)) {casing_fallback = false;} + else {casing_fallback = true;} + if (file_exists(amswap_path)) {amswap_fallback = false;} + else {amswap_fallback = true;} + if (file_exists(ooc_toggle_path)) {ooc_toggle_fallback = false;} + else {ooc_toggle_fallback = true;} +} + class AOFrameThreadingPre : public QRunnable { public: @@ -3314,16 +3397,24 @@ void Courtroom::on_ooc_toggle_clicked() { ui_ms_chatlog->show(); ui_server_chatlog->hide(); - ui_ooc_toggle->setText(tr("Master")); - + ui_ooc_toggle->setText(tr("")); + ui_ooc_toggle->set_image("ooc_toggle_ms.png"); + if (ooc_toggle_fallback) + { + ui_ooc_toggle->setText(tr("Master")); + } server_ooc = false; } else { ui_ms_chatlog->hide(); ui_server_chatlog->show(); - ui_ooc_toggle->setText(tr("Server")); - + ui_ooc_toggle->setText(tr("")); + ui_ooc_toggle->set_image("ooc_toggle_server.png"); + if (ooc_toggle_fallback) + { + ui_ooc_toggle->setText(tr("Server")); + } server_ooc = true; } } @@ -3764,6 +3855,8 @@ void Courtroom::on_reload_theme_clicked() //to update status on the background set_background(current_background); + //to update fallback text bools + detect_fallback_text(); enter_courtroom(m_cid); anim_state = 4; From ba03fb03e238b87dac4720a59bf961a4a13fd869 Mon Sep 17 00:00:00 2001 From: sD Date: Fri, 13 Mar 2020 16:22:41 +0100 Subject: [PATCH 7/9] musictime is a bad name for this --- src/packet_distribution.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index 5e17542..da59c20 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -411,7 +411,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) if (!courtroom_constructed) goto end; - bool musics_time = false; + bool musiclist_start = false; int areas = 0; for (int n_element = 0 ; n_element < f_contents.size() ; n_element += 2) @@ -428,7 +428,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) w_lobby->set_loading_text(tr("Loading music:\n%1/%2").arg(QString::number(loaded_music)).arg(QString::number(music_list_size))); - if (musics_time) + if (musiclist_start) { w_courtroom->append_music(f_music); } @@ -440,7 +440,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) f_music.endsWith(".ogg") || f_music.endsWith(".opus")) { - musics_time = true; + musiclist_start = true; areas--; //w_courtroom->fix_last_area(); w_courtroom->append_music(f_music); @@ -514,22 +514,22 @@ void AOApplication::server_packet_received(AOPacket *p_packet) if (!courtroom_constructed) goto end; - bool musics_time = false; + bool musiclist_start = false; area_count = 0; for (int n_element = 0 ; n_element < f_contents.size() ; ++n_element) { - if (!musics_time && (f_contents.at(n_element).startsWith("==") || + if (!musiclist_start && (f_contents.at(n_element).startsWith("==") || f_contents.at(n_element).endsWith(".wav") || f_contents.at(n_element).endsWith(".mp3") || f_contents.at(n_element).endsWith(".mp4") || f_contents.at(n_element).endsWith(".ogg") || f_contents.at(n_element).endsWith(".opus"))) { - musics_time = true; + musiclist_start = true; continue; } - AOPacketLoadMusicThreading *music_load = new AOPacketLoadMusicThreading(this, f_contents.at(n_element), musics_time); + AOPacketLoadMusicThreading *music_load = new AOPacketLoadMusicThreading(this, f_contents.at(n_element), musiclist_start); QThreadPool::globalInstance()->start(music_load); ++loaded_music; int total_loading_size = char_list_size * 2 + evidence_list_size + music_list_size; From 1b0930b977b5e7ee1b7bd1c7eeb9625702d928e3 Mon Sep 17 00:00:00 2001 From: sD Date: Fri, 13 Mar 2020 16:29:01 +0100 Subject: [PATCH 8/9] move area list detection algorithm into a seperate function --- include/aoapplication.h | 2 ++ src/packet_distribution.cpp | 23 ++++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/include/aoapplication.h b/include/aoapplication.h index e4f2ee6..03aa01a 100644 --- a/include/aoapplication.h +++ b/include/aoapplication.h @@ -58,6 +58,8 @@ public: void construct_courtroom(); void destruct_courtroom(); + bool is_music_track(QString trackname); + void ms_packet_received(AOPacket *p_packet); void server_packet_received(AOPacket *p_packet); diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index da59c20..9f072ae 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -151,6 +151,16 @@ void AOApplication::ms_packet_received(AOPacket *p_packet) delete p_packet; } +bool AOApplication::is_music_track(QString trackname) +{ + return (trackname.startsWith("==") || + trackname.endsWith(".wav") || + trackname.endsWith(".mp3") || + trackname.endsWith(".mp4") || + trackname.endsWith(".ogg") || + trackname.endsWith(".opus")); +} + void AOApplication::server_packet_received(AOPacket *p_packet) { p_packet->net_decode(); @@ -434,11 +444,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) } else { - if (f_music.endsWith(".wav") || - f_music.endsWith(".mp3") || - f_music.endsWith(".mp4") || - f_music.endsWith(".ogg") || - f_music.endsWith(".opus")) + if (is_music_track(f_music)) { musiclist_start = true; areas--; @@ -519,12 +525,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) for (int n_element = 0 ; n_element < f_contents.size() ; ++n_element) { - if (!musiclist_start && (f_contents.at(n_element).startsWith("==") || - f_contents.at(n_element).endsWith(".wav") || - f_contents.at(n_element).endsWith(".mp3") || - f_contents.at(n_element).endsWith(".mp4") || - f_contents.at(n_element).endsWith(".ogg") || - f_contents.at(n_element).endsWith(".opus"))) + if (!musiclist_start && is_music_track(f_contents.at(n_element))) { musiclist_start = true; continue; From 64f18ee632c48bbcb961b4eadd886a7cc42313b7 Mon Sep 17 00:00:00 2001 From: in1tiate <32779090+in1tiate@users.noreply.github.com> Date: Sat, 14 Mar 2020 23:00:50 -0500 Subject: [PATCH 9/9] add placeholder to OOC chat message box --- src/courtroom.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 39f949b..7f5d911 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -150,6 +150,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow() ui_ooc_chat_message = new QLineEdit(this); ui_ooc_chat_message->setFrame(false); + ui_ooc_chat_message->setPlaceholderText(tr("OOC Message")); ui_ooc_chat_name = new QLineEdit(this); ui_ooc_chat_name->setFrame(false);