Merge remote-tracking branch 'refs/remotes/OmniTroid/master'
This commit is contained in:
commit
d73ab6a589
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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() == "")
|
||||
|
@ -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:
|
||||
|
@ -10,6 +10,6 @@ void call_error(QString p_message)
|
||||
msgBox->setWindowTitle("Error");
|
||||
|
||||
|
||||
msgBox->setWindowModality(Qt::NonModal);
|
||||
//msgBox->setWindowModality(Qt::NonModal);
|
||||
msgBox->show();
|
||||
}
|
||||
|
14
lobby.cpp
14
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())
|
||||
|
5
lobby.h
5
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;
|
||||
|
5
main.cpp
5
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();
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user