diff --git a/Attorney_Online_remake.pro b/Attorney_Online_remake.pro index a51e1f60d..0ce693ab1 100644 --- a/Attorney_Online_remake.pro +++ b/Attorney_Online_remake.pro @@ -20,7 +20,6 @@ SOURCES += main.cpp\ aoimage.cpp \ file_functions.cpp \ aobutton.cpp \ - global_variables.cpp \ debug_functions.cpp \ networkmanager.cpp \ aoapplication.cpp \ @@ -29,7 +28,8 @@ SOURCES += main.cpp\ hex_functions.cpp \ encryption_functions.cpp \ courtroom.cpp \ - aocharbutton.cpp + aocharbutton.cpp \ + hardware_functions.cpp HEADERS += lobby.h \ text_file_functions.h \ @@ -37,7 +37,6 @@ HEADERS += lobby.h \ aoimage.h \ file_functions.h \ aobutton.h \ - global_variables.h \ debug_functions.h \ networkmanager.h \ aoapplication.h \ @@ -46,4 +45,5 @@ HEADERS += lobby.h \ hex_functions.h \ encryption_functions.h \ courtroom.h \ - aocharbutton.h + aocharbutton.h \ + hardware_functions.h diff --git a/aoapplication.cpp b/aoapplication.cpp index 87525a80b..70aeb1522 100644 --- a/aoapplication.cpp +++ b/aoapplication.cpp @@ -28,6 +28,8 @@ void AOApplication::construct_lobby() w_lobby = new Lobby(this); lobby_constructed = true; + + w_lobby->show(); } void AOApplication::destruct_lobby() diff --git a/aocharbutton.cpp b/aocharbutton.cpp index 79dc4e8a8..41a4f402c 100644 --- a/aocharbutton.cpp +++ b/aocharbutton.cpp @@ -5,7 +5,7 @@ #include -AOCharButton::AOCharButton(QWidget *parent, AOApplication *p_ao_app) +AOCharButton::AOCharButton(QWidget *parent, AOApplication *p_ao_app) : QPushButton(parent) { m_parent = parent; diff --git a/courtroom.cpp b/courtroom.cpp index 72b53d18f..f0ad216e0 100644 --- a/courtroom.cpp +++ b/courtroom.cpp @@ -83,8 +83,22 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow() ui_char_select_background = new AOImage(this, ao_app); - //T0D0: allocate and position charbuttons - //QVector ui_char_button_list; + //setting up the grid and positions + const int base_x_pos{25}; + const int base_y_pos{36}; + + const int x_modifier{67}; + int x_mod_count{0}; + + const int y_modifier{67}; + int y_mod_count{0}; + + for (int n = 0 ; n < 90 ; ++n) + { + ui_char_button_list.append(new AOCharButton(ui_char_select_background, ao_app)); + } + + ui_char_select_background->hide(); ui_selector = new AOImage(ui_char_select_background, ao_app); @@ -96,12 +110,15 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow() connect(ui_reload_theme, SIGNAL(clicked()), this, SLOT(on_reload_theme_clicked())); + connect(ui_back_to_lobby, SIGNAL(clicked()), this, SLOT(on_back_to_lobby_clicked())); + set_widgets(); } void Courtroom::set_widgets() { this->setFixedSize(m_courtroom_width, m_courtroom_height); + this->setWindowTitle("Attorney Online 2: Server name here"); ui_background->set_image("courtroombackground.png"); ui_background->move(0, 0); @@ -146,10 +163,10 @@ void Courtroom::set_widgets() set_size_and_pos(ui_ooc_toggle, "ooc_toggle"); - set_size_and_pos(ui_witness_testimony, "witness testimony"); + set_size_and_pos(ui_witness_testimony, "witness_testimony"); set_size_and_pos(ui_cross_examination, "cross_examination"); - set_size_and_pos(ui_change_character, "change_character"; + set_size_and_pos(ui_change_character, "change_character"); set_size_and_pos(ui_reload_theme, "reload_theme"); ui_reload_theme->setText("Reload theme"); @@ -185,14 +202,19 @@ void Courtroom::set_widgets() ui_char_select_background->move(0, 0); ui_char_select_background->resize(m_courtroom_width, m_courtroom_height); - QVector ui_char_button_list; - AOImage *ui_selector; + //T0D0: uncomment and set position properly + //QVector ui_char_button_list; + + ui_selector->set_image("selector.png"); + ui_selector->hide(); - AOButton *ui_back_to_lobby; + ui_back_to_lobby->setText("Back to Lobby"); + set_size_and_pos(ui_back_to_lobby, "back_to_lobby"); - QLineEdit *ui_char_password; + set_size_and_pos(ui_char_password, "char_password"); - AOButton *ui_spectator; + ui_spectator->setText("spectator"); + set_size_and_pos(ui_spectator, "spectator"); } @@ -227,6 +249,12 @@ void Courtroom::on_reload_theme_clicked() set_widgets(); } +void Courtroom::on_back_to_lobby_clicked() +{ + ao_app->construct_lobby(); + ao_app->destruct_courtroom(); +} + Courtroom::~Courtroom() { diff --git a/courtroom.h b/courtroom.h index e0dee82f7..dee5401d2 100644 --- a/courtroom.h +++ b/courtroom.h @@ -123,6 +123,8 @@ class Courtroom : public QMainWindow private slots: void on_reload_theme_clicked(); + void on_back_to_lobby_clicked(); + }; #endif // COURTROOM_H diff --git a/global_variables.cpp b/global_variables.cpp deleted file mode 100644 index b3a7e1256..000000000 --- a/global_variables.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "global_variables.h" -#include "text_file_functions.h" - -const int RELEASE = 2; -const int MAJOR_VERSION = 1; -const int MINOR_VERSION = 0; - -QString g_user_theme = "default"; diff --git a/global_variables.h b/global_variables.h deleted file mode 100644 index 941ac49f6..000000000 --- a/global_variables.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef GLOBAL_VARIABLES_H -#define GLOBAL_VARIABLES_H - -#include - - - -#endif // GLOBAL_VARIABLES_H diff --git a/hardware_functions.cpp b/hardware_functions.cpp new file mode 100644 index 000000000..ce6e35a65 --- /dev/null +++ b/hardware_functions.cpp @@ -0,0 +1,34 @@ +#include "hardware_functions.h" + +#if (defined (_WIN32) || defined (_WIN64)) +DWORD dwVolSerial; +BOOL bIsRetrieved; + +QString get_hdid() +{ + bIsRetrieved = GetVolumeInformation(TEXT("C:\\"), NULL, NULL, &dwVolSerial, NULL, NULL, NULL, NULL); + + if (bIsRetrieved) + return QString::number(dwVolSerial, 16); + else + return "invalid_windows_hd"; //what could possibly go wrong + +} + +#elif (defined (LINUX) || defined (__linux__)) + +QString get_hdid() +{ + //T0D0: add linux implementation + return "linux_os_hdid"; +} + +#else + +QString get_hdid() +{ + //T0D0: find a sane way to handle this + return "unknown_os_hdid"; +} + +#endif diff --git a/hardware_functions.h b/hardware_functions.h new file mode 100644 index 000000000..7508a5a6e --- /dev/null +++ b/hardware_functions.h @@ -0,0 +1,14 @@ +#ifndef WIN32_FUNCTIONS_H +#define WIN32_FUNCTIONS_H + +#include + +#ifdef Q_OS_WIN32 +#include +#endif // Q_OS_WIN32 + +#include + +QString get_hdid(); + +#endif // WIN32_FUNCTIONS_H diff --git a/lobby.cpp b/lobby.cpp index 17cae5fcf..414ce933c 100644 --- a/lobby.cpp +++ b/lobby.cpp @@ -14,7 +14,6 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow() ao_app = p_ao_app; this->setWindowTitle("Attorney Online 2"); - this->resize(m_lobby_width, m_lobby_height); this->setFixedSize(m_lobby_width, m_lobby_height); ui_background = new AOImage(this, ao_app); @@ -167,18 +166,6 @@ void Lobby::on_add_to_fav_released() return; ao_app->add_favorite_server(ui_server_list->currentRow()); - /* - if (n_server < 0 || n_server >= ao_app->get_server_list().size()) - return; - - server_type fav_server = ao_app->get_server_list().at(n_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); - */ } void Lobby::on_connect_pressed() diff --git a/main.cpp b/main.cpp index f1e42fd4a..2116b52a2 100644 --- a/main.cpp +++ b/main.cpp @@ -9,13 +9,13 @@ int main(int argc, char *argv[]) { - AOApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - AOApplication main_app(argc, argv); - main_app.construct_lobby(); - main_app.net_manager->connect_to_master(); - AOPacket *f_packet = new AOPacket("ALL#%"); - main_app.send_ms_packet(f_packet); - main_app.w_lobby->show(); + AOApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + AOApplication main_app(argc, argv); + main_app.construct_lobby(); + main_app.net_manager->connect_to_master(); + AOPacket *f_packet = new AOPacket("ALL#%"); + main_app.send_ms_packet(f_packet); + main_app.w_lobby->show(); - return main_app.exec(); + return main_app.exec(); } diff --git a/packet_distribution.cpp b/packet_distribution.cpp index 4e02fb46c..5250dfab5 100644 --- a/packet_distribution.cpp +++ b/packet_distribution.cpp @@ -3,6 +3,7 @@ #include "lobby.h" #include "networkmanager.h" #include "encryption_functions.h" +#include "hardware_functions.h" #include @@ -85,9 +86,10 @@ void AOApplication::server_packet_received(AOPacket *p_packet) //you may ask where 322 comes from. that would be a good question. s_decryptor = fanta_decrypt(f_contents.at(0), 322).toUInt(); - //T0D0 add an actual HDID here - AOPacket *hi_packet = new AOPacket("HI#ao2testinginprogressdontmindme#%"); + QString f_hdid; + f_hdid = get_hdid(); + AOPacket *hi_packet = new AOPacket("HI#" + f_hdid + "#%"); send_server_packet(hi_packet); delete hi_packet; @@ -97,6 +99,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) if (f_contents.size() < 1) return; + //T0D0: save server version here, somehow(it's in the HI# packet usually) } else if (header == "CT") {