Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Attorney_Online_remake.pro
Original file line numberDiff line numberDiff line change
Expand Up@@ -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
Expand Down
3 changes: 3 additions & 0 deletions aoapplication.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);

Expand Down
2 changes: 2 additions & 0 deletions aotextarea.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ void AOTextArea::append_chatmessage(QString p_name, QString p_message)
p_message += " ";
QString result = p_message.toHtmlEscaped().replace("\n", "<br>").replace(omnis_dank_url_regex, "<a href='\\1'>\\1</a>" );

qDebug() << "STRING IS: " << result;

this->insertHtml(result);

this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
Expand Down
68 changes: 64 additions & 4 deletions courtroom.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -13,6 +13,7 @@
#include <QBrush>
#include <QTextCharFormat>
#include <QFont>
#include <QPropertyAnimation>

Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
{
Expand DownExpand Up@@ -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);
Expand DownExpand Up@@ -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");
Expand DownExpand Up@@ -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()
Expand All@@ -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)
Expand All@@ -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);
Expand DownExpand Up@@ -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();
Expand DownExpand Up@@ -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);

Expand All@@ -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());
}
}

Expand DownExpand Up@@ -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)
Expand Down
9 changes: 9 additions & 0 deletions courtroom.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,6 +31,7 @@
#include <QSignalMapper>
#include <QMap>
#include <QTextBrowser>
#include <QRect>

class AOApplication;

Expand DownExpand Up@@ -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
Expand DownExpand Up@@ -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;
Expand Down
2 changes: 1 addition & 1 deletion lobby.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);
Expand Down
Binary file modifiedlogo.ico
Binary file not shown.
Binary file modifiedlogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion packet_distribution.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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 = "";
Expand Down
20 changes: 20 additions & 0 deletions text_file_functions.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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";
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Attorney_Online_remake.pro
Original file line numberDiff line numberDiff line change
Expand Up@@ -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
Expand Down
3 changes: 3 additions & 0 deletions aoapplication.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);

Expand Down
2 changes: 2 additions & 0 deletions aotextarea.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ void AOTextArea::append_chatmessage(QString p_name, QString p_message)
p_message += " ";
QString result = p_message.toHtmlEscaped().replace("\n", "<br>").replace(omnis_dank_url_regex, "<a href='\\1'>\\1</a>" );

qDebug() << "STRING IS: " << result;

this->insertHtml(result);

this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
Expand Down
68 changes: 64 additions & 4 deletions courtroom.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -13,6 +13,7 @@
#include <QBrush>
#include <QTextCharFormat>
#include <QFont>
#include <QPropertyAnimation>

Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
{
Expand DownExpand Up@@ -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);
Expand DownExpand Up@@ -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");
Expand DownExpand Up@@ -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()
Expand All@@ -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)
Expand All@@ -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);
Expand DownExpand Up@@ -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();
Expand DownExpand Up@@ -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);

Expand All@@ -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());
}
}

Expand DownExpand Up@@ -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)
Expand Down
9 changes: 9 additions & 0 deletions courtroom.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,6 +31,7 @@
#include <QSignalMapper>
#include <QMap>
#include <QTextBrowser>
#include <QRect>

class AOApplication;

Expand DownExpand Up@@ -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
Expand DownExpand Up@@ -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;
Expand Down
2 changes: 1 addition & 1 deletion lobby.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);
Expand Down
Binary file modifiedlogo.ico
Binary file not shown.
Binary file modifiedlogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion packet_distribution.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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 = "";
Expand Down
20 changes: 20 additions & 0 deletions text_file_functions.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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";
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Attorney_Online_remake.pro
Original file line numberDiff line numberDiff line change
Expand Up@@ -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
Expand Down
3 changes: 3 additions & 0 deletions aoapplication.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);

Expand Down
2 changes: 2 additions & 0 deletions aotextarea.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ void AOTextArea::append_chatmessage(QString p_name, QString p_message)
p_message += " ";
QString result = p_message.toHtmlEscaped().replace("\n", "<br>").replace(omnis_dank_url_regex, "<a href='\\1'>\\1</a>" );

qDebug() << "STRING IS: " << result;

this->insertHtml(result);

this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
Expand Down
68 changes: 64 additions & 4 deletions courtroom.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -13,6 +13,7 @@
#include <QBrush>
#include <QTextCharFormat>
#include <QFont>
#include <QPropertyAnimation>

Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
{
Expand DownExpand Up@@ -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);
Expand DownExpand Up@@ -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");
Expand DownExpand Up@@ -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()
Expand All@@ -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)
Expand All@@ -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);
Expand DownExpand Up@@ -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();
Expand DownExpand Up@@ -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);

Expand All@@ -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());
}
}

