diff --git a/Attorney_Online_remake.pro b/Attorney_Online_remake.pro index a51e1f6..fe41bc2 100644 --- a/Attorney_Online_remake.pro +++ b/Attorney_Online_remake.pro @@ -29,7 +29,8 @@ SOURCES += main.cpp\ hex_functions.cpp \ encryption_functions.cpp \ courtroom.cpp \ - aocharbutton.cpp + aocharbutton.cpp \ + win32_functions.cpp HEADERS += lobby.h \ text_file_functions.h \ @@ -46,4 +47,5 @@ HEADERS += lobby.h \ hex_functions.h \ encryption_functions.h \ courtroom.h \ - aocharbutton.h + aocharbutton.h \ + win32_functions.h diff --git a/main.cpp b/main.cpp index f1e42fd..2116b52 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 4e02fb4..114f01b 100644 --- a/packet_distribution.cpp +++ b/packet_distribution.cpp @@ -3,6 +3,7 @@ #include "lobby.h" #include "networkmanager.h" #include "encryption_functions.h" +#include "win32_functions.h" #include @@ -85,9 +86,14 @@ 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; +#ifdef Q_OS_WIN32 + f_hdid = get_hdid(); +#else + f_hdid = "ao2testinginprogress"; +#endif + AOPacket *hi_packet = new AOPacket("HI#" + f_hdid + "#%"); send_server_packet(hi_packet); delete hi_packet; @@ -97,6 +103,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) if (f_contents.size() < 1) return; + //T0D0: save server version here, somehow } else if (header == "CT") { diff --git a/win32_functions.cpp b/win32_functions.cpp new file mode 100644 index 0000000..76ca18a --- /dev/null +++ b/win32_functions.cpp @@ -0,0 +1,15 @@ +#include "win32_functions.h" + +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 "invalidhd"; //what could possibly go wrong + +} diff --git a/win32_functions.h b/win32_functions.h new file mode 100644 index 0000000..a095b88 --- /dev/null +++ b/win32_functions.h @@ -0,0 +1,11 @@ +#ifndef WIN32_FUNCTIONS_H +#define WIN32_FUNCTIONS_H + +#include + +#include +#include + +QString get_hdid(); + +#endif // WIN32_FUNCTIONS_H