From 3797a1e9efa9423c5512004c18860c283a54301b Mon Sep 17 00:00:00 2001 From: oldmud0 Date: Mon, 8 Jan 2018 00:40:50 -0600 Subject: Add Discord rich presence This would work, were it not for some freak stack corruption caused by GCC not liking the Discord RPC library... --- packet_distribution.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'packet_distribution.cpp') diff --git a/packet_distribution.cpp b/packet_distribution.cpp index 4d74654..6e3232a 100644 --- a/packet_distribution.cpp +++ b/packet_distribution.cpp @@ -8,6 +8,7 @@ #include "debug_functions.h" #include +#include void AOApplication::ms_packet_received(AOPacket *p_packet) { @@ -226,15 +227,24 @@ void AOApplication::server_packet_received(AOPacket *p_packet) QString window_title = "Attorney Online 2"; int selected_server = w_lobby->get_selected_server(); + QString server_address = "", server_name = ""; if (w_lobby->public_servers_selected) { - if (selected_server >= 0 && selected_server < server_list.size()) - window_title += ": " + server_list.at(selected_server).name; + if (selected_server >= 0 && selected_server < server_list.size()) { + auto info = server_list.at(selected_server); + server_name = info.name; + server_address = info.ip + info.port; + window_title += ": " + server_name; + } } else { - if (selected_server >= 0 && selected_server < favorite_list.size()) - window_title += ": " + favorite_list.at(selected_server).name; + if (selected_server >= 0 && selected_server < favorite_list.size()) { + auto info = favorite_list.at(selected_server); + server_name = info.name; + server_address = info.ip + info.port; + window_title += ": " + server_name; + } } w_courtroom->set_window_title(window_title); @@ -251,6 +261,10 @@ void AOApplication::server_packet_received(AOPacket *p_packet) f_packet = new AOPacket("askchar2#%"); send_server_packet(f_packet); + + QCryptographicHash hash(QCryptographicHash::Algorithm::Sha256); + hash.addData(server_address.toUtf8()); + discord->state_server((const char*) server_name.toLocal8Bit().data(), (const char*) hash.result().toBase64()); } else if (header == "CI") { -- cgit From 8a91dea6ce2fa88cdc720759f17d3ac4cf05070b Mon Sep 17 00:00:00 2001 From: oldmud0 Date: Mon, 8 Jan 2018 13:33:39 -0600 Subject: Add spectate state; add "playing as character" state --- packet_distribution.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packet_distribution.cpp') diff --git a/packet_distribution.cpp b/packet_distribution.cpp index 6e3232a..3908ffa 100644 --- a/packet_distribution.cpp +++ b/packet_distribution.cpp @@ -264,7 +264,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) QCryptographicHash hash(QCryptographicHash::Algorithm::Sha256); hash.addData(server_address.toUtf8()); - discord->state_server((const char*) server_name.toLocal8Bit().data(), (const char*) hash.result().toBase64()); + discord->state_server(server_name.toStdString(), hash.result().toBase64().toStdString()); } else if (header == "CI") { -- cgit