aboutsummaryrefslogtreecommitdiff
path: root/courtroom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'courtroom.cpp')
-rw-r--r--courtroom.cpp87
1 files changed, 54 insertions, 33 deletions
diff --git a/courtroom.cpp b/courtroom.cpp
index 0eb9d5d..7257447 100644
--- a/courtroom.cpp
+++ b/courtroom.cpp
@@ -64,7 +64,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
ui_vp_chatbox = new AOImage(this, ao_app);
ui_vp_showname = new QLabel(ui_vp_chatbox);
- ui_vp_message = new QPlainTextEdit(ui_vp_chatbox);
+ ui_vp_message = new QTextEdit(ui_vp_chatbox);
ui_vp_message->setFrameStyle(QFrame::NoFrame);
ui_vp_message->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui_vp_message->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -167,6 +167,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
if (ao_app->yellow_text_enabled)
ui_text_color->addItem("Yellow");
+
ui_music_slider = new QSlider(Qt::Horizontal, this);
ui_music_slider->setRange(0, 100);
ui_music_slider->setValue(ao_app->get_default_music());
@@ -1177,6 +1178,9 @@ void Courtroom::realization_done()
void Courtroom::start_chat_ticking()
{
+ ui_vp_message->clear();
+ set_text_color();
+ rainbow_counter = 0;
//we need to ensure that the text isn't already ticking because this function can be called by two logic paths
if (text_state != 0)
return;
@@ -1219,11 +1223,42 @@ void Courtroom::chat_tick()
else
{
- ui_vp_message->insertPlainText(f_message.at(tick_pos));
+ QString f_character = f_message.at(tick_pos);
+
+ if (f_character == " ")
+ ui_vp_message->insertPlainText(" ");
+ else if (m_chatmessage[TEXT_COLOR].toInt() == RAINBOW)
+ {
+ QString html_color;
+
+ switch (rainbow_counter)
+ {
+ case 0:
+ html_color = "#FF0000";
+ break;
+ case 1:
+ html_color = "#FF7F00";
+ break;
+ case 2:
+ html_color = "#FFFF00";
+ break;
+ case 3:
+ html_color = "#00FF00";
+ break;
+ default:
+ html_color = "#2d96ff";
+ rainbow_counter = -1;
+ }
+
+ ++rainbow_counter;
+
+ ui_vp_message->insertHtml("<font color=\"" + html_color + "\">" + f_character + "</font>");
+ }
+ else
+ ui_vp_message->insertHtml(f_character);
QScrollBar *scroll = ui_vp_message->verticalScrollBar();
scroll->setValue(scroll->maximum());
- //scroll->hide();
if(blank_blip)
qDebug() << "blank_blip found true";
@@ -1370,10 +1405,6 @@ void Courtroom::set_text_color()
ui_vp_message->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
"color: yellow");
break;
- case BLACK:
- ui_vp_message->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
- "color: black");
- break;
default:
qDebug() << "W: undefined text color: " << m_chatmessage[TEXT_COLOR];
case WHITE:
@@ -1492,12 +1523,16 @@ void Courtroom::mod_called(QString p_ip)
void Courtroom::on_ooc_return_pressed()
{
- if (ui_ooc_chat_message->text() == "" || ui_ooc_chat_name->text() == "")
+ static bool rainbow_appended = false;
+
+ QString ooc_message = ui_ooc_chat_message->text();
+
+ if (ooc_message == "" || ui_ooc_chat_name->text() == "")
return;
- if (ui_ooc_chat_message->text().startsWith("/pos"))
+ if (ooc_message.startsWith("/pos"))
{
- if (ui_ooc_chat_message->text().startsWith("/pos jud"))
+ if (ooc_message.startsWith("/pos jud"))
{
ui_witness_testimony->show();
ui_cross_examination->show();
@@ -1516,14 +1551,19 @@ void Courtroom::on_ooc_return_pressed()
ui_prosecution_plus->hide();
}
}
-
- //cheap, but it works
- if (ui_ooc_chat_message->text().startsWith("/login"))
+ else if (ooc_message.startsWith("/login"))
ui_guard->show();
+ else if (ooc_message.startsWith("/rainbow") && ao_app->yellow_text_enabled && !rainbow_appended)
+ {
+ ui_text_color->addItem("Rainbow");
+ ui_ooc_chat_message->clear();
+ rainbow_appended = true;
+ return;
+ }
QStringList packet_contents;
packet_contents.append(ui_ooc_chat_name->text());
- packet_contents.append(ui_ooc_chat_message->text());
+ packet_contents.append(ooc_message);
AOPacket *f_packet = new AOPacket("CT", packet_contents);
@@ -1873,25 +1913,6 @@ void Courtroom::on_evidence_button_clicked()
}
}
-void Courtroom::char_clicked(int n_char)
-{
- int n_real_char = n_char + current_char_page * 90;
-
- QString char_ini_path = ao_app->get_character_path(char_list.at(n_real_char).name) + "char.ini";
-
- if (!file_exists(char_ini_path))
- {
- qDebug() << "did not find " << char_ini_path;
- call_notice("Could not find " + char_ini_path);
- return;
- }
-
- if (n_real_char == m_cid)
- enter_courtroom(m_cid);
- else
- ao_app->send_server_packet(new AOPacket("CC#" + QString::number(ao_app->s_pv) + "#" + QString::number(n_real_char) + "#" + get_hdid() + "#%"));
-}
-
void Courtroom::ping_server()
{
ao_app->send_server_packet(new AOPacket("CH#" + QString::number(m_cid) + "#%"));