diff --git a/Attorney_Online_remake.pro b/Attorney_Online_remake.pro
index cc9579a4f..35c7aba48 100644
--- a/Attorney_Online_remake.pro
+++ b/Attorney_Online_remake.pro
@@ -88,7 +88,7 @@ HEADERS += lobby.h \
# in the same way as BASS. Discord RPC uses CMake, which does not play nicely with
# QMake, so this step must be manual.
unix:LIBS += -L$$PWD -lbass -ldiscord-rpc
-win32:LIBS += -L$$PWD "$$PWD/bass.dll" -ldiscord-rpc #"$$PWD/discord-rpc.dll"
+win32:LIBS += -L$$PWD "$$PWD/bass.lib" -ldiscord-rpc #"$$PWD/discord-rpc.dll"
android:LIBS += -L$$PWD\android\libs\armeabi-v7a\ -lbass
CONFIG += c++11
diff --git a/aoapplication.h b/aoapplication.h
index 2a5c43698..0c9458229 100644
--- a/aoapplication.h
+++ b/aoapplication.h
@@ -150,6 +150,9 @@ class AOApplication : public QApplication
//Returns the value of font_size with p_identifier from p_file
int get_font_size(QString p_identifier, QString p_file);
+ //Returns the name of the font with p_identifier from p_file
+ QString get_font_name(QString p_identifier, QString p_file);
+
//Returns the color with p_identifier from p_file
QColor get_color(QString p_identifier, QString p_file);
diff --git a/aotextarea.cpp b/aotextarea.cpp
index 40cc31480..38e293ce3 100644
--- a/aotextarea.cpp
+++ b/aotextarea.cpp
@@ -25,6 +25,8 @@ void AOTextArea::append_chatmessage(QString p_name, QString p_message)
p_message += " ";
QString result = p_message.toHtmlEscaped().replace("\n", "
").replace(omnis_dank_url_regex, "\\1" );
+ qDebug() << "STRING IS: " << result;
+
this->insertHtml(result);
this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
diff --git a/courtroom.cpp b/courtroom.cpp
index ca94f4349..29412fe3c 100644
--- a/courtroom.cpp
+++ b/courtroom.cpp
@@ -13,6 +13,7 @@
#include
#include
#include
+#include
Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
{
@@ -66,6 +67,16 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
ui_vp_desk = new AOScene(ui_viewport, ao_app);
ui_vp_legacy_desk = new AOScene(ui_viewport, ao_app);
+ ui_vp_music_display_a = new AOImage(this, ao_app);
+ ui_vp_music_display_b = new AOImage(this, ao_app);
+ ui_vp_music_area = new QWidget(ui_vp_music_display_a);
+ ui_vp_music_name = new QTextEdit(ui_vp_music_area);
+ ui_vp_music_name->setText("hewwo OwO");
+ ui_vp_music_name->setFrameStyle(QFrame::NoFrame);
+ ui_vp_music_name->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ ui_vp_music_name->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ ui_vp_music_name->setReadOnly(true);
+
ui_vp_evidence_display = new AOEvidenceDisplay(this, ao_app);
ui_vp_chatbox = new AOImage(this, ao_app);
@@ -391,6 +402,18 @@ void Courtroom::set_widgets()
set_size_and_pos(ui_vp_chatbox, "chatbox");
}
+ set_size_and_pos(ui_vp_music_area, "music_area");
+ ui_vp_music_area->show();
+ set_size_and_pos(ui_vp_music_name, "music_name");
+
+ set_size_and_pos(ui_vp_music_display_a, "music_display_a");
+ ui_vp_music_display_a->set_image("music_display_a.png");
+ ui_vp_music_display_a->show();
+
+ set_size_and_pos(ui_vp_music_display_b, "music_display_b");
+ ui_vp_music_display_b->set_image("music_display_b.png");
+ ui_vp_music_display_b->show();
+
ui_ic_chat_message->setStyleSheet("QLineEdit{background-color: rgba(100, 100, 100, 255);}");
ui_vp_chatbox->set_image("chatmed.png");
@@ -541,6 +564,8 @@ void Courtroom::set_widgets()
ui_char_select_right->set_image("arrow_right.png");
set_size_and_pos(ui_spectator, "spectator");
+
+ handle_music_anim(ui_vp_music_name, "music_name", "music_area");
}
void Courtroom::set_fonts()
@@ -551,6 +576,7 @@ void Courtroom::set_fonts()
set_font(ui_ms_chatlog, "ms_chatlog");
set_font(ui_server_chatlog, "server_chatlog");
set_font(ui_music_list, "music_list");
+ set_font(ui_vp_music_name, "music_name");
}
void Courtroom::set_font(QWidget *widget, QString p_identifier)
@@ -559,19 +585,47 @@ void Courtroom::set_font(QWidget *widget, QString p_identifier)
int f_weight = ao_app->get_font_size(p_identifier, design_file);
QString class_name = widget->metaObject()->className();
- widget->setFont(QFont("Sans", f_weight));
+ QString font_name = ao_app->get_font_name("font_" + p_identifier, design_file);
+
+ widget->setFont(QFont(font_name, f_weight));
QColor f_color = ao_app->get_color(p_identifier + "_color", design_file);
+ int bold = ao_app->get_font_size(p_identifier + "_bold", design_file); // is the font bold or not?
+
+ QString is_bold = "";
+ if(bold == 1) is_bold = "bold";
+
QString style_sheet_string = class_name + " { background-color: rgba(0, 0, 0, 0);\n" +
"color: rgba(" +
QString::number(f_color.red()) + ", " +
QString::number(f_color.green()) + ", " +
- QString::number(f_color.blue()) + ", 255); }";
+ QString::number(f_color.blue()) + ", 255);\n"
+ "font: " + is_bold + "; }";
widget->setStyleSheet(style_sheet_string);
}
+void Courtroom::handle_music_anim(QWidget *p_widget, QString p_identifier_a, QString p_identifier_b)
+{
+ QString file_a = "courtroom_design.ini";
+ QString file_b = "courtroom_fonts.ini";
+ pos_size_type res_a = ao_app->get_element_dimensions(p_identifier_a, file_a);
+ pos_size_type res_b = ao_app->get_element_dimensions(p_identifier_b, file_a);
+ int speed = ao_app->get_font_size(p_identifier_a + "_speed", file_b);
+ int nchar = ui_vp_music_name->toPlainText().size();
+
+ int time = nchar/speed*1000;
+
+ QPropertyAnimation *animation = new QPropertyAnimation(p_widget, "geometry");
+ animation->setLoopCount(-1);
+ animation->setDuration(time);
+ animation->setStartValue(QRect(-res_a.width + res_a.x, res_a.y, res_a.width, res_a.height));
+ animation->setEndValue(QRect(res_b.width + res_a.x, res_a.y, res_a.width, res_a.height));
+
+ animation->start();
+}
+
void Courtroom::set_window_title(QString p_title)
{
this->setWindowTitle(p_title);
@@ -923,6 +977,7 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
for (int n_string = 0 ; n_string < chatmessage_size ; ++n_string)
{
m_chatmessage[n_string] = p_contents->at(n_string);
+// qDebug() << "m_chatmessage[" << n_string << "] = " << m_chatmessage[n_string];
}
int f_char_id = m_chatmessage[CHAR_ID].toInt();
@@ -1156,7 +1211,7 @@ void Courtroom::append_ic_text(QString p_text, QString p_name)
normal.setFontWeight(QFont::Normal);
const QTextCursor old_cursor = ui_ic_chatlog->textCursor();
const int old_scrollbar_value = ui_ic_chatlog->verticalScrollBar()->value();
- const bool is_scrolled_up = old_scrollbar_value == ui_ic_chatlog->verticalScrollBar()->minimum();
+ const bool is_scrolled_up = old_scrollbar_value == ui_ic_chatlog->verticalScrollBar()->maximum();
ui_ic_chatlog->moveCursor(QTextCursor::Start);
@@ -1173,7 +1228,7 @@ void Courtroom::append_ic_text(QString p_text, QString p_name)
{
// The user hasn't selected any text and the scrollbar is at the top: scroll to the top.
ui_ic_chatlog->moveCursor(QTextCursor::Start);
- ui_ic_chatlog->verticalScrollBar()->setValue(ui_ic_chatlog->verticalScrollBar()->minimum());
+ ui_ic_chatlog->verticalScrollBar()->setValue(ui_ic_chatlog->verticalScrollBar()->maximum());
}
}
@@ -1535,6 +1590,11 @@ void Courtroom::handle_song(QStringList *p_contents)
music_player->play(f_song);
}
}
+
+ int pos = f_song.lastIndexOf(QChar('.'));
+ QString r_song = f_song.left(pos);
+
+ ui_vp_music_name->setText(r_song);
}
void Courtroom::handle_wtce(QString p_wtce)
diff --git a/courtroom.h b/courtroom.h
index 85554a0e8..c4e679681 100644
--- a/courtroom.h
+++ b/courtroom.h
@@ -31,6 +31,7 @@
#include
#include
#include
+#include
class AOApplication;
@@ -122,6 +123,9 @@ class Courtroom : public QMainWindow
//takes in a list where the first element is the song name and the second is the char id of who played it
void handle_song(QStringList *p_contents);
+ //animates music text
+ void handle_music_anim(QWidget *p_widget, QString p_identifier_a, QString p_identifier_b);
+
void play_preanim();
//plays the witness testimony or cross examination animation based on argument
@@ -276,6 +280,11 @@ class Courtroom : public QMainWindow
AOMovie *ui_vp_wtce;
AOMovie *ui_vp_objection;
+ AOImage *ui_vp_music_display_a;
+ AOImage *ui_vp_music_display_b;
+ QTextEdit *ui_vp_music_name;
+ QWidget *ui_vp_music_area;
+
QTextEdit *ui_ic_chatlog;
AOTextArea *ui_ms_chatlog;
diff --git a/lobby.cpp b/lobby.cpp
index 13ef55080..65104889e 100644
--- a/lobby.cpp
+++ b/lobby.cpp
@@ -12,7 +12,7 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow()
{
ao_app = p_ao_app;
- this->setWindowTitle("Attorney Online 2");
+ this->setWindowTitle("Danganronpa Online");
ui_background = new AOImage(this, ao_app);
ui_public_servers = new AOButton(this, ao_app);
diff --git a/logo.ico b/logo.ico
index b40e7866a..db9041a01 100644
Binary files a/logo.ico and b/logo.ico differ
diff --git a/logo.png b/logo.png
index f53fe30cf..824faaa92 100644
Binary files a/logo.png and b/logo.png differ
diff --git a/packet_distribution.cpp b/packet_distribution.cpp
index 3908ffa18..52ba92134 100644
--- a/packet_distribution.cpp
+++ b/packet_distribution.cpp
@@ -224,7 +224,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
courtroom_loaded = false;
- QString window_title = "Attorney Online 2";
+ QString window_title = "Danganronpa Online";
int selected_server = w_lobby->get_selected_server();
QString server_address = "", server_name = "";
diff --git a/text_file_functions.cpp b/text_file_functions.cpp
index 90b10f53a..939c7d3d8 100644
--- a/text_file_functions.cpp
+++ b/text_file_functions.cpp
@@ -314,6 +314,26 @@ QColor AOApplication::get_color(QString p_identifier, QString p_file)
return return_color;
}
+QString AOApplication::get_font_name(QString p_identifier, QString p_file)
+{
+ QString design_ini_path = get_theme_path() + p_file;
+ QString default_path = get_default_theme_path() + p_file;
+ QString f_result = read_design_ini(p_identifier, design_ini_path);
+
+ if(f_result == "")
+ {
+ f_result = read_design_ini(p_identifier, default_path);
+
+ if(f_result == "")
+ {
+ qDebug() << "Failure retreiving font name";
+ return f_result;
+ }
+ }
+
+ return f_result;
+}
+
QString AOApplication::get_sfx(QString p_identifier)
{
QString design_ini_path = get_theme_path() + "courtroom_sounds.ini";