Expand DownExpand Up@@ -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)
Expand Down
9 changes: 9 additions & 0 deletions courtroom.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,6 +31,7 @@
#include <QSignalMapper>
#include <QMap>
#include <QTextBrowser>
#include <QRect>

class AOApplication;

Expand DownExpand Up@@ -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
Expand DownExpand Up@@ -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;
Expand Down
2 changes: 1 addition & 1 deletion lobby.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);
Expand Down
Binary file modifiedlogo.ico
Binary file not shown.
Binary file modifiedlogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion packet_distribution.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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 = "";
Expand Down
20 changes: 20 additions & 0 deletions text_file_functions.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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";
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Attorney_Online_remake.pro
Original file line numberDiff line numberDiff line change
Expand Up@@ -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
Expand Down
3 changes: 3 additions & 0 deletions aoapplication.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);

Expand Down
2 changes: 2 additions & 0 deletions aotextarea.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ void AOTextArea::append_chatmessage(QString p_name, QString p_message)
p_message += " ";
QString result = p_message.toHtmlEscaped().replace("\n", "<br>").replace(omnis_dank_url_regex, "<a href='\\1'>\\1</a>" );

qDebug() << "STRING IS: " << result;

this->insertHtml(result);

this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
Expand Down
68 changes: 64 additions & 4 deletions courtroom.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -13,6 +13,7 @@
#include <QBrush>
#include <QTextCharFormat>
#include <QFont>
#include <QPropertyAnimation>

Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
{
Expand DownExpand Up@@ -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);
Expand DownExpand Up@@ -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");
Expand DownExpand Up@@ -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()
Expand All@@ -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)
Expand All@@ -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);
Expand DownExpand Up@@ -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();
Expand DownExpand Up@@ -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);

Expand All@@ -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());
}
}

Expand DownExpand Up@@ -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)
Expand Down
9 changes: 9 additions & 0 deletions courtroom.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,6 +31,7 @@
#include <QSignalMapper>
#include <QMap>
#include <QTextBrowser>
#include <QRect>

class AOApplication;

Expand DownExpand Up@@ -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
Expand DownExpand Up@@ -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;
Expand Down
2 changes: 1 addition & 1 deletion lobby.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);
Expand Down
Binary file modifiedlogo.ico
Binary file not shown.
Binary file modifiedlogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion packet_distribution.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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 = "";
Expand Down
20 changes: 20 additions & 0 deletions text_file_functions.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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";
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Attorney_Online_remake.pro
Original file line numberDiff line numberDiff line change
Expand Up@@ -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
Expand Down
3 changes: 3 additions & 0 deletions aoapplication.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);

Expand Down
2 changes: 2 additions & 0 deletions aotextarea.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ void AOTextArea::append_chatmessage(QString p_name, QString p_message)
p_message += " ";
QString result = p_message.toHtmlEscaped().replace("\n", "<br>").replace(omnis_dank_url_regex, "<a href='\\1'>\\1</a>" );

qDebug() << "STRING IS: " << result;

this->insertHtml(result);

this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
Expand Down
68 changes: 64 additions & 4 deletions courtroom.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -13,6 +13,7 @@
#include <QBrush>
#include <QTextCharFormat>
#include <QFont>
#include <QPropertyAnimation>

Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
{
Expand DownExpand Up@@ -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);
Expand DownExpand Up@@ -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");
Expand DownExpand Up@@ -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()
Expand All@@ -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)
Expand All@@ -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);
Expand DownExpand Up@@ -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();
Expand DownExpand Up@@ -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);

Expand All@@ -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());
}
}

Expand DownExpand Up@@ -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)
Expand Down
9 changes: 9 additions & 0 deletions courtroom.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,6 +31,7 @@
#include <QSignalMapper>
#include <QMap>
#include <QTextBrowser>
#include <QRect>

class AOApplication;

Expand DownExpand Up@@ -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
Expand DownExpand Up@@ -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;
Expand Down
2 changes: 1 addition & 1 deletion lobby.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);
Expand Down
Binary file modifiedlogo.ico
Binary file not shown.
Binary file modifiedlogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion packet_distribution.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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 = "";
Expand Down
20 changes: 20 additions & 0 deletions text_file_functions.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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";
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Attorney_Online_remake.pro
Original file line numberDiff line numberDiff line change
Expand Up@@ -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
Expand Down
3 changes: 3 additions & 0 deletions aoapplication.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);

Expand Down
2 changes: 2 additions & 0 deletions aotextarea.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ void AOTextArea::append_chatmessage(QString p_name, QString p_message)
p_message += " ";
QString result = p_message.toHtmlEscaped().replace("\n", "<br>").replace(omnis_dank_url_regex, "<a href='\\1'>\\1</a>" );

qDebug() << "STRING IS: " << result;

this->insertHtml(result);

