aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Attorney_Online_remake.pro2
-rw-r--r--base/themes/default/lobby_design.ini2
-rw-r--r--courtroom.cpp27
-rw-r--r--courtroom.h3
-rw-r--r--debug_functions.cpp2
-rw-r--r--lobby.cpp14
-rw-r--r--lobby.h5
-rw-r--r--logo.icobin0 -> 99678 bytes
-rw-r--r--main.cpp5
-rw-r--r--packet_distribution.cpp71
-rw-r--r--path_functions.cpp6
11 files changed, 90 insertions, 47 deletions
diff --git a/Attorney_Online_remake.pro b/Attorney_Online_remake.pro
index c784578..a34f049 100644
--- a/Attorney_Online_remake.pro
+++ b/Attorney_Online_remake.pro
@@ -8,6 +8,8 @@ QT += core gui multimedia network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+RC_ICONS = logo.ico
+
TARGET = Attorney_Online_remake
TEMPLATE = app
diff --git a/base/themes/default/lobby_design.ini b/base/themes/default/lobby_design.ini
index efce59a..4806b86 100644
--- a/base/themes/default/lobby_design.ini
+++ b/base/themes/default/lobby_design.ini
@@ -1,5 +1,5 @@
lobby = 0, 0, 517, 666
-public_servers = 46, 88, 114, 30
+publi_servers = 46, 88, 114, 30
favorites = 164, 88, 114, 30
refresh = 56, 381, 132, 28
add_to_fav = 194, 381, 132, 28
diff --git a/courtroom.cpp b/courtroom.cpp
index f408b14..71ff16b 100644
--- a/courtroom.cpp
+++ b/courtroom.cpp
@@ -177,7 +177,8 @@ void Courtroom::set_widgets()
//viewport elements like background, desk, etc. go here
set_size_and_pos(ui_ic_chatlog, "ic_chatlog");
- ui_ic_chatlog->setStyleSheet("background-color: rgba(0, 0, 0, 0);");
+ ui_ic_chatlog->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
+ "color: white;");
set_size_and_pos(ui_ms_chatlog, "ms_chatlog");
ui_ms_chatlog->setStyleSheet("background-color: rgba(0, 0, 0, 0);");
@@ -319,6 +320,11 @@ void Courtroom::set_widgets()
}
+void Courtroom::set_window_title(QString p_title)
+{
+ this->setWindowTitle(p_title);
+}
+
void Courtroom::set_size_and_pos(QWidget *p_widget, QString p_identifier)
{
QString design_ini_path = ao_app->get_theme_path() + "courtroom_design.ini";
@@ -396,9 +402,14 @@ void Courtroom::set_char_select_page()
for (int n_button = 0 ; n_button < chars_on_page ; ++n_button)
{
int n_real_char = n_button + current_char_page * 90;
+ AOCharButton *f_button = ui_char_button_list.at(n_button);
- ui_char_button_list.at(n_button)->set_image(char_list.at(n_real_char).name);
- ui_char_button_list.at(n_button)->show();
+ f_button->reset();
+ f_button->set_image(char_list.at(n_real_char).name);
+ f_button->show();
+
+ if (char_list.at(n_real_char).taken)
+ f_button->set_taken();
}
}
@@ -444,6 +455,16 @@ void Courtroom::append_server_chatmessage(QString f_message)
ui_server_chatlog->appendPlainText(f_message);
}
+void Courtroom::handle_chatmessage(QStringList *p_contents)
+{
+ QString f_message = p_contents->at(2) + ": " + p_contents->at(4) + '\n';
+
+ ui_ic_chatlog->moveCursor(QTextCursor::Start);
+ ui_ic_chatlog->insertPlainText(f_message);
+
+ //T0D0: play objection gif->preanimation if there is any
+}
+
void Courtroom::on_ooc_return_pressed()
{
if (ui_ooc_chat_message->text() == "" || ui_ooc_chat_name->text() == "")
diff --git a/courtroom.h b/courtroom.h
index 9f25387..822fbff 100644
--- a/courtroom.h
+++ b/courtroom.h
@@ -31,6 +31,7 @@ public:
void append_music(QString f_music){music_list.append(f_music);}
void set_widgets();
+ void set_window_title(QString p_title);
void set_size_and_pos(QWidget *p_widget, QString p_identifier);
void set_taken(int n_char, bool p_taken);
void set_char_select_page();
@@ -40,6 +41,8 @@ public:
void append_ms_chatmessage(QString f_message);
void append_server_chatmessage(QString f_message);
+ void handle_chatmessage(QStringList *p_contents);
+
~Courtroom();
private:
diff --git a/debug_functions.cpp b/debug_functions.cpp
index a77e4ea..7206885 100644
--- a/debug_functions.cpp
+++ b/debug_functions.cpp
@@ -10,6 +10,6 @@ void call_error(QString p_message)
msgBox->setWindowTitle("Error");
- msgBox->setWindowModality(Qt::NonModal);
+ //msgBox->setWindowModality(Qt::NonModal);
msgBox->show();
}
diff --git a/lobby.cpp b/lobby.cpp
index 8bc67bd..836c5ac 100644
--- a/lobby.cpp
+++ b/lobby.cpp
@@ -133,10 +133,7 @@ void Lobby::set_size_and_pos(QWidget *p_widget, QString p_identifier)
if (design_ini_result.width < 0 || design_ini_result.height < 0)
{
- //at this point it's pretty much game over
- //T0D0: add message box
- qDebug() << "CRITICAL ERROR: NO SUITABLE DATA FOR SETTING " << p_identifier;
- ao_app->quit();
+ call_error(" could not find \"" + p_identifier + "\" in lobby_design.ini");
}
}
@@ -158,6 +155,11 @@ QString Lobby::get_chatlog()
return return_value;
}
+int Lobby::get_selected_server()
+{
+ return ui_server_list->currentRow();
+}
+
void Lobby::on_public_servers_clicked()
{
ui_public_servers->set_image("publicservers_selected.png");
@@ -283,6 +285,10 @@ void Lobby::on_chatfield_return_pressed()
void Lobby::list_servers()
{
+ public_servers_selected = true;
+ ui_favorites->set_image("favorites.png");
+ ui_public_servers->set_image("publicservers_selected.png");
+
ui_server_list->clear();
for (server_type i_server : ao_app->get_server_list())
diff --git a/lobby.h b/lobby.h
index ebdc05b..843ad70 100644
--- a/lobby.h
+++ b/lobby.h
@@ -30,6 +30,9 @@ public:
void show_loading_overlay(){ui_loading_background->show();}
void hide_loading_overlay(){ui_loading_background->hide();}
QString get_chatlog();
+ int get_selected_server();
+
+ bool public_servers_selected = true;
~Lobby();
@@ -39,8 +42,6 @@ private:
const int m_lobby_width = 517;
const int m_lobby_height = 666;
- bool public_servers_selected = true;
-
AOImage *ui_background;
AOButton *ui_public_servers;
diff --git a/logo.ico b/logo.ico
new file mode 100644
index 0000000..b40e786
--- /dev/null
+++ b/logo.ico
Binary files differ
diff --git a/main.cpp b/main.cpp
index 2116b52..130e1be 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,4 +1,3 @@
-#include <QDebug>
#include "aoapplication.h"
@@ -7,8 +6,11 @@
#include "lobby.h"
#include "courtroom.h"
+#include <QDebug>
+
int main(int argc, char *argv[])
{
+
AOApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
AOApplication main_app(argc, argv);
main_app.construct_lobby();
@@ -17,5 +19,6 @@ int main(int argc, char *argv[])
main_app.send_ms_packet(f_packet);
main_app.w_lobby->show();
+
return main_app.exec();
}
diff --git a/packet_distribution.cpp b/packet_distribution.cpp
index 163c744..6d24278 100644
--- a/packet_distribution.cpp
+++ b/packet_distribution.cpp
@@ -115,7 +115,8 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
QString message_line = f_contents.at(0) + ": " + f_contents.at(1);
- w_courtroom->append_server_chatmessage(message_line);
+ if (courtroom_constructed)
+ w_courtroom->append_server_chatmessage(message_line);
}
else if (header == "PN")
{
@@ -137,9 +138,25 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
loaded_music = 0;
destruct_courtroom();
-
construct_courtroom();
+ QString window_title = "Attorney Online 2";
+ int selected_server = w_lobby->get_selected_server();
+
+
+ if (w_lobby->public_servers_selected)
+ {
+ if (selected_server >= 0 && selected_server < server_list.size())
+ window_title += ": " + server_list.at(selected_server).name;
+ }
+ else
+ {
+ if (selected_server >= 0 && selected_server < favorite_list.size())
+ window_title += ": " + favorite_list.at(selected_server).name;
+ }
+
+ w_courtroom->set_window_title(window_title);
+
w_lobby->show_loading_overlay();
w_lobby->set_loading_text("Loading");
@@ -177,19 +194,9 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_courtroom->append_char(f_char);
}
- if (loaded_chars < char_list_size)
- {
- QString next_packet_number = QString::number(((loaded_chars - 1) / 10) + 1);
- send_server_packet(new AOPacket("AN#" + next_packet_number + "#%"));
- }
+ QString next_packet_number = QString::number(((loaded_chars - 1) / 10) + 1);
+ send_server_packet(new AOPacket("AN#" + next_packet_number + "#%"));
- else
- {
- if (evidence_list_size == 0)
- send_server_packet(new AOPacket("AM#0#%"));
- else
- send_server_packet(new AOPacket("AE#0#%"));
- }
}
else if (header == "EI"){
if (!courtroom_constructed)
@@ -220,16 +227,9 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_courtroom->append_evidence(f_evi);
- if (loaded_evidence < evidence_list_size)
- {
- qDebug() << "loaded evidence: " << loaded_evidence;
- QString next_packet_number = QString::number(loaded_evidence);
- send_server_packet(new AOPacket("AE#" + next_packet_number + "#%"));
- }
- else
- {
- send_server_packet(new AOPacket("AM#0#%"));
- }
+ QString next_packet_number = QString::number(loaded_evidence);
+ send_server_packet(new AOPacket("AE#" + next_packet_number + "#%"));
+
}
else if (header == "EM")
{
@@ -253,16 +253,10 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_courtroom->append_music(f_music);
}
- //apparently we need to intentionally send another AM packet to get onwards in the loading process
- //in spite of the fact that we actually received all the music
- //enjoy fanta
- //if (loaded_music < music_list_size)
- //{
- QString next_packet_number = QString::number(((loaded_music - 1) / 10) + 1);
- send_server_packet(new AOPacket("AM#" + next_packet_number + "#%"));
- //}
+ QString next_packet_number = QString::number(((loaded_music - 1) / 10) + 1);
+ send_server_packet(new AOPacket("AM#" + next_packet_number + "#%"));
}
- if (header == "CharsCheck")
+ else if (header == "CharsCheck")
{
for (int n_char = 0 ; n_char < f_contents.size() ; ++n_char)
{
@@ -272,7 +266,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_courtroom->set_taken(n_char, false);
}
}
- if (header == "DONE")
+ else if (header == "DONE")
{
if (!courtroom_constructed)
return;
@@ -286,13 +280,20 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
destruct_lobby();
}
//server accepting char request(CC) packet
- if (header == "PV")
+ else if (header == "PV")
{
if (f_contents.size() < 3)
return;
w_courtroom->enter_courtroom(f_contents.at(2).toInt());
}
+ else if (header == "MS")
+ {
+ if (courtroom_constructed)
+ w_courtroom->handle_chatmessage(&p_packet->get_contents());
+ }
+
+ delete p_packet;
}
void AOApplication::send_ms_packet(AOPacket *p_packet)
diff --git a/path_functions.cpp b/path_functions.cpp
index 5b9e92e..0093e4d 100644
--- a/path_functions.cpp
+++ b/path_functions.cpp
@@ -4,7 +4,13 @@
#include <QDebug>
QString AOApplication::get_base_path(){
+
+#ifdef OMNI_DEBUG
+ return "/media/omnitroid/Data/winshare/AO/client/base/";
+#else
return (QDir::currentPath() + "/base/");
+#endif
+
}
QString AOApplication::get_theme_path()