Populate non-default background positions from design.ini, allow 2.8-style default positions (#352)
* populate pos dropdown from design.ini * add sane default, remove hardcode bs
This commit is contained in:
parent
15c3d607c6
commit
5b09dd45d5
@ -4,7 +4,8 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
|
|||||||
{
|
{
|
||||||
ao_app = p_ao_app;
|
ao_app = p_ao_app;
|
||||||
|
|
||||||
this->setWindowFlags( (this->windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowMaximizeButtonHint);
|
this->setWindowFlags((this->windowFlags() | Qt::CustomizeWindowHint) &
|
||||||
|
~Qt::WindowMaximizeButtonHint);
|
||||||
|
|
||||||
ao_app->initBASS();
|
ao_app->initBASS();
|
||||||
|
|
||||||
@ -594,13 +595,15 @@ void Courtroom::set_widgets()
|
|||||||
set_size_and_pos(ui_pair_offset_spinbox, "pair_offset_spinbox");
|
set_size_and_pos(ui_pair_offset_spinbox, "pair_offset_spinbox");
|
||||||
ui_pair_offset_spinbox->hide();
|
ui_pair_offset_spinbox->hide();
|
||||||
ui_pair_offset_spinbox->setToolTip(
|
ui_pair_offset_spinbox->setToolTip(
|
||||||
tr("Change the horizontal percentage offset of your character's position from the "
|
tr("Change the horizontal percentage offset of your character's position "
|
||||||
|
"from the "
|
||||||
"center of the screen."));
|
"center of the screen."));
|
||||||
|
|
||||||
set_size_and_pos(ui_pair_vert_offset_spinbox, "pair_vert_offset_spinbox");
|
set_size_and_pos(ui_pair_vert_offset_spinbox, "pair_vert_offset_spinbox");
|
||||||
ui_pair_vert_offset_spinbox->hide();
|
ui_pair_vert_offset_spinbox->hide();
|
||||||
ui_pair_vert_offset_spinbox->setToolTip(
|
ui_pair_vert_offset_spinbox->setToolTip(
|
||||||
tr("Change the vertical percentage offset of your character's position from the "
|
tr("Change the vertical percentage offset of your character's position "
|
||||||
|
"from the "
|
||||||
"center of the screen."));
|
"center of the screen."));
|
||||||
|
|
||||||
ui_pair_order_dropdown->hide();
|
ui_pair_order_dropdown->hide();
|
||||||
@ -719,8 +722,7 @@ void Courtroom::set_widgets()
|
|||||||
set_size_and_pos(ui_sfx_remove, "sfx_remove");
|
set_size_and_pos(ui_sfx_remove, "sfx_remove");
|
||||||
ui_sfx_remove->setText("X");
|
ui_sfx_remove->setText("X");
|
||||||
ui_sfx_remove->set_image("evidencex");
|
ui_sfx_remove->set_image("evidencex");
|
||||||
ui_sfx_remove->setToolTip(
|
ui_sfx_remove->setToolTip(tr("Remove the currently selected sound effect."));
|
||||||
tr("Remove the currently selected sound effect."));
|
|
||||||
ui_sfx_remove->hide();
|
ui_sfx_remove->hide();
|
||||||
|
|
||||||
set_iniswap_dropdown();
|
set_iniswap_dropdown();
|
||||||
@ -1146,14 +1148,18 @@ void Courtroom::set_background(QString p_background, bool display)
|
|||||||
// Populate the dropdown list with all pos that exist on this bg
|
// Populate the dropdown list with all pos that exist on this bg
|
||||||
QStringList pos_list = {};
|
QStringList pos_list = {};
|
||||||
for (QString key : default_pos.keys()) {
|
for (QString key : default_pos.keys()) {
|
||||||
if (file_exists(
|
if (file_exists(ao_app->get_image_suffix(
|
||||||
ao_app->get_image_suffix(ao_app->get_background_path(key)))) {
|
ao_app->get_background_path(default_pos[key]))) || // if we have 2.8-style positions, e.g. def.png, wit.webp, hld.apng
|
||||||
|
file_exists(
|
||||||
|
ao_app->get_image_suffix(ao_app->get_background_path(key)))) { // if we have pre-2.8-style positions, e.g. defenseempty.png
|
||||||
pos_list.append(default_pos[key]);
|
pos_list.append(default_pos[key]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (QString pos : ao_app->read_design_ini("positions", ao_app->get_background_path("design.ini")).split(",")) {
|
||||||
// TODO: search through extra/custom pos and add them to the pos dropdown as
|
if (file_exists(ao_app->get_image_suffix(ao_app->get_background_path(pos)))) {
|
||||||
// well
|
pos_list.append(pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
set_pos_dropdown(pos_list);
|
set_pos_dropdown(pos_list);
|
||||||
|
|
||||||
@ -2152,7 +2158,8 @@ void Courtroom::handle_chatmessage_2()
|
|||||||
other_offset_v = other_offsets[1].toInt();
|
other_offset_v = other_offsets[1].toInt();
|
||||||
}
|
}
|
||||||
ui_vp_sideplayer_char->move(ui_viewport->width() * other_offset / 100,
|
ui_vp_sideplayer_char->move(ui_viewport->width() * other_offset / 100,
|
||||||
ui_viewport->height() * other_offset_v / 100);
|
ui_viewport->height() * other_offset_v /
|
||||||
|
100);
|
||||||
|
|
||||||
QStringList args = m_chatmessage[OTHER_CHARID].split("^");
|
QStringList args = m_chatmessage[OTHER_CHARID].split("^");
|
||||||
if (args.size() >
|
if (args.size() >
|
||||||
@ -2198,7 +2205,8 @@ void Courtroom::handle_chatmessage_2()
|
|||||||
self_offset_v = 0;
|
self_offset_v = 0;
|
||||||
else
|
else
|
||||||
self_offset_v = self_offsets[1].toInt();
|
self_offset_v = self_offsets[1].toInt();
|
||||||
ui_vp_player_char->move(ui_viewport->width() * self_offset / 100, ui_viewport->height() * self_offset_v / 100);
|
ui_vp_player_char->move(ui_viewport->width() * self_offset / 100,
|
||||||
|
ui_viewport->height() * self_offset_v / 100);
|
||||||
|
|
||||||
switch (emote_mod) {
|
switch (emote_mod) {
|
||||||
case 1:
|
case 1:
|
||||||
@ -3069,7 +3077,9 @@ void Courtroom::chat_tick()
|
|||||||
// 40/25 = 1.6 = 2
|
// 40/25 = 1.6 = 2
|
||||||
// And if it's faster than that:
|
// And if it's faster than that:
|
||||||
// 40/10 = 4
|
// 40/10 = 4
|
||||||
b_rate = qMax(b_rate, qRound(static_cast<float>(message_display_speed[3])/msg_delay));
|
b_rate =
|
||||||
|
qMax(b_rate, qRound(static_cast<float>(message_display_speed[3]) /
|
||||||
|
msg_delay));
|
||||||
}
|
}
|
||||||
if (blip_ticker % b_rate == 0) {
|
if (blip_ticker % b_rate == 0) {
|
||||||
// ignoring white space unless blank_blip is enabled.
|
// ignoring white space unless blank_blip is enabled.
|
||||||
@ -3078,8 +3088,7 @@ void Courtroom::chat_tick()
|
|||||||
++blip_ticker;
|
++blip_ticker;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
// Don't fully ignore whitespace still, keep ticking until
|
// Don't fully ignore whitespace still, keep ticking until
|
||||||
// we reached the need to play a blip sound - we also just
|
// we reached the need to play a blip sound - we also just
|
||||||
// need to wait for a letter to play it on.
|
// need to wait for a letter to play it on.
|
||||||
@ -3088,7 +3097,8 @@ void Courtroom::chat_tick()
|
|||||||
|
|
||||||
// Punctuation delayer, only kicks in on speed ticks less than }}
|
// Punctuation delayer, only kicks in on speed ticks less than }}
|
||||||
if (current_display_speed > 1 && punctuation_chars.contains(f_character)) {
|
if (current_display_speed > 1 && punctuation_chars.contains(f_character)) {
|
||||||
// Making the user have to wait any longer than 150ms per letter is downright unreasonable
|
// Making the user have to wait any longer than 150ms per letter is
|
||||||
|
// downright unreasonable
|
||||||
msg_delay = qMin(150, msg_delay * punctuation_modifier);
|
msg_delay = qMin(150, msg_delay * punctuation_modifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3136,8 +3146,16 @@ void Courtroom::play_sfx()
|
|||||||
void Courtroom::set_scene(QString f_desk_mod, QString f_side)
|
void Courtroom::set_scene(QString f_desk_mod, QString f_side)
|
||||||
{
|
{
|
||||||
// witness is default if pos is invalid
|
// witness is default if pos is invalid
|
||||||
QString f_background = "witnessempty";
|
QString f_background;
|
||||||
QString f_desk_image = "stand";
|
QString f_desk_image;
|
||||||
|
if (file_exists(ao_app->get_image_suffix(ao_app->get_background_path("witnessempty")) {
|
||||||
|
f_background = "witnessempty";
|
||||||
|
f_desk_image = "stand";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
f_background = "wit";
|
||||||
|
f_desk_image = "wit_overlay";
|
||||||
|
}
|
||||||
|
|
||||||
if (f_side == "def" && file_exists(ao_app->get_image_suffix(
|
if (f_side == "def" && file_exists(ao_app->get_image_suffix(
|
||||||
ao_app->get_background_path("defenseempty")))) {
|
ao_app->get_background_path("defenseempty")))) {
|
||||||
@ -3486,8 +3504,8 @@ void Courtroom::on_ooc_return_pressed()
|
|||||||
if (ok) {
|
if (ok) {
|
||||||
if (off >= -100 && off <= 100) {
|
if (off >= -100 && off <= 100) {
|
||||||
char_offset = off;
|
char_offset = off;
|
||||||
QString msg = tr("You have set your offset to %1%%.")
|
QString msg =
|
||||||
.arg(QString::number(off));
|
tr("You have set your offset to %1%%.").arg(QString::number(off));
|
||||||
append_server_chatmessage("CLIENT", msg, "1");
|
append_server_chatmessage("CLIENT", msg, "1");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -3511,17 +3529,18 @@ void Courtroom::on_ooc_return_pressed()
|
|||||||
if (off >= -100 && off <= 100) {
|
if (off >= -100 && off <= 100) {
|
||||||
char_vert_offset = off;
|
char_vert_offset = off;
|
||||||
QString msg = tr("You have set your vertical offset to %1%%.")
|
QString msg = tr("You have set your vertical offset to %1%%.")
|
||||||
.arg(QString::number(off));
|
.arg(QString::number(off));
|
||||||
append_server_chatmessage("CLIENT", msg, "1");
|
append_server_chatmessage("CLIENT", msg, "1");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
append_server_chatmessage(
|
append_server_chatmessage(
|
||||||
"CLIENT", tr("Your vertical offset must be between -100% and 100%!"), "1");
|
"CLIENT",
|
||||||
|
tr("Your vertical offset must be between -100% and 100%!"), "1");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
append_server_chatmessage("CLIENT",
|
append_server_chatmessage(
|
||||||
tr("That vertical offset does not look like one."), "1");
|
"CLIENT", tr("That vertical offset does not look like one."), "1");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -3832,7 +3851,7 @@ void Courtroom::on_music_search_return_pressed()
|
|||||||
|
|
||||||
void Courtroom::on_pos_dropdown_changed(int p_index)
|
void Courtroom::on_pos_dropdown_changed(int p_index)
|
||||||
{
|
{
|
||||||
if (p_index < 0 || p_index > 7)
|
if (p_index < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
toggle_judge_buttons(false);
|
toggle_judge_buttons(false);
|
||||||
@ -4720,7 +4739,10 @@ void Courtroom::on_log_limit_changed(int value) { log_maximum_blocks = value; }
|
|||||||
|
|
||||||
void Courtroom::on_pair_offset_changed(int value) { char_offset = value; }
|
void Courtroom::on_pair_offset_changed(int value) { char_offset = value; }
|
||||||
|
|
||||||
void Courtroom::on_pair_vert_offset_changed(int value) { char_vert_offset = value; }
|
void Courtroom::on_pair_vert_offset_changed(int value)
|
||||||
|
{
|
||||||
|
char_vert_offset = value;
|
||||||
|
}
|
||||||
|
|
||||||
void Courtroom::on_witness_testimony_clicked()
|
void Courtroom::on_witness_testimony_clicked()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user