Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reworked server advertiser, server info, ... #288

Merged
merged 21 commits into from
Apr 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
c8b5a33
Reworked server advertiser, server info, ...
TrickyLeifa Apr 10, 2022
deb0ca5
Added favorite server icon
TrickyLeifa Apr 10, 2022
162df02
Resolve OpenSSL dependency in workflow
TrickyLeifa Apr 10, 2022
fb8233c
Resolve OpenSSL dependency in workflow #2
TrickyLeifa Apr 10, 2022
adc7bfe
Fix link
TrickyLeifa Apr 10, 2022
ea30da0
Fix link
TrickyLeifa Apr 10, 2022
1ada628
Fixed name typo
TrickyLeifa Apr 10, 2022
e6e335b
Fixed name typo
TrickyLeifa Apr 10, 2022
abcd3fe
Added client_version packet support and versioning checks
TrickyLeifa Apr 10, 2022
1c0d452
Merge branch 'multiples/lobby-rework' of https://github.com/Chrezm/DR…
TrickyLeifa Apr 10, 2022
f3d210f
Suppress invalid version prompt when you don't have a server selected
TrickyLeifa Apr 10, 2022
df84175
Added config button to server browser and allow server browser to rel…
TrickyLeifa Apr 10, 2022
2636840
Fixed public/favorite filter resetting to default state after reload
TrickyLeifa Apr 10, 2022
a6b4b39
Renamed config to config_panel and textures as well
TrickyLeifa Apr 10, 2022
eeb948d
Renamed textures for config_panel
TrickyLeifa Apr 10, 2022
1a0841b
Allow both bold and outline text
TrickyLeifa Apr 10, 2022
873ed36
Removed about button from server browser
TrickyLeifa Apr 10, 2022
7224c20
Changed default to transparent black
TrickyLeifa Apr 10, 2022
e7d3ce8
Changed default color to half transparent grey
TrickyLeifa Apr 10, 2022
fee1c1e
Force the config_panel button to be shown if hidden/invalid size
TrickyLeifa Apr 10, 2022
7edf28c
Added switch between image or placeholder text for AOImage
TrickyLeifa Apr 10, 2022
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
9 changes: 9 additions & 0 deletions .github/workflows/build-all-merge-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,13 @@ jobs:
mkdir "3rd/bass"
mkdir "3rd/discord-rpc"

- name: Fetch OpenSSL (user)
shell: bash
working-directory: ${{env.parentworkspace}}
run: |
curl -L https://cdn.discordapp.com/attachments/457180869229019159/962750500632150168/openssl-1.1.1n.zip -o openssl.zip
unzip openssl.zip

- name: Fetch Discord external library
shell: bash
working-directory: ${{env.parentworkspace}}
Expand Down Expand Up @@ -148,6 +155,8 @@ jobs:
shell: bash
run: |
windeployqt.exe --quick --compiler-runtime .
cp ../libssl-1_1.dll .
cp ../libcrypto-1_1.dll .
cp ../discord-rpc/win32-dynamic/bin/discord-rpc.dll .
cp ../bass.dll .
cp ../bassopus.dll .
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/build-all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@ jobs:
mkdir "3rd/bass"
mkdir "3rd/discord-rpc"

- name: Fetch OpenSSL (user)
shell: bash
working-directory: ${{env.parentworkspace}}
run: |
curl -L https://cdn.discordapp.com/attachments/457180869229019159/962750500632150168/openssl-1.1.1n.zip -o openssl.zip
unzip openssl.zip

- name: Fetch Discord external library
shell: bash
working-directory: ${{env.parentworkspace}}
Expand Down Expand Up @@ -135,6 +142,8 @@ jobs:
shell: bash
run: |
windeployqt.exe --quick --compiler-runtime .
cp ../libssl-1_1.dll .
cp ../libcrypto-1_1.dll .
cp ../discord-rpc/win32-dynamic/bin/discord-rpc.dll .
cp ../bass.dll .
cp ../bassopus.dll .
Expand Down
3 changes: 2 additions & 1 deletion dronline-client.pro
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ HEADERS += \
src/drchatlog.h \
src/drdiscord.h \
src/dreffectmovie.h \
src/drmasterclient.h \
src/drmovie.h \
src/drpacket.h \
src/drpather.h \
Expand Down Expand Up @@ -110,6 +111,7 @@ SOURCES += \
src/drcharactermovie.cpp \
src/drchatlog.cpp \
src/dreffectmovie.cpp \
src/drmasterclient.cpp \
src/drmovie.cpp \
src/drpacket.cpp \
src/drpather.cpp \
Expand All @@ -127,7 +129,6 @@ SOURCES += \
src/lobby.cpp \
src/logger.cpp \
src/main.cpp \
src/master_socket.cpp \
src/misc_functions.cpp \
src/path_functions.cpp \
src/server_socket.cpp \
Expand Down
23 changes: 23 additions & 0 deletions res/ui/config_panel.ui
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,29 @@
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_7">
<property name="title">
<string>Server Advertiser</string>
</property>
<layout class="QFormLayout" name="formLayout_6">
<item row="0" column="0">
<widget class="QLabel" name="advertiser_label">
<property name="text">
<string>Address:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="advertiser">
<property name="placeholderText">
<string>https://serveraddress.addr/</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
Expand Down
55 changes: 9 additions & 46 deletions src/aoapplication.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "courtroom.h"
#include "debug_functions.h"
#include "drdiscord.h"
#include "drmasterclient.h"
#include "drpacket.h"
#include "drserversocket.h"
#include "lobby.h"
Expand All @@ -15,17 +16,11 @@
#include <QFontDatabase>
#include <QRegularExpression>

