aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Skoland <davidskoland@gmail.com>2017-02-13 17:52:12 +0100
committerDavid Skoland <davidskoland@gmail.com>2017-02-13 17:52:12 +0100
commit511b1e7eeeec1f943246e6ffd71aaadd8c867fe7 (patch)
tree2269fbaf1853095b84cc425d87fa3679420309eb
parent7eb07749c56f85fd34e4ff6f2fb05086cdeb5451 (diff)
fixed a bug where & would cause songs not to play
-rw-r--r--Attorney_Online_remake.pro1
-rw-r--r--aoapplication.h2
-rw-r--r--courtroom.cpp49
-rw-r--r--courtroom.h7
-rw-r--r--packet_distribution.cpp7
5 files changed, 62 insertions, 4 deletions
diff --git a/Attorney_Online_remake.pro b/Attorney_Online_remake.pro
index 5ef1d8fc..79d20294 100644
--- a/Attorney_Online_remake.pro
+++ b/Attorney_Online_remake.pro
@@ -67,3 +67,4 @@ HEADERS += lobby.h \
aoblipplayer.h
unix:LIBS += -L/home/omnitroid/Project/Attorney_Online_2/src -lbass
+win32:LIBS += "$$PWD/bass.dll"
diff --git a/aoapplication.h b/aoapplication.h
index 4669184e..71ed819e 100644
--- a/aoapplication.h
+++ b/aoapplication.h
@@ -37,7 +37,7 @@ public:
void server_packet_received(AOPacket *p_packet);
void send_ms_packet(AOPacket *p_packet);
- void send_server_packet(AOPacket *p_packet);
+ void send_server_packet(AOPacket *p_packet, bool encoded = true);
/////////////////server metadata//////////////////
diff --git a/courtroom.cpp b/courtroom.cpp
index 300e3e8a..a322dec5 100644
--- a/courtroom.cpp
+++ b/courtroom.cpp
@@ -208,6 +208,8 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
//emote signals are set in emotes.cpp
+ connect(ui_mute_list, SIGNAL(clicked(QModelIndex)), this, SLOT(on_mute_list_clicked(QModelIndex)));
+
connect(ui_ic_chat_message, SIGNAL(returnPressed()), this, SLOT(on_chat_return_pressed()));
connect(ui_ooc_chat_message, SIGNAL(returnPressed()), this, SLOT(on_ooc_return_pressed()));
@@ -263,6 +265,24 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
connect(ui_emote_right, SIGNAL(clicked()), this, SLOT(on_emote_right_clicked()));
}
+void Courtroom::set_mute_list()
+{
+ mute_map.clear();
+
+ QStringList sorted_mute_list;
+
+ for (char_type i_char : char_list)
+ sorted_mute_list.append(i_char.name);
+
+ sorted_mute_list.sort();
+
+ for (QString i_name : sorted_mute_list)
+ {
+ mute_map.insert(i_name, false);
+ ui_mute_list->addItem(i_name);
+ }
+}
+
void Courtroom::set_widgets()
{
QString design_ini_path = ao_app->get_theme_path() + "courtroom_design.ini";
@@ -827,6 +847,9 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
m_chatmessage[n_string] = p_contents->at(n_string);
}
+ if (mute_map.value(m_chatmessage[CHAR_NAME]))
+ return;
+
QString f_showname = ao_app->get_showname(m_chatmessage[CHAR_NAME]);
QString f_message = f_showname + ": " + m_chatmessage[MESSAGE] + '\n';
@@ -1366,6 +1389,30 @@ void Courtroom::on_music_search_edited(QString p_text)
list_music();
}
+void Courtroom::on_mute_list_clicked(QModelIndex p_index)
+{
+ qDebug() << "mute_list_clicked";
+ QListWidgetItem *f_item = ui_mute_list->item(p_index.row());
+ qDebug() << "item text: " << f_item->text();
+ QString f_char = f_item->text();
+ QString real_char;
+
+ if (f_char.endsWith(" [x]"))
+ {
+ real_char = f_char.left(f_char.size() - 4);
+ mute_map.remove(real_char);
+ mute_map.insert(real_char, false);
+ f_item->setText(real_char);
+ }
+ else
+ {
+ real_char = f_char;
+ mute_map.remove(real_char);
+ mute_map.insert(real_char, true);
+ f_item->setText(real_char + " [x]");
+ }
+}
+
void Courtroom::on_music_list_double_clicked(QModelIndex p_model)
{
if (is_muted)
@@ -1373,7 +1420,7 @@ void Courtroom::on_music_list_double_clicked(QModelIndex p_model)
QString p_song = ui_music_list->item(p_model.row())->text();
- ao_app->send_server_packet(new AOPacket("MC#" + p_song + "#" + QString::number(m_cid) + "#%"));
+ ao_app->send_server_packet(new AOPacket("MC#" + p_song + "#" + QString::number(m_cid) + "#%"), false);
}
void Courtroom::on_hold_it_clicked()
diff --git a/courtroom.h b/courtroom.h
index f00990cb..71ed665f 100644
--- a/courtroom.h
+++ b/courtroom.h
@@ -25,6 +25,7 @@
#include <QCloseEvent>
#include <QSignalMapper>
#include <QSoundEffect>
+#include <QMap>
class AOApplication;
@@ -45,6 +46,8 @@ public:
void set_char_select_page();
void set_background(QString p_background);
+ void set_mute_list();
+
//sets desk and bg based on pos in chatmessage
void set_scene();
@@ -128,6 +131,8 @@ private:
QString previous_ic_message = "";
+ QMap<QString, bool> mute_map;
+
bool is_muted = false;
//state of animation, 0 = objecting, 1 = preanim, 2 = talking, 3 = idle
@@ -279,6 +284,8 @@ private slots:
void chat_tick();
+ void on_mute_list_clicked(QModelIndex p_index);
+
void on_chat_return_pressed();
void on_ooc_return_pressed();
diff --git a/packet_distribution.cpp b/packet_distribution.cpp
index 8e5c0dad..1ef1eb83 100644
--- a/packet_distribution.cpp
+++ b/packet_distribution.cpp
@@ -297,6 +297,8 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
w_courtroom->append_ms_chatmessage(w_lobby->get_chatlog());
+ w_courtroom->set_mute_list();
+
w_courtroom->show();
destruct_lobby();
@@ -438,9 +440,10 @@ void AOApplication::send_ms_packet(AOPacket *p_packet)
delete p_packet;
}
-void AOApplication::send_server_packet(AOPacket *p_packet)
+void AOApplication::send_server_packet(AOPacket *p_packet, bool encoded)
{
- p_packet->net_encode();
+ if (encoded)
+ p_packet->net_encode();
QString f_packet = p_packet->to_string();