added experimental emote resizing

This commit is contained in:
David Skoland 2017-02-13 02:44:47 +01:00
parent 3c569d727a
commit f1fdb1c1dc
3 changed files with 39 additions and 45 deletions

View File

@ -89,12 +89,6 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
ui_emotes = new QWidget(this); ui_emotes = new QWidget(this);
//implementation in emotes.cpp
construct_emotes();
ui_emote_left = new AOButton(ui_emotes, ao_app);
ui_emote_right = new AOButton(ui_emotes, ao_app);
/////////////////////////////////////// ///////////////////////////////////////
ui_defense_bar = new AOImage(this, ao_app); ui_defense_bar = new AOImage(this, ao_app);
@ -244,9 +238,6 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
connect(ui_music_search, SIGNAL(textChanged(QString)), this, SLOT(on_music_search_edited(QString))); connect(ui_music_search, SIGNAL(textChanged(QString)), this, SLOT(on_music_search_edited(QString)));
connect(ui_emote_left, SIGNAL(clicked()), this, SLOT(on_emote_left_clicked()));
connect(ui_emote_right, SIGNAL(clicked()), this, SLOT(on_emote_right_clicked()));
connect(ui_witness_testimony, SIGNAL(clicked()), this, SLOT(on_witness_testimony_clicked())); connect(ui_witness_testimony, SIGNAL(clicked()), this, SLOT(on_witness_testimony_clicked()));
connect(ui_cross_examination, SIGNAL(clicked()), this, SLOT(on_cross_examination_clicked())); connect(ui_cross_examination, SIGNAL(clicked()), this, SLOT(on_cross_examination_clicked()));
@ -264,6 +255,12 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
connect(ui_spectator, SIGNAL(clicked()), this, SLOT(on_spectator_clicked())); connect(ui_spectator, SIGNAL(clicked()), this, SLOT(on_spectator_clicked()));
set_widgets(); set_widgets();
//implementation in emotes.cpp
construct_emotes();
connect(ui_emote_left, SIGNAL(clicked()), this, SLOT(on_emote_left_clicked()));
connect(ui_emote_right, SIGNAL(clicked()), this, SLOT(on_emote_right_clicked()));
} }
void Courtroom::set_widgets() void Courtroom::set_widgets()
@ -382,12 +379,6 @@ void Courtroom::set_widgets()
//emote buttons //emote buttons
set_size_and_pos(ui_emote_left, "emote_left");
ui_emote_left->set_image("arrow_left.png");
set_size_and_pos(ui_emote_right, "emote_right");
ui_emote_right->set_image("arrow_right.png");
set_size_and_pos(ui_defense_bar, "defense_bar"); set_size_and_pos(ui_defense_bar, "defense_bar");
ui_defense_bar->set_image("defensebar10.png"); ui_defense_bar->set_image("defensebar10.png");
@ -636,11 +627,8 @@ void Courtroom::enter_courtroom(int p_cid)
ui_prosecution_plus->hide(); ui_prosecution_plus->hide();
} }
//T0D0: split ao2_features into multiple booleans if (ao_app->flipping_enabled)
if (ao_app->ao2_features)
{
ui_flip->show(); ui_flip->show();
}
list_music(); list_music();

View File

@ -152,7 +152,9 @@ private:
int current_emote_page = 0; int current_emote_page = 0;
int current_emote = 0; int current_emote = 0;
const int max_emotes_on_page = 10; int emote_columns = 5;
int emote_rows = 2;
int max_emotes_on_page = 10;
//is set to true if the bg folder contains defensedesk.png, prosecutiondesk.png and stand.png //is set to true if the bg folder contains defensedesk.png, prosecutiondesk.png and stand.png
bool is_ao2_bg = false; bool is_ao2_bg = false;

View File

