Add an option for networking frame-specific effects
I'm starting to realize the options menu/system needs a complete overhaul at this point. (Auto-generating options menu, anyone?)
This commit is contained in:
parent
6afce05661
commit
1b36be9dbc
@ -174,6 +174,10 @@ public:
|
||||
// from the config.ini.
|
||||
bool is_shake_flash_enabled();
|
||||
|
||||
// Returns the value of whether frame-specific effects defined in char.ini should be sent/received over the network.
|
||||
// from the config.ini.
|
||||
bool is_frame_network_enabled();
|
||||
|
||||
// Returns the value of the maximum amount of lines the IC chatlog
|
||||
// may contain, from config.ini.
|
||||
int get_max_log_size();
|
||||
|
@ -66,6 +66,8 @@ private:
|
||||
|
||||
QLabel *ui_epilepsy_lbl;
|
||||
QCheckBox *ui_epilepsy_cb;
|
||||
QLabel *ui_framenetwork_lbl;
|
||||
QCheckBox *ui_framenetwork_cb;
|
||||
|
||||
QWidget *ui_callwords_tab;
|
||||
QWidget *ui_callwords_widget;
|
||||
|
@ -70,21 +70,21 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_theme_combobox);
|
||||
|
||||
row += 1;
|
||||
ui_theme_log_divider = new QFrame(ui_form_layout_widget);
|
||||
ui_theme_log_divider->setMidLineWidth(0);
|
||||
ui_theme_log_divider->setFrameShape(QFrame::HLine);
|
||||
ui_theme_log_divider->setFrameShadow(QFrame::Sunken);
|
||||
|
||||
row += 1;
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_theme_log_divider);
|
||||
|
||||
row += 1;
|
||||
ui_downwards_lbl = new QLabel(ui_form_layout_widget);
|
||||
ui_downwards_lbl->setText(tr("Log goes downwards:"));
|
||||
ui_downwards_lbl->setToolTip(tr("If ticked, new messages will appear at "
|
||||
"the bottom (like the OOC chatlog). The traditional "
|
||||
"(AO1) behaviour is equivalent to this being unticked."));
|
||||
|
||||
row += 1;
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_downwards_lbl);
|
||||
|
||||
ui_downwards_cb = new QCheckBox(ui_form_layout_widget);
|
||||
@ -92,12 +92,12 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_downwards_cb);
|
||||
|
||||
row += 1;
|
||||
ui_length_lbl = new QLabel(ui_form_layout_widget);
|
||||
ui_length_lbl->setText(tr("Log length:"));
|
||||
ui_length_lbl->setToolTip(tr("The amount of messages the IC chatlog will keep before "
|
||||
"deleting older messages. A value of 0 or below counts as 'infinite'."));
|
||||
|
||||
row += 1;
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_length_lbl);
|
||||
|
||||
ui_length_spinbox = new QSpinBox(ui_form_layout_widget);
|
||||
@ -106,19 +106,19 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_length_spinbox);
|
||||
|
||||
row += 1;
|
||||
ui_log_names_divider = new QFrame(ui_form_layout_widget);
|
||||
ui_log_names_divider->setFrameShape(QFrame::HLine);
|
||||
ui_log_names_divider->setFrameShadow(QFrame::Sunken);
|
||||
|
||||
row += 1;
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_log_names_divider);
|
||||
|
||||
row += 1;
|
||||
ui_username_lbl = new QLabel(ui_form_layout_widget);
|
||||
ui_username_lbl->setText(tr("Default username:"));
|
||||
ui_username_lbl->setToolTip(tr("Your OOC name will be automatically set to this value "
|
||||
"when you join a server."));
|
||||
|
||||
row += 1;
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_username_lbl);
|
||||
|
||||
ui_username_textbox = new QLineEdit(ui_form_layout_widget);
|
||||
@ -127,13 +127,13 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_username_textbox);
|
||||
|
||||
row += 1;
|
||||
ui_showname_lbl = new QLabel(ui_form_layout_widget);
|
||||
ui_showname_lbl->setText(tr("Custom shownames:"));
|
||||
ui_showname_lbl->setToolTip(tr("Gives the default value for the in-game 'Custom shownames' "
|
||||
"tickbox, which in turn determines whether the client should "
|
||||
"display custom in-character names."));
|
||||
|
||||
row += 1;
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_showname_lbl);
|
||||
|
||||
ui_showname_cb = new QCheckBox(ui_form_layout_widget);
|
||||
@ -141,19 +141,19 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_showname_cb);
|
||||
|
||||
row += 1;
|
||||
ui_net_divider = new QFrame(ui_form_layout_widget);
|
||||
ui_net_divider->setFrameShape(QFrame::HLine);
|
||||
ui_net_divider->setFrameShadow(QFrame::Sunken);
|
||||
|
||||
row += 1;
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_net_divider);
|
||||
|
||||
row += 1;
|
||||
ui_ms_lbl = new QLabel(ui_form_layout_widget);
|
||||
ui_ms_lbl->setText(tr("Backup MS:"));
|
||||
ui_ms_lbl->setToolTip(tr("If the built-in server lookups fail, the game will try the "
|
||||
"address given here and use it as a backup master server address."));
|
||||
|
||||
row += 1;
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_ms_lbl);
|
||||
|
||||
QSettings* configini = ao_app->configini;
|
||||
@ -162,13 +162,13 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_ms_textbox);
|
||||
|
||||
row += 1;
|
||||
ui_discord_lbl = new QLabel(ui_form_layout_widget);
|
||||
ui_discord_lbl->setText(tr("Discord:"));
|
||||
ui_discord_lbl->setToolTip(tr("Allows others on Discord to see what server you are in, "
|
||||
"what character are you playing, and how long you have "
|
||||
"been playing for."));
|
||||
|
||||
row += 1;
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_discord_lbl);
|
||||
|
||||
ui_discord_cb = new QCheckBox(ui_form_layout_widget);
|
||||
@ -192,11 +192,11 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
ui_language_combobox->addItem("ru - Русский");
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_language_combobox);
|
||||
|
||||
row += 1;
|
||||
ui_epilepsy_lbl = new QLabel(ui_form_layout_widget);
|
||||
ui_epilepsy_lbl->setText(tr("Allow Shake/Flash:"));
|
||||
ui_epilepsy_lbl->setToolTip(tr("Allows screenshaking and flashing. Disable this if you have concerns or issues with photosensitivity and/or seizures."));
|
||||
|
||||
row += 1;
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_epilepsy_lbl);
|
||||
|
||||
ui_epilepsy_cb = new QCheckBox(ui_form_layout_widget);
|
||||
@ -204,6 +204,18 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_epilepsy_cb);
|
||||
|
||||
row += 1;
|
||||
ui_framenetwork_lbl = new QLabel(ui_form_layout_widget);
|
||||
ui_framenetwork_lbl->setText(tr("Network Frame Effects:"));
|
||||
ui_framenetwork_lbl->setToolTip(tr("Send screen-shaking, flashes and sounds as defined in the char.ini over the network. Only works for servers that support this functionality."));
|
||||
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_framenetwork_lbl);
|
||||
|
||||
ui_framenetwork_cb = new QCheckBox(ui_form_layout_widget);
|
||||
ui_framenetwork_cb->setChecked(ao_app->is_shake_flash_enabled());
|
||||
|
||||
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_framenetwork_cb);
|
||||
|
||||
// Here we start the callwords tab.
|
||||
ui_callwords_tab = new QWidget();
|
||||
ui_settings_tabs->addTab(ui_callwords_tab, tr("Callwords"));
|
||||
@ -282,18 +294,18 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
#endif
|
||||
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_audio_device_combobox);
|
||||
|
||||
row += 1;
|
||||
ui_audio_volume_divider = new QFrame(ui_audio_widget);
|
||||
ui_audio_volume_divider->setFrameShape(QFrame::HLine);
|
||||
ui_audio_volume_divider->setFrameShadow(QFrame::Sunken);
|
||||
|
||||
row += 1;
|
||||
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_audio_volume_divider);
|
||||
|
||||
row += 1;
|
||||
ui_music_volume_lbl = new QLabel(ui_audio_widget);
|
||||
ui_music_volume_lbl->setText(tr("Music:"));
|
||||
ui_music_volume_lbl->setToolTip(tr("Sets the music's default volume."));
|
||||
|
||||
row += 1;
|
||||
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_music_volume_lbl);
|
||||
|
||||
ui_music_volume_spinbox = new QSpinBox(ui_audio_widget);
|
||||
@ -303,11 +315,11 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_music_volume_spinbox);
|
||||
|
||||
row += 1;
|
||||
ui_sfx_volume_lbl = new QLabel(ui_audio_widget);
|
||||
ui_sfx_volume_lbl->setText(tr("SFX:"));
|
||||
ui_sfx_volume_lbl->setToolTip(tr("Sets the SFX's default volume. "
|
||||
"Interjections and actual sound effects count as 'SFX'."));
|
||||
row += 1;
|
||||
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_sfx_volume_lbl);
|
||||
|
||||
ui_sfx_volume_spinbox = new QSpinBox(ui_audio_widget);
|
||||
@ -317,11 +329,11 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_sfx_volume_spinbox);
|
||||
|
||||
row += 1;
|
||||
ui_blips_volume_lbl = new QLabel(ui_audio_widget);
|
||||
ui_blips_volume_lbl->setText(tr("Blips:"));
|
||||
ui_blips_volume_lbl->setToolTip(tr("Sets the volume of the blips, the talking sound effects."));
|
||||
|
||||
row += 1;
|
||||
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_blips_volume_lbl);
|
||||
|
||||
ui_blips_volume_spinbox = new QSpinBox(ui_audio_widget);
|
||||
@ -331,18 +343,18 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_blips_volume_spinbox);
|
||||
|
||||
row += 1;
|
||||
ui_volume_blip_divider = new QFrame(ui_audio_widget);
|
||||
ui_volume_blip_divider->setFrameShape(QFrame::HLine);
|
||||
ui_volume_blip_divider->setFrameShadow(QFrame::Sunken);
|
||||
|
||||
row += 1;
|
||||
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_volume_blip_divider);
|
||||
|
||||
row += 1;
|
||||
ui_bliprate_lbl = new QLabel(ui_audio_widget);
|
||||
ui_bliprate_lbl->setText(tr("Blip rate:"));
|
||||
ui_bliprate_lbl->setToolTip(tr("Sets the delay between playing the blip sounds."));
|
||||
|
||||
row += 1;
|
||||
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_bliprate_lbl);
|
||||
|
||||
ui_bliprate_spinbox = new QSpinBox(ui_audio_widget);
|
||||
@ -353,12 +365,12 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_bliprate_spinbox);
|
||||
|
||||
row += 1;
|
||||
ui_blank_blips_lbl = new QLabel(ui_audio_widget);
|
||||
ui_blank_blips_lbl->setText(tr("Blank blips:"));
|
||||
ui_blank_blips_lbl->setToolTip(tr("If true, the game will play a blip sound even "
|
||||
"when a space is 'being said'."));
|
||||
|
||||
row += 1;
|
||||
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_blank_blips_lbl);
|
||||
|
||||
ui_blank_blips_cb = new QCheckBox(ui_audio_widget);
|
||||
@ -366,11 +378,11 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_blank_blips_cb);
|
||||
|
||||
row += 1;
|
||||
ui_loopsfx_lbl = new QLabel(ui_audio_widget);
|
||||
ui_loopsfx_lbl->setText(tr("Enable Looping SFX:"));
|
||||
ui_loopsfx_lbl->setToolTip(tr("If true, the game will allow looping sound effects to play on preanimations."));
|
||||
|
||||
row += 1;
|
||||
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_loopsfx_lbl);
|
||||
|
||||
ui_loopsfx_cb = new QCheckBox(ui_audio_widget);
|
||||
@ -378,11 +390,11 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
|
||||
|
||||
ui_audio_layout->setWidget(row, QFormLayout::FieldRole, ui_loopsfx_cb);
|
||||
|
||||
row += 1;
|
||||
ui_objectmusic_lbl = new QLabel(ui_audio_widget);
|
||||
ui_objectmusic_lbl->setText(tr("Kill Music On Objection:"));
|
||||
ui_objectmusic_lbl->setToolTip(tr("If true, AO2 will stop the music for you when you or someone else does 'Objection!'."));
|
||||
|
||||
row += 1;
|
||||
ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_objectmusic_lbl);
|
||||
|
||||
ui_objectmusic_cb = new QCheckBox(ui_audio_widget);
|
||||
@ -552,6 +564,7 @@ void AOOptionsDialog::save_pressed()
|
||||
configini->setValue("discord", ui_discord_cb->isChecked());
|
||||
configini->setValue("language", ui_language_combobox->currentText().left(2));
|
||||
configini->setValue("shakeandflash", ui_epilepsy_cb->isChecked());
|
||||
configini->setValue("framenetwork", ui_framenetwork_cb->isChecked());
|
||||
|
||||
QFile* callwordsini = new QFile(ao_app->get_base_path() + "callwords.ini");
|
||||
|
||||
|
@ -1283,9 +1283,12 @@ void Courtroom::on_chat_return_pressed()
|
||||
foreach (QString f_emote, emotes_to_check)
|
||||
{
|
||||
packet += f_emote;
|
||||
QString sfx_frames = ao_app->read_char_ini_tag(current_char, f_emote.append(f_effect)).join("|");
|
||||
if (sfx_frames != "")
|
||||
packet += "|" + sfx_frames;
|
||||
if (ao_app->is_frame_network_enabled())
|
||||
{
|
||||
QString sfx_frames = ao_app->read_char_ini_tag(current_char, f_emote.append(f_effect)).join("|");
|
||||
if (sfx_frames != "")
|
||||
packet += "|" + sfx_frames;
|
||||
}
|
||||
packet += "^";
|
||||
}
|
||||
qDebug() << f_effect << "packet" << packet;
|
||||
@ -1442,7 +1445,7 @@ void Courtroom::handle_chatmessage_2()
|
||||
//Clear all looping sfx to prevent obnoxiousness
|
||||
sfx_player->loop_clear();
|
||||
|
||||
if (!m_chatmessage[FRAME_SFX].isEmpty())
|
||||
if (!m_chatmessage[FRAME_SFX].isEmpty() && ao_app->is_frame_network_enabled())
|
||||
{
|
||||
//ORDER IS IMPORTANT!!
|
||||
QStringList netstrings = {m_chatmessage[FRAME_SCREENSHAKE], m_chatmessage[FRAME_REALIZATION], m_chatmessage[FRAME_SFX]};
|
||||
|
@ -678,6 +678,12 @@ bool AOApplication::is_shake_flash_enabled()
|
||||
return result.startsWith("true");
|
||||
}
|
||||
|
||||
bool AOApplication::is_frame_network_enabled()
|
||||
{
|
||||
QString result = configini->value("framenetwork", "true").value<QString>();
|
||||
return result.startsWith("true");
|
||||
}
|
||||
|
||||
bool AOApplication::get_casing_enabled()
|
||||
{
|
||||
QString result = configini->value("casing_enabled", "false").value<QString>();
|
||||
|
Loading…
Reference in New Issue
Block a user