From fc984fcfe2a4416274810de81a8f36fe77b0dba9 Mon Sep 17 00:00:00 2001 From: iamgoofball Date: Fri, 1 Feb 2019 16:28:14 -0800 Subject: [PATCH] bugfixes and shit --- base/sounds/general/case_announced.ogg | Bin 0 -> 15790 bytes base/themes/default/courtroom_sounds.ini | 3 ++- include/aoapplication.h | 3 +++ include/aomusicplayer.h | 3 --- include/aooptionsdialog.h | 2 ++ include/aosfxplayer.h | 3 --- src/aomusicplayer.cpp | 31 +++++------------------ src/aooptionsdialog.cpp | 16 ++++++++++-- src/aosfxplayer.cpp | 26 +++++-------------- src/courtroom.cpp | 13 +++++----- src/text_file_functions.cpp | 6 +++++ 11 files changed, 46 insertions(+), 60 deletions(-) create mode 100644 base/sounds/general/case_announced.ogg diff --git a/base/sounds/general/case_announced.ogg b/base/sounds/general/case_announced.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1e9c3d4e6c5b840dcd19b50b9d933610e41e5103 GIT binary patch literal 15790 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 literal 0 HcmV?d00001 diff --git a/base/themes/default/courtroom_sounds.ini b/base/themes/default/courtroom_sounds.ini index 050576e..eba07a6 100644 --- a/base/themes/default/courtroom_sounds.ini +++ b/base/themes/default/courtroom_sounds.ini @@ -5,4 +5,5 @@ evidence_present = sfx-evidenceshoop.wav word_call = sfx-gaspen-yeah!.wav mod_call = adminhelp.ogg not_guilty = sfx-notguilty.wav -guilty = sfx-guilty.wav \ No newline at end of file +guilty = sfx-guilty.wav +case_call = case_announced.ogg \ No newline at end of file diff --git a/include/aoapplication.h b/include/aoapplication.h index 095dafd..19eb474 100644 --- a/include/aoapplication.h +++ b/include/aoapplication.h @@ -323,6 +323,9 @@ public: // Same for CM. bool get_casing_cm_enabled(); + // Same for witnesses. + bool get_casing_wit_enabled(); + // Get the message for the CM for casing alerts. QString get_casing_can_host_cases(); diff --git a/include/aomusicplayer.h b/include/aomusicplayer.h index 24ea0c5..a88cb79 100644 --- a/include/aomusicplayer.h +++ b/include/aomusicplayer.h @@ -26,14 +26,11 @@ public: private: QWidget *m_parent; AOApplication *ao_app; - QTimer *music_loop_timer; int m_volume = 0; QString f_path; HSTREAM m_stream; -private slots: - void restart_loop(); }; #endif // AOMUSICPLAYER_H diff --git a/include/aooptionsdialog.h b/include/aooptionsdialog.h index 175b804..53bd309 100644 --- a/include/aooptionsdialog.h +++ b/include/aooptionsdialog.h @@ -106,6 +106,8 @@ private: QCheckBox *ui_casing_steno_cb; QLabel *ui_casing_cm_lbl; QCheckBox *ui_casing_cm_cb; + QLabel *ui_casing_wit_lbl; + QCheckBox *ui_casing_wit_cb; QLabel *ui_casing_cm_cases_lbl; QLineEdit *ui_casing_cm_cases_textbox; diff --git a/include/aosfxplayer.h b/include/aosfxplayer.h index 5c6f108..39bea0d 100644 --- a/include/aosfxplayer.h +++ b/include/aosfxplayer.h @@ -22,13 +22,10 @@ public: private: QWidget *m_parent; AOApplication *ao_app; - QTimer *sfx_loop_timer; int m_volume = 0; bool looping_sfx = false; HSTREAM m_stream; -private slots: - void restart_loop(); }; #endif // AOSFXPLAYER_H diff --git a/src/aomusicplayer.cpp b/src/aomusicplayer.cpp index fca3c16..7fcb277 100644 --- a/src/aomusicplayer.cpp +++ b/src/aomusicplayer.cpp @@ -5,9 +5,6 @@ AOMusicPlayer::AOMusicPlayer(QWidget *parent, AOApplication *p_ao_app): QObject( { m_parent = parent; ao_app = p_ao_app; - music_loop_timer = new QTimer(this); - music_loop_timer->setSingleShot(true); - connect(music_loop_timer, SIGNAL(timeout()), this, SLOT(restart_loop())); } AOMusicPlayer::~AOMusicPlayer() @@ -27,17 +24,16 @@ void AOMusicPlayer::play(QString p_song) if (ao_app->get_audio_output_device() != "default") BASS_ChannelSetDevice(m_stream, BASS_GetDevice()); - BASS_ChannelPlay(m_stream, false); - music_loop_timer->stop(); if(enable_looping) { - QWORD len=BASS_ChannelGetLength(m_stream, BASS_POS_BYTE); // the length in bytes - double time=BASS_ChannelBytes2Seconds(m_stream, len); // the length in seconds - if(time > 0) - { - music_loop_timer->start(time*1000); - } + BASS_ChannelFlags(m_stream, BASS_SAMPLE_LOOP, BASS_SAMPLE_LOOP); } + else + { + BASS_ChannelFlags(m_stream, 0, BASS_SAMPLE_LOOP); + } + BASS_ChannelPlay(m_stream, false); + } @@ -54,21 +50,8 @@ QString AOMusicPlayer::get_path() return f_path; } -void AOMusicPlayer::restart_loop() -{ - /* - m_stream = BASS_StreamCreateFile(FALSE, f_path.utf16(), 0, 0, BASS_STREAM_AUTOFREE | BASS_UNICODE | BASS_ASYNCFILE); - if (ao_app->get_audio_output_device() != "default") - BASS_ChannelSetDevice(m_stream, BASS_GetDevice());*/ - QWORD len=BASS_ChannelGetLength(m_stream, BASS_POS_BYTE); // the length in bytes - double time=BASS_ChannelBytes2Seconds(m_stream, len); // the length in seconds - music_loop_timer->start(time*1000); - BASS_ChannelPlay(m_stream, true); -} - void AOMusicPlayer::kill_loop() { - music_loop_timer->stop(); BASS_ChannelStop(m_stream); } diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp index 247a231..03b4e67 100644 --- a/src/aooptionsdialog.cpp +++ b/src/aooptionsdialog.cpp @@ -467,6 +467,18 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi ui_casing_layout->setWidget(7, QFormLayout::FieldRole, ui_casing_cm_cb); + ui_casing_wit_lbl = new QLabel(ui_casing_widget); + ui_casing_wit_lbl->setText(tr("Witness:")); + ui_casing_wit_lbl->setToolTip(tr("If checked, you will appear amongst the potential " + "witnesses on the server.")); + + ui_casing_layout->setWidget(8, QFormLayout::LabelRole, ui_casing_wit_lbl); + + ui_casing_wit_cb = new QCheckBox(ui_casing_widget); + ui_casing_wit_cb->setChecked(ao_app->get_casing_wit_enabled()); + + ui_casing_layout->setWidget(8, QFormLayout::FieldRole, ui_casing_wit_cb); + // -- CM CASES ANNOUNCEMENTS ui_casing_cm_cases_lbl = new QLabel(ui_casing_widget); @@ -474,12 +486,12 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi ui_casing_cm_cases_lbl->setToolTip(tr("If you're a CM, enter what cases you are " "willing to host.")); - ui_casing_layout->setWidget(8, QFormLayout::LabelRole, ui_casing_cm_cases_lbl); + ui_casing_layout->setWidget(9, QFormLayout::LabelRole, ui_casing_cm_cases_lbl); ui_casing_cm_cases_textbox = new QLineEdit(ui_casing_widget); ui_casing_cm_cases_textbox->setText(ao_app->get_casing_can_host_cases()); - ui_casing_layout->setWidget(8, QFormLayout::FieldRole, ui_casing_cm_cases_textbox); + ui_casing_layout->setWidget(9, QFormLayout::FieldRole, ui_casing_cm_cases_textbox); // When we're done, we should continue the updates! setUpdatesEnabled(true); diff --git a/src/aosfxplayer.cpp b/src/aosfxplayer.cpp index e219c03..e39071e 100644 --- a/src/aosfxplayer.cpp +++ b/src/aosfxplayer.cpp @@ -5,9 +5,6 @@ AOSfxPlayer::AOSfxPlayer(QWidget *parent, AOApplication *p_ao_app): QObject() { m_parent = parent; ao_app = p_ao_app; - sfx_loop_timer = new QTimer(this); - sfx_loop_timer->setSingleShot(true); - connect(sfx_loop_timer, SIGNAL(timeout()), this, SLOT(restart_loop())); } void AOSfxPlayer::play(QString p_sfx, QString p_char, QString shout) @@ -39,12 +36,13 @@ void AOSfxPlayer::play(QString p_sfx, QString p_char, QString shout) if (ao_app->get_audio_output_device() != "default") BASS_ChannelSetDevice(m_stream, BASS_GetDevice()); BASS_ChannelPlay(m_stream, false); - sfx_loop_timer->stop(); - QWORD len=BASS_ChannelGetLength(m_stream, BASS_POS_BYTE); // the length in bytes - double time=BASS_ChannelBytes2Seconds(m_stream, len); // the length in seconds - if(time > 0 && looping_sfx && ao_app->get_looping_sfx()) + if(looping_sfx && ao_app->get_looping_sfx()) { - sfx_loop_timer->start(time*1000); + BASS_ChannelFlags(m_stream, BASS_SAMPLE_LOOP, BASS_SAMPLE_LOOP); + } + else + { + BASS_ChannelFlags(m_stream, 0, BASS_SAMPLE_LOOP); } } @@ -56,18 +54,6 @@ void AOSfxPlayer::setLooping(bool is_looping) void AOSfxPlayer::stop() { BASS_ChannelStop(m_stream); - sfx_loop_timer->stop(); -} - -void AOSfxPlayer::restart_loop() -{ - if(ao_app->get_looping_sfx() && looping_sfx) - { - QWORD len=BASS_ChannelGetLength(m_stream, BASS_POS_BYTE); // the length in bytes - double time=BASS_ChannelBytes2Seconds(m_stream, len); // the length in seconds - sfx_loop_timer->start(time*1000); - BASS_ChannelPlay(m_stream, true); - } } void AOSfxPlayer::set_volume(int p_value) diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 8c25a2d..a082e6b 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -984,12 +984,10 @@ void Courtroom::list_music() for (int n_song = 0 ; n_song < music_list.size() ; ++n_song) { QString i_song = music_list.at(n_song); - QString i_song_listname = i_song; - i_song_listname = i_song_listname.left(i_song_listname.lastIndexOf(".")); if (i_song.toLower().contains(ui_music_search->text().toLower())) { - ui_music_list->addItem(i_song_listname); + ui_music_list->addItem(i_song); music_row_to_number.append(n_song); QString song_path = ao_app->get_music_path(i_song); @@ -2825,7 +2823,6 @@ void Courtroom::handle_song(QStringList *p_contents) QString f_song = f_contents.at(0); QString f_song_clear = f_song; - f_song_clear = f_song_clear.left(f_song_clear.lastIndexOf(".")); int n_char = f_contents.at(1).toInt(); if (n_char < 0 || n_char >= char_list.size()) @@ -2865,7 +2862,7 @@ void Courtroom::handle_song(QStringList *p_contents) ic_chatlog_history.removeFirst(); } - append_ic_text(f_song_clear, str_show, true); + append_ic_text(f_song, str_show, true); music_player->play(f_song); } } @@ -2974,7 +2971,8 @@ void Courtroom::case_called(QString msg, bool def, bool pro, bool jud, bool jur, (ao_app->get_casing_prosecution_enabled() && pro) || (ao_app->get_casing_judge_enabled() && jud) || (ao_app->get_casing_juror_enabled() && jur) || - (ao_app->get_casing_steno_enabled() && steno)) + (ao_app->get_casing_steno_enabled() && steno) || + (ao_app->get_casing_wit_enabled() && witness)) { modcall_player->play(ao_app->get_sfx("case_call")); ao_app->alert(this); @@ -3822,11 +3820,12 @@ void Courtroom::on_casing_clicked() f_packet.append(QString::number(ao_app->get_casing_judge_enabled())); f_packet.append(QString::number(ao_app->get_casing_juror_enabled())); f_packet.append(QString::number(ao_app->get_casing_steno_enabled())); + f_packet.append(QString::number(ao_app->get_casing_wit_enabled())); ao_app->send_server_packet(new AOPacket("SETCASE", f_packet)); } else - ao_app->send_server_packet(new AOPacket("SETCASE#\"\"#0#0#0#0#0#0#%")); + ao_app->send_server_packet(new AOPacket("SETCASE#\"\"#0#0#0#0#0#0#0#%")); } } diff --git a/src/text_file_functions.cpp b/src/text_file_functions.cpp index 68d0a04..a5eb273 100644 --- a/src/text_file_functions.cpp +++ b/src/text_file_functions.cpp @@ -685,6 +685,12 @@ bool AOApplication::get_casing_steno_enabled() return result.startsWith("true"); } +bool AOApplication::get_casing_wit_enabled() +{ + QString result = configini->value("casing_wit_enabled", "false").value(); + return result.startsWith("true"); +} + bool AOApplication::get_casing_cm_enabled() { QString result = configini->value("casing_cm_enabled", "false").value();