Skip to content

Commit

Permalink
Merge pull request #288 from Chrezm/multiples/lobby-rework
Browse files Browse the repository at this point in the history
Reworked server advertiser, server info, ...
  • Loading branch information
Chrezm authored Apr 11, 2022
2 parents 3a791f6 + 7edf28c commit dbd9e7a
Show file tree
Hide file tree
Showing 32 changed files with 808 additions and 496 deletions.
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

0 comments on commit dbd9e7a

Please sign in to comment.