const QString AOApplication::MASTER_NAME = "Master";
const QString AOApplication::MASTER_HOST = "master.aceattorneyonline.com";
const int AOApplication::MASTER_PORT = 27016;
const int AOApplication::MASTER_RECONNECT_DELAY = 5000;

AOApplication::AOApplication(int &argc, char **argv) : QApplication(argc, argv)
{
ao_config = new AOConfig(this);
ao_config_panel = new AOConfigPanel(this);
dr_discord = new DRDiscord(this);
m_master_socket = new DRServerSocket(this);
m_server_socket = new DRServerSocket(this);

connect(ao_config, SIGNAL(theme_changed(QString)), this, SLOT(handle_theme_modification()));
Expand All @@ -47,23 +42,15 @@ AOApplication::AOApplication(int &argc, char **argv) : QApplication(argc, argv)
connect(ao_config, SIGNAL(discord_hide_server_changed(bool)), dr_discord, SLOT(set_hide_server(bool)));
connect(ao_config, SIGNAL(discord_hide_character_changed(bool)), dr_discord, SLOT(set_hide_character(bool)));

connect(m_master_socket, SIGNAL(connected_to_server()), this, SLOT(_p_send_master_handshake()));
connect(m_master_socket, SIGNAL(socket_error(QString)), this, SLOT(_p_handle_master_error(QString)));
connect(m_master_socket, SIGNAL(packet_received(DRPacket)), this, SLOT(_p_handle_master_packet(DRPacket)));

connect(m_server_socket, SIGNAL(disconnected_from_server()), this, SLOT(_p_handle_server_disconnection()));
connect(m_server_socket, SIGNAL(packet_received(DRPacket)), this, SLOT(_p_handle_server_packet(DRPacket)));

#ifndef QT_DEBUG
connect_to_master();
#endif
}

AOApplication::~AOApplication()
{
qInfo() << "Closing Danganronpa Online...";
destruct_lobby();
destruct_courtroom();
qInfo() << "Closing Danganronpa Online...";
}

int AOApplication::get_client_id() const
Expand Down Expand Up @@ -154,9 +141,14 @@ DRDiscord *AOApplication::get_discord() const
return dr_discord;
}

bool AOApplication::is_server_compatible() const
VersionNumber AOApplication::get_server_client_version() const
{
return feature_version_compatible;
return m_server_client_version;
}

VersionStatus AOApplication::get_server_client_version_status() const
{
return m_server_client_version_status;
}

void AOApplication::handle_theme_modification()
Expand All @@ -175,16 +167,6 @@ void AOApplication::handle_audiotracks_reloading()
emit reload_audiotracks();
}

void AOApplication::set_favorite_list()
{
m_favorite_server_list = read_serverlist_txt();
}

QVector<server_type> &AOApplication::get_favorite_list()
{
return m_favorite_server_list;
}

QString AOApplication::get_current_char()
{
if (!is_courtroom_constructed)
Expand Down Expand Up @@ -228,25 +210,6 @@ bool AOApplication::get_first_person_enabled()
return ao_config->get_bool("first_person", false);
}

void AOApplication::add_favorite_server(int p_server)
{
if (p_server < 0 || p_server >= m_server_list.size())
return;

server_type fav_server = m_server_list.at(p_server);

QString str_port = QString::number(fav_server.port);

QString server_line = fav_server.ip + ":" + str_port + ":" + fav_server.name;

write_to_serverlist_txt(server_line);
}

QVector<server_type> &AOApplication::get_server_list()
{
return m_server_list;
}