this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
Expand Down
68 changes: 64 additions & 4 deletions courtroom.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -13,6 +13,7 @@
#include <QBrush>
#include <QTextCharFormat>
#include <QFont>
#include <QPropertyAnimation>

Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
{
Expand DownExpand Up@@ -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);
Expand DownExpand Up@@ -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");
Expand DownExpand Up@@ -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()
Expand All@@ -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)
Expand All@@ -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);
Expand DownExpand Up@@ -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();
Expand DownExpand Up@@ -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);

Expand All@@ -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());
}
}

Expand DownExpand Up@@ -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)
Expand Down
9 changes: 9 additions & 0 deletions courtroom.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,6 +31,7 @@
#include <QSignalMapper>
#include <QMap>
#include <QTextBrowser>
#include <QRect>

class AOApplication;

Expand DownExpand Up@@ -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
Expand DownExpand Up@@ -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;
Expand Down
2 changes: 1 addition & 1 deletion lobby.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);
Expand Down
Binary file modifiedlogo.ico
Binary file not shown.
Binary file modifiedlogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion packet_distribution.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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 = "";
Expand Down
20 changes: 20 additions & 0 deletions text_file_functions.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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";
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Attorney_Online_remake.pro
Original file line numberDiff line numberDiff line change
Expand Up@@ -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
Expand Down
3 changes: 3 additions & 0 deletions aoapplication.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);

Expand Down
2 changes: 2 additions & 0 deletions aotextarea.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ void AOTextArea::append_chatmessage(QString p_name, QString p_message)
p_message += " ";
QString result = p_message.toHtmlEscaped().replace("\n", "<br>").replace(omnis_dank_url_regex, "<a href='\\1'>\\1</a>" );

qDebug() << "STRING IS: " << result;

this->insertHtml(result);

this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
Expand Down
68 changes: 64 additions & 4 deletions courtroom.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -13,6 +13,7 @@
#include <QBrush>
#include <QTextCharFormat>
#include <QFont>
#include <QPropertyAnimation>

Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
{
Expand DownExpand Up@@ -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);
Expand DownExpand Up@@ -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");
Expand DownExpand Up@@ -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()
Expand All@@ -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)
Expand All@@ -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);
Expand DownExpand Up@@ -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();
Expand DownExpand Up@@ -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);

Expand All@@ -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());
}
}

Expand DownExpand Up@@ -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)
Expand Down
9 changes: 9 additions & 0 deletions courtroom.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,6 +31,7 @@
#include <QSignalMapper>
#include <QMap>
#include <QTextBrowser>
#include <QRect>

class AOApplication;

Expand DownExpand Up@@ -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
Expand DownExpand Up@@ -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;
Expand Down
2 changes: 1 addition & 1 deletion lobby.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);
Expand Down
Binary file modifiedlogo.ico
Binary file not shown.
Binary file modifiedlogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion packet_distribution.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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 = "";
Expand Down
20 changes: 20 additions & 0 deletions text_file_functions.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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";
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Attorney_Online_remake.pro
Original file line numberDiff line numberDiff line change
Expand Up@@ -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
Expand Down
3 changes: 3 additions & 0 deletions aoapplication.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);

Expand Down
2 changes: 2 additions & 0 deletions aotextarea.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -25,6 +25,8 @@ void AOTextArea::append_chatmessage(QString p_name, QString p_message)
p_message += " ";
QString result = p_message.toHtmlEscaped().replace("\n", "<br>").replace(omnis_dank_url_regex, "<a href='\\1'>\\1</a>" );

qDebug() << "STRING IS: " << result;

this->insertHtml(result);

this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
Expand Down
68 changes: 64 additions & 4 deletions courtroom.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -13,6 +13,7 @@
#include <QBrush>
#include <QTextCharFormat>
#include <QFont>
#include <QPropertyAnimation>

Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
{
Expand DownExpand Up@@ -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);
Expand DownExpand Up@@ -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");
Expand DownExpand Up@@ -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()
Expand All@@ -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)
Expand All@@ -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);
Expand DownExpand Up@@ -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();
Expand DownExpand Up@@ -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);

Expand All@@ -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());
}
}

Expand DownExpand Up@@ -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)
Expand Down
9 changes: 9 additions & 0 deletions courtroom.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,6 +31,7 @@
#include <QSignalMapper>
#include <QMap>
#include <QTextBrowser>
#include <QRect>

class AOApplication;

Expand DownExpand Up@@ -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
Expand DownExpand Up@@ -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;
Expand Down
2 changes: 1 addition & 1 deletion lobby.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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);
Expand Down
Binary file modifiedlogo.ico
Binary file not shown.
Binary file modifiedlogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion packet_distribution.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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 = "";
Expand Down
20 changes: 20 additions & 0 deletions text_file_functions.cpp
Original file line numberDiff line numberDiff line change
Expand Up@@ -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";
Expand Down