Merge remote-tracking branch 'refs/remotes/OmniTroid/master'

This commit is contained in:
stonedDiscord 2017-01-28 14:49:58 +01:00
commit d73ab6a589
11 changed files with 90 additions and 47 deletions

View File

@ -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

View File

@ -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

View File

@ -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() == "")

View File

@ -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:

View File

@ -10,6 +10,6 @@ void call_error(QString p_message)
msgBox->setWindowTitle("Error");
msgBox->setWindowModality(Qt::NonModal);
//msgBox->setWindowModality(Qt::NonModal);
msgBox->show();
}

View File

@ -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())

View File

@ -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;

BIN
logo.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View File

@ -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();
}

View File

@ -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)

View File

@ -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()