void AOApplication::load_fonts()
{
QFontDatabase l_database;
Expand Down
44 changes: 8 additions & 36 deletions src/aoapplication.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class AOConfig;
class AOConfigPanel;
class Courtroom;
class DRDiscord;
class DRMasterClient;
class DRServerSocket;
class Lobby;

Expand All @@ -21,21 +22,13 @@ class AOApplication : public QApplication
Q_OBJECT

public:
static const QString MASTER_NAME;
static const QString MASTER_HOST;
static const int MASTER_PORT;
static const int MASTER_RECONNECT_DELAY;

AOApplication(int &argc, char **argv);
~AOApplication();

int get_client_id() const;
void set_client_id(int id);

void connect_to_master();
void send_master_packet(DRPacket packet);
void request_server_list();
void connect_to_server(server_type server);
void connect_to_server(DRServerInfo server);
void send_server_packet(DRPacket packet);

Lobby *get_lobby() const;
Expand All @@ -48,21 +41,17 @@ class AOApplication : public QApplication

DRDiscord *get_discord() const;

bool is_server_compatible() const;
VersionNumber get_server_client_version() const;
VersionStatus get_server_client_version_status() const;

///////////////////////////////////////////

void set_favorite_list();
QVector<server_type> &get_favorite_list();
void add_favorite_server(int p_server);

QVector<server_type> &get_server_list();

// Returns the character the player has currently selected
QString get_current_char();

// implementation in path_functions.cpp
QString get_base_path();
QString get_base_file_path(QString file);
QString get_character_folder_path(QString character);
QString get_character_path(QString p_character, QString p_file);
// QString get_demothings_path();
Expand Down Expand Up @@ -102,18 +91,12 @@ class AOApplication : public QApplication
// TODO document what this does
QStringList get_sfx_list();

// Appends the argument string to serverlist.txt
void write_to_serverlist_txt(QString p_line);

// Writes to note file
void write_note(QString p_text, QString filename);

// appends to note file
void append_note(QString p_line, QString filename);

// Returns the contents of serverlist.txt
QVector<server_type> read_serverlist_txt();

QString read_ini(QString p_identifier, QString p_path);

QString read_theme_ini(QString p_identifier, QString p_file);
Expand Down Expand Up @@ -163,18 +146,12 @@ class AOApplication : public QApplication
// Returns effect on cc_config according to index
QStringList get_effect(int index);

// Returns wtce on cc_config according to index
QStringList get_wtce(int index);

// Returns the side of the p_char character from that characters ini file
QString get_char_side(QString p_char);

// Returns the showname from the ini of p_char
QString get_showname(QString p_char);

// Returns showname from showname.ini
QString read_showname(QString p_char);

// Returns the value of chat from the specific p_char's ini file
QString get_chat(QString p_char);

Expand Down Expand Up @@ -212,7 +189,6 @@ public slots:
AOConfigPanel *ao_config_panel = nullptr;
DRDiscord *dr_discord = nullptr;

DRServerSocket *m_master_socket = nullptr;
DRServerSocket *m_server_socket = nullptr;

Lobby *m_lobby = nullptr;
Expand All @@ -223,7 +199,9 @@ public slots:
bool is_courtroom_loaded = false;

///////////////server metadata////////////////
bool feature_version_compatible = false;

VersionNumber m_server_client_version;
VersionStatus m_server_client_version_status = VersionStatus::Ok;

///////////////loading info///////////////////
// player number, it's hardly used but might be needed for some old servers
Expand All @@ -238,13 +216,7 @@ public slots:
int m_music_count = 0;
int m_loaded_music = 0;

QVector<server_type> m_server_list;
QVector<server_type> m_favorite_server_list;

private slots:
void _p_send_master_handshake();
void _p_handle_master_error(QString);
void _p_handle_master_packet(DRPacket);
void _p_handle_server_disconnection();
void _p_handle_server_packet(DRPacket);
void on_courtroom_closing();
Expand Down
15 changes: 11 additions & 4 deletions src/aobutton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,17 @@ void AOButton::set_image(QString p_image)
l_hover_image = m_image;
}

this->setStyleSheet("QPushButton {border-image:url(\"" + m_image +
"\");}"
"QPushButton:hover {border-image:url(\"" +
l_hover_image + "\");}");
setStyleSheet("QPushButton {border-image:url(\"" + m_image +
"\");}"
"QPushButton:hover {border-image:url(\"" +
l_hover_image + "\");}");
setText(m_image.isEmpty() ? m_text : nullptr);
}

void AOButton::set_image_and_text(QString p_image, QString p_text)
{
m_text = p_text;
set_image(p_image);
}

void AOButton::refresh_image()
Expand Down
2 changes: 2 additions & 0 deletions src/aobutton.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@ class AOButton : public QPushButton
QString get_image();
bool has_image();
void set_image(QString p_image);
void set_image_and_text(QString p_image, QString p_text);
void refresh_image();

private:
AOApplication *ao_app = nullptr;
QString m_image;
QString m_image_stem;
QString m_text;
};

#endif // AOBUTTON_H
Loading