added emote comments to emote buttons with missing image
This commit is contained in:
parent
9e5598cbed
commit
47f96cf0a4
@ -41,7 +41,8 @@ SOURCES += main.cpp\
|
|||||||
aosfxplayer.cpp \
|
aosfxplayer.cpp \
|
||||||
aomusicplayer.cpp \
|
aomusicplayer.cpp \
|
||||||
aoblipplayer.cpp \
|
aoblipplayer.cpp \
|
||||||
evidence.cpp
|
evidence.cpp \
|
||||||
|
aoevidencebutton.cpp
|
||||||
|
|
||||||
HEADERS += lobby.h \
|
HEADERS += lobby.h \
|
||||||
aoimage.h \
|
aoimage.h \
|
||||||
@ -65,7 +66,8 @@ HEADERS += lobby.h \
|
|||||||
bass.h \
|
bass.h \
|
||||||
aosfxplayer.h \
|
aosfxplayer.h \
|
||||||
aomusicplayer.h \
|
aomusicplayer.h \
|
||||||
aoblipplayer.h
|
aoblipplayer.h \
|
||||||
|
aoevidencebutton.h
|
||||||
|
|
||||||
unix:LIBS += -L/home/omnitroid/Project/Attorney_Online_2/src -lbass
|
unix:LIBS += -L/home/omnitroid/Project/Attorney_Online_2/src -lbass
|
||||||
win32:LIBS += "$$PWD/bass.dll"
|
win32:LIBS += "$$PWD/bass.dll"
|
||||||
|
@ -91,6 +91,7 @@ public:
|
|||||||
QString get_music_path(QString p_song);
|
QString get_music_path(QString p_song);
|
||||||
QString get_background_path();
|
QString get_background_path();
|
||||||
QString get_default_background_path();
|
QString get_default_background_path();
|
||||||
|
QString get_evidence_path();
|
||||||
|
|
||||||
//implementation in text_file_functions.cpp
|
//implementation in text_file_functions.cpp
|
||||||
QString read_user_theme();
|
QString read_user_theme();
|
||||||
@ -105,6 +106,7 @@ public:
|
|||||||
int get_text_delay(QString p_char, QString p_emote);
|
int get_text_delay(QString p_char, QString p_emote);
|
||||||
QString get_char_name(QString p_char);
|
QString get_char_name(QString p_char);
|
||||||
int get_emote_number(QString p_char);
|
int get_emote_number(QString p_char);
|
||||||
|
QString get_emote_comment(QString p_char, int p_emote);
|
||||||
QString get_emote(QString p_char, int p_emote);
|
QString get_emote(QString p_char, int p_emote);
|
||||||
QString get_pre_emote(QString p_char, int p_emote);
|
QString get_pre_emote(QString p_char, int p_emote);
|
||||||
QString get_sfx_name(QString p_char, int p_emote);
|
QString get_sfx_name(QString p_char, int p_emote);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include "aoemotebutton.h"
|
#include "aoemotebutton.h"
|
||||||
|
|
||||||
#include "file_functions.h"
|
#include "file_functions.h"
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
AOEmoteButton::AOEmoteButton(QWidget *p_parent, AOApplication *p_ao_app, int p_x, int p_y) : QPushButton(p_parent)
|
AOEmoteButton::AOEmoteButton(QWidget *p_parent, AOApplication *p_ao_app, int p_x, int p_y) : QPushButton(p_parent)
|
||||||
{
|
{
|
||||||
@ -26,7 +27,7 @@ void AOEmoteButton::set_on(QString p_char, int p_emote)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this->setText(emotion_number);
|
this->setText(ao_app->get_emote_comment(p_char, p_emote));
|
||||||
this->setStyleSheet("border-image:url(\"\")");
|
this->setStyleSheet("border-image:url(\"\")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -43,7 +44,7 @@ void AOEmoteButton::set_off(QString p_char, int p_emote)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this->setText(emotion_number);
|
this->setText(ao_app->get_emote_comment(p_char, p_emote));
|
||||||
this->setStyleSheet("border-image:url(\"\")");
|
this->setStyleSheet("border-image:url(\"\")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
24
aoevidencebutton.cpp
Normal file
24
aoevidencebutton.cpp
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include "aoevidencebutton.h"
|
||||||
|
|
||||||
|
#include "file_functions.h"
|
||||||
|
|
||||||
|
AOEvidenceButton::AOEvidenceButton(QWidget *p_parent, AOApplication *p_ao_app) : QPushButton(p_parent)
|
||||||
|
{
|
||||||
|
ao_app = p_ao_app;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AOEvidenceButton::set_image(QString p_image)
|
||||||
|
{
|
||||||
|
QString image_path = ao_app->get_evidence_path() + p_image;
|
||||||
|
|
||||||
|
if (file_exists(image_path))
|
||||||
|
{
|
||||||
|
this->setText("");
|
||||||
|
this->setStyleSheet("border-image:url(\"" + image_path + "\")");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this->setText("evi");
|
||||||
|
this->setStyleSheet("");
|
||||||
|
}
|
||||||
|
}
|
20
aoevidencebutton.h
Normal file
20
aoevidencebutton.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#ifndef AOEVIDENCEBUTTON_H
|
||||||
|
#define AOEVIDENCEBUTTON_H
|
||||||
|
|
||||||
|
#include "aoapplication.h"
|
||||||
|
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
|
class AOEvidenceButton : public QPushButton
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
AOEvidenceButton(QWidget *p_parent, AOApplication *p_ao_app);
|
||||||
|
|
||||||
|
void set_image(QString p_image);
|
||||||
|
|
||||||
|
private:
|
||||||
|
AOApplication *ao_app;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // AOEVIDENCEBUTTON_H
|
@ -61,6 +61,8 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
|
|||||||
ui_vp_showname = new QLabel(ui_vp_chatbox);
|
ui_vp_showname = new QLabel(ui_vp_chatbox);
|
||||||
ui_vp_message = new QPlainTextEdit(ui_vp_chatbox);
|
ui_vp_message = new QPlainTextEdit(ui_vp_chatbox);
|
||||||
ui_vp_message->setFrameStyle(QFrame::NoFrame);
|
ui_vp_message->setFrameStyle(QFrame::NoFrame);
|
||||||
|
ui_vp_message->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
|
ui_vp_message->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
ui_vp_testimony = new AOImage(ui_viewport, ao_app);
|
ui_vp_testimony = new AOImage(ui_viewport, ao_app);
|
||||||
ui_vp_realization = new AOImage(this, ao_app);
|
ui_vp_realization = new AOImage(this, ao_app);
|
||||||
ui_vp_wtce = new AOMovie(ui_viewport, ao_app);
|
ui_vp_wtce = new AOMovie(ui_viewport, ao_app);
|
||||||
@ -332,6 +334,7 @@ void Courtroom::set_widgets()
|
|||||||
m_courtroom_width = f_courtroom.width;
|
m_courtroom_width = f_courtroom.width;
|
||||||
m_courtroom_height = f_courtroom.height;
|
m_courtroom_height = f_courtroom.height;
|
||||||
|
|
||||||
|
this->resize(m_courtroom_width, m_courtroom_height);
|
||||||
this->setFixedSize(m_courtroom_width, m_courtroom_height);
|
this->setFixedSize(m_courtroom_width, m_courtroom_height);
|
||||||
|
|
||||||
ui_background->set_image("courtroombackground.png");
|
ui_background->set_image("courtroombackground.png");
|
||||||
@ -1184,7 +1187,6 @@ void Courtroom::start_chat_ticking()
|
|||||||
|
|
||||||
void Courtroom::chat_tick()
|
void Courtroom::chat_tick()
|
||||||
{
|
{
|
||||||
//T0D0: play tick sound based on gender
|
|
||||||
//note: this is called fairly often(every 60 ms when char is talking)
|
//note: this is called fairly often(every 60 ms when char is talking)
|
||||||
//do not perform heavy operations here
|
//do not perform heavy operations here
|
||||||
|
|
||||||
@ -1204,6 +1206,7 @@ void Courtroom::chat_tick()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ui_vp_message->insertPlainText(f_message.at(tick_pos));
|
ui_vp_message->insertPlainText(f_message.at(tick_pos));
|
||||||
|
//ui_vp_message->app
|
||||||
|
|
||||||
QScrollBar *scroll = ui_vp_message->verticalScrollBar();
|
QScrollBar *scroll = ui_vp_message->verticalScrollBar();
|
||||||
scroll->setValue(scroll->maximum());
|
scroll->setValue(scroll->maximum());
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include "aomusicplayer.h"
|
#include "aomusicplayer.h"
|
||||||
#include "aosfxplayer.h"
|
#include "aosfxplayer.h"
|
||||||
#include "aoblipplayer.h"
|
#include "aoblipplayer.h"
|
||||||
|
#include "aoevidencebutton.h"
|
||||||
#include "datatypes.h"
|
#include "datatypes.h"
|
||||||
|
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
@ -172,7 +173,10 @@ private:
|
|||||||
int max_emotes_on_page = 10;
|
int max_emotes_on_page = 10;
|
||||||
|
|
||||||
int current_evidence_page = 0;
|
int current_evidence_page = 0;
|
||||||
//int current_evidence
|
int current_evidence = 0;
|
||||||
|
int evidence_columns = 6;
|
||||||
|
int evidence_rows = 3;
|
||||||
|
int max_evidence_on_page = 18;
|
||||||
|
|
||||||
//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;
|
||||||
@ -269,6 +273,9 @@ private:
|
|||||||
AOImage *ui_muted;
|
AOImage *ui_muted;
|
||||||
|
|
||||||
AOButton *ui_evidence_button;
|
AOButton *ui_evidence_button;
|
||||||
|
QVector<AOEvidenceButton*> ui_evidence_list;
|
||||||
|
AOImage *ui_evidence_left;
|
||||||
|
AOImage *ui_evidence_right;
|
||||||
|
|
||||||
AOImage *ui_evidence;
|
AOImage *ui_evidence;
|
||||||
|
|
||||||
|
31
evidence.cpp
31
evidence.cpp
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
void Courtroom::construct_evidence()
|
void Courtroom::construct_evidence()
|
||||||
{
|
{
|
||||||
//constructing emote button grid
|
//constructing evidence button grid
|
||||||
const int base_x_pos{10};
|
const int base_x_pos{10};
|
||||||
const int base_y_pos{0};
|
const int base_y_pos{0};
|
||||||
|
|
||||||
@ -12,8 +12,31 @@ void Courtroom::construct_evidence()
|
|||||||
const int y_modifier{49};
|
const int y_modifier{49};
|
||||||
int y_mod_count{0};
|
int y_mod_count{0};
|
||||||
|
|
||||||
emote_columns = ui_emotes->width() / x_modifier;
|
evidence_columns = ui_evidence->width() / x_modifier;
|
||||||
emote_rows = ui_emotes->height() / y_modifier;
|
evidence_rows = ui_evidence->height() / y_modifier;
|
||||||
|
|
||||||
max_emotes_on_page = emote_columns * emote_rows;
|
max_evidence_on_page = evidence_columns * evidence_rows;
|
||||||
|
|
||||||
|
for (int n = 0 ; n < max_emotes_on_page ; ++n)
|
||||||
|
{
|
||||||
|
int x_pos = base_x_pos + (x_modifier * x_mod_count);
|
||||||
|
int y_pos = base_y_pos + (y_modifier * y_mod_count);
|
||||||
|
|
||||||
|
AOEmoteButton *f_emote = new AOEmoteButton(ui_emotes, ao_app, x_pos, y_pos);
|
||||||
|
|
||||||
|
ui_emote_list.append(f_emote);
|
||||||
|
|
||||||
|
f_emote->set_id(n);
|
||||||
|
|
||||||
|
connect(f_emote, SIGNAL(emote_clicked(int)), this, SLOT(on_emote_clicked(int)));
|
||||||
|
|
||||||
|
++x_mod_count;
|
||||||
|
|
||||||
|
//if emote number is divisible by columns with rest columns -1 then the next emote button should start on a new line
|
||||||
|
if ((n % emote_columns) == (emote_columns - 1) && (n != 0))
|
||||||
|
{
|
||||||
|
++y_mod_count;
|
||||||
|
x_mod_count = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,11 @@ QString AOApplication::get_default_background_path()
|
|||||||
return get_base_path() + "background/gs4/";
|
return get_base_path() + "background/gs4/";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString AOApplication::get_evidence_path()
|
||||||
|
{
|
||||||
|
return get_base_path() + "evidence/";
|
||||||
|
}
|
||||||
|
|
||||||
QString Courtroom::get_background_path()
|
QString Courtroom::get_background_path()
|
||||||
{
|
{
|
||||||
return ao_app->get_base_path() + "background/" + current_background.toLower() + "/";
|
return ao_app->get_base_path() + "background/" + current_background.toLower() + "/";
|
||||||
|
@ -256,6 +256,20 @@ int AOApplication::get_emote_number(QString p_char)
|
|||||||
else return f_result.toInt();
|
else return f_result.toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString AOApplication::get_emote_comment(QString p_char, int p_emote)
|
||||||
|
{
|
||||||
|
QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "[Emotions]", "[SoundN]");
|
||||||
|
|
||||||
|
QStringList result_contents = f_result.split("#");
|
||||||
|
|
||||||
|
if (result_contents.size() < 4)
|
||||||
|
{
|
||||||
|
qDebug() << "W: misformatted char.ini: " << p_char << ", " << p_emote;
|
||||||
|
return "normal";
|
||||||
|
}
|
||||||
|
else return result_contents.at(0);
|
||||||
|
}
|
||||||
|
|
||||||
QString AOApplication::get_pre_emote(QString p_char, int p_emote)
|
QString AOApplication::get_pre_emote(QString p_char, int p_emote)
|
||||||
{
|
{
|
||||||
QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "[Emotions]", "[SoundN]");
|
QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "[Emotions]", "[SoundN]");
|
||||||
|
Loading…
Reference in New Issue
Block a user