@ -16,8 +16,16 @@ void Courtroom::construct_emotes()
const int y_modifier{49}; const int y_modifier{49};
int y_mod_count{0}; int y_mod_count{0};
for (int n = 0 ; n < 10 ; ++n) emote_columns = ui_emotes->width() / x_modifier;
emote_rows = ui_emotes->height() / y_modifier;
max_emotes_on_page = emote_columns * emote_rows;
qDebug() << "max_emotes_on_page: " << QString::number(max_emotes_on_page);
for (int n = 0 ; n < max_emotes_on_page ; ++n)
{ {
qDebug() << "constructed " << QString::number(n) << "th emote button";
int x_pos = base_x_pos + (x_modifier * x_mod_count); int x_pos = base_x_pos + (x_modifier * x_mod_count);
int y_pos = base_y_pos + (y_modifier * y_mod_count); int y_pos = base_y_pos + (y_modifier * y_mod_count);
@ -31,13 +39,22 @@ void Courtroom::construct_emotes()
++x_mod_count; ++x_mod_count;
//if char number is divisible by 5 with rest 4 then the next emote button should start on a new line //if emote number is divisible by columns with rest columns -1 then the next emote button should start on a new line
if (n % 5 == 4 && n != 0) if ((n % emote_columns) == (emote_columns - 1) && (n != 0))
{ {
++y_mod_count; ++y_mod_count;
x_mod_count = 0; x_mod_count = 0;
} }
} }
ui_emote_left = new AOButton(ui_emotes, ao_app);
ui_emote_right = new AOButton(ui_emotes, ao_app);
set_size_and_pos(ui_emote_left, "emote_left");
ui_emote_left->set_image("arrow_left.png");
set_size_and_pos(ui_emote_right, "emote_right");
ui_emote_right->set_image("arrow_right.png");
} }
void Courtroom::set_emote_page() void Courtroom::set_emote_page()
@ -52,21 +69,21 @@ void Courtroom::set_emote_page()
i_button->hide(); i_button->hide();
} }
int total_pages = total_emotes / 10; int total_pages = total_emotes / max_emotes_on_page;
int emotes_on_page = 0; int emotes_on_page = 0;
if (total_emotes % 10 != 0) if (total_emotes % max_emotes_on_page != 0)
{ {
++total_pages; ++total_pages;
//i. e. not on the last page //i. e. not on the last page
if (total_pages > current_emote_page + 1) if (total_pages > current_emote_page + 1)
emotes_on_page = 10; emotes_on_page = max_emotes_on_page;
else else
emotes_on_page = total_emotes % 10; emotes_on_page = total_emotes % max_emotes_on_page;
} }
else else
emotes_on_page = 10; emotes_on_page = max_emotes_on_page;
if (total_pages > current_emote_page + 1) if (total_pages > current_emote_page + 1)
ui_emote_right->show(); ui_emote_right->show();
@ -76,7 +93,7 @@ void Courtroom::set_emote_page()
for (int n_emote = 0 ; n_emote < emotes_on_page ; ++n_emote) for (int n_emote = 0 ; n_emote < emotes_on_page ; ++n_emote)
{ {
int n_real_emote = n_emote + current_emote_page * 10; int n_real_emote = n_emote + current_emote_page * max_emotes_on_page;
AOEmoteButton *f_emote = ui_emote_list.at(n_emote); AOEmoteButton *f_emote = ui_emote_list.at(n_emote);
if (n_real_emote == current_emote) if (n_real_emote == current_emote)
@ -92,28 +109,15 @@ void Courtroom::set_emote_page()
void Courtroom::on_emote_clicked(int p_id) void Courtroom::on_emote_clicked(int p_id)
{ {
int min = current_emote_page * max_emotes_on_page; int min = current_emote_page * max_emotes_on_page;
int max = 9 + current_emote_page * max_emotes_on_page; int max = (max_emotes_on_page - 1) + current_emote_page * max_emotes_on_page;
if (current_emote >= min && current_emote <= max) if (current_emote >= min && current_emote <= max)
ui_emote_list.at(current_emote % max_emotes_on_page)->set_off(current_char, current_emote); ui_emote_list.at(current_emote % max_emotes_on_page)->set_off(current_char, current_emote);
current_emote = p_id + 10 * current_emote_page; current_emote = p_id + max_emotes_on_page * current_emote_page;
ui_emote_list.at(current_emote % max_emotes_on_page)->set_on(current_char, current_emote); ui_emote_list.at(current_emote % max_emotes_on_page)->set_on(current_char, current_emote);
/*
for (int n_emote = 0 ; n_emote < 10 ; ++n_emote)
{
int n_real_emote = n_emote + current_emote_page * 10;
AOEmoteButton *f_emote = ui_emote_list.at(n_emote);
if (n_real_emote == current_emote)
f_emote->set_on(current_char, n_real_emote);
//else
// f_emote->set_off(current_char, n_real_emote);
}
*/
int emote_mod = ao_app->get_emote_mod(current_char, current_emote); int emote_mod = ao_app->get_emote_mod(current_char, current_emote);
if (emote_mod == 1 || if (emote_mod == 1 ||