diff --git a/include/courtroom.h b/include/courtroom.h index 5b5ff6c..172b9f1 100644 --- a/include/courtroom.h +++ b/include/courtroom.h @@ -424,8 +424,12 @@ private: // List of all currently available pos QStringList pos_dropdown_list; + // is the message we're about to send supposed to present evidence? bool is_presenting_evidence = false; + // have we already presented evidence for this message? + bool evidence_presented = false; + QString effect = ""; // Music effect flags we want to send to server when we play music diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 521e429..a12c95a 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -1762,6 +1762,7 @@ void Courtroom::reset_ic() ui_vp_chat_arrow->stop(); text_state = 0; anim_state = 0; + evidence_presented = false; ui_vp_objection->stop(); chat_tick_timer->stop(); ui_vp_evidence_display->reset(); @@ -2254,7 +2255,8 @@ void Courtroom::handle_chatmessage_3() .isEmpty()) // Pure whitespace showname, get outta here. f_showname = m_chatmessage[CHAR_NAME]; - if (f_evi_id > 0 && f_evi_id <= local_evidence_list.size()) { + if (f_evi_id > 0 && f_evi_id <= local_evidence_list.size() && + !evidence_presented) { // shifted by 1 because 0 is no evidence per legacy standards QString f_image = local_evidence_list.at(f_evi_id - 1).image; QString f_evi_name = local_evidence_list.at(f_evi_id - 1).name; @@ -2268,6 +2270,8 @@ void Courtroom::handle_chatmessage_3() tr("has presented evidence"), m_chatmessage[TEXT_COLOR].toInt()); append_ic_text(f_evi_name, f_showname, tr("has presented evidence")); + evidence_presented = true; // we're done presenting evidence, and we + // don't want to do it twice } int emote_mod = m_chatmessage[EMOTE_MOD].toInt();