Added support for the stenographer role in case alerts.
This commit is contained in:
		
							parent
							
								
									de8badc9a6
								
							
						
					
					
						commit
						962289793d
					
				@ -288,6 +288,9 @@ public:
 | 
			
		||||
  // Same for juror.
 | 
			
		||||
  bool get_casing_juror_enabled();
 | 
			
		||||
 | 
			
		||||
  // Same for steno.
 | 
			
		||||
  bool get_casing_steno_enabled();
 | 
			
		||||
 | 
			
		||||
  // Same for CM.
 | 
			
		||||
  bool get_casing_cm_enabled();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -51,11 +51,14 @@ AOCaseAnnouncerDialog::AOCaseAnnouncerDialog(QWidget *parent, AOApplication *p_a
 | 
			
		||||
  JudgeNeeded->setText("Judge needed");
 | 
			
		||||
  JurorNeeded = new QCheckBox(this);
 | 
			
		||||
  JurorNeeded->setText("Jurors needed");
 | 
			
		||||
  StenographerNeeded = new QCheckBox(this);
 | 
			
		||||
  StenographerNeeded->setText("Stenographer needed");
 | 
			
		||||
 | 
			
		||||
  FormLayout->setWidget(1, QFormLayout::FieldRole, DefenceNeeded);
 | 
			
		||||
  FormLayout->setWidget(2, QFormLayout::FieldRole, ProsecutorNeeded);
 | 
			
		||||
  FormLayout->setWidget(3, QFormLayout::FieldRole, JudgeNeeded);
 | 
			
		||||
  FormLayout->setWidget(4, QFormLayout::FieldRole, JurorNeeded);
 | 
			
		||||
  FormLayout->setWidget(5, QFormLayout::FieldRole, StenographerNeeded);
 | 
			
		||||
 | 
			
		||||
  setUpdatesEnabled(true);
 | 
			
		||||
}
 | 
			
		||||
@ -66,7 +69,8 @@ void AOCaseAnnouncerDialog::ok_pressed()
 | 
			
		||||
                       DefenceNeeded->isChecked(),
 | 
			
		||||
                       ProsecutorNeeded->isChecked(),
 | 
			
		||||
                       JudgeNeeded->isChecked(),
 | 
			
		||||
                       JurorNeeded->isChecked());
 | 
			
		||||
                       JurorNeeded->isChecked(),
 | 
			
		||||
                       StenographerNeeded->isChecked());
 | 
			
		||||
 | 
			
		||||
  done(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -35,6 +35,7 @@ private:
 | 
			
		||||
  QCheckBox *ProsecutorNeeded;
 | 
			
		||||
  QCheckBox *JudgeNeeded;
 | 
			
		||||
  QCheckBox *JurorNeeded;
 | 
			
		||||
  QCheckBox *StenographerNeeded;
 | 
			
		||||
 | 
			
		||||
public slots:
 | 
			
		||||
  void ok_pressed();
 | 
			
		||||
 | 
			
		||||
@ -388,18 +388,31 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
 | 
			
		||||
 | 
			
		||||
    CasingForm->setWidget(5, QFormLayout::FieldRole, JurorCheckbox);
 | 
			
		||||
 | 
			
		||||
    // -- STENO ANNOUNCEMENTS
 | 
			
		||||
 | 
			
		||||
    StenographerLabel = new QLabel(formLayoutWidget_3);
 | 
			
		||||
    StenographerLabel->setText("Stenographer:");
 | 
			
		||||
    StenographerLabel->setToolTip("If checked, you will get alerts about case announcements if a stenographer spot is open.");
 | 
			
		||||
 | 
			
		||||
    CasingForm->setWidget(6, QFormLayout::LabelRole, StenographerLabel);
 | 
			
		||||
 | 
			
		||||
    StenographerCheckbox = new QCheckBox(formLayoutWidget_3);
 | 
			
		||||
    StenographerCheckbox->setChecked(ao_app->get_casing_steno_enabled());
 | 
			
		||||
 | 
			
		||||
    CasingForm->setWidget(6, QFormLayout::FieldRole, StenographerCheckbox);
 | 
			
		||||
 | 
			
		||||
    // -- CM ANNOUNCEMENTS
 | 
			
		||||
 | 
			
		||||
    CMLabel = new QLabel(formLayoutWidget_3);
 | 
			
		||||
    CMLabel->setText("CM:");
 | 
			
		||||
    CMLabel->setToolTip("If checked, you will appear amongst the potential CMs on the server.");
 | 
			
		||||
 | 
			
		||||
    CasingForm->setWidget(6, QFormLayout::LabelRole, CMLabel);
 | 
			
		||||
    CasingForm->setWidget(7, QFormLayout::LabelRole, CMLabel);
 | 
			
		||||
 | 
			
		||||
    CMCheckbox = new QCheckBox(formLayoutWidget_3);
 | 
			
		||||
    CMCheckbox->setChecked(ao_app->get_casing_cm_enabled());
 | 
			
		||||
 | 
			
		||||
    CasingForm->setWidget(6, QFormLayout::FieldRole, CMCheckbox);
 | 
			
		||||
    CasingForm->setWidget(7, QFormLayout::FieldRole, CMCheckbox);
 | 
			
		||||
 | 
			
		||||
    // -- CM CASES ANNOUNCEMENTS
 | 
			
		||||
 | 
			
		||||
@ -407,12 +420,12 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
 | 
			
		||||
    CMCasesLabel->setText("Hosting cases:");
 | 
			
		||||
    CMCasesLabel->setToolTip("If you're a CM, enter what cases are you willing to host.");
 | 
			
		||||
 | 
			
		||||
    CasingForm->setWidget(7, QFormLayout::LabelRole, CMCasesLabel);
 | 
			
		||||
    CasingForm->setWidget(8, QFormLayout::LabelRole, CMCasesLabel);
 | 
			
		||||
 | 
			
		||||
    CMCasesLineEdit = new QLineEdit(formLayoutWidget_3);
 | 
			
		||||
    CMCasesLineEdit->setText(ao_app->get_casing_can_host_cases());
 | 
			
		||||
 | 
			
		||||
    CasingForm->setWidget(7, QFormLayout::FieldRole, CMCasesLineEdit);
 | 
			
		||||
    CasingForm->setWidget(8, QFormLayout::FieldRole, CMCasesLineEdit);
 | 
			
		||||
 | 
			
		||||
    // When we're done, we should continue the updates!
 | 
			
		||||
    setUpdatesEnabled(true);
 | 
			
		||||
@ -456,6 +469,7 @@ void AOOptionsDialog::save_pressed()
 | 
			
		||||
    configini->setValue("casing_prosecution_enabled", ProsecutorCheckbox->isChecked());
 | 
			
		||||
    configini->setValue("casing_judge_enabled", JudgeCheckbox->isChecked());
 | 
			
		||||
    configini->setValue("casing_juror_enabled", JurorCheckbox->isChecked());
 | 
			
		||||
    configini->setValue("casing_steno_enabled", StenographerCheckbox->isChecked());
 | 
			
		||||
    configini->setValue("casing_cm_enabled", CMCheckbox->isChecked());
 | 
			
		||||
    configini->setValue("casing_can_host_casees", CMCasesLineEdit->text());
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -96,6 +96,8 @@ private:
 | 
			
		||||
    QCheckBox *JudgeCheckbox;
 | 
			
		||||
    QLabel *JurorLabel;
 | 
			
		||||
    QCheckBox *JurorCheckbox;
 | 
			
		||||
    QLabel *StenographerLabel;
 | 
			
		||||
    QCheckBox *StenographerCheckbox;
 | 
			
		||||
    QLabel *CMLabel;
 | 
			
		||||
    QCheckBox *CMCheckbox;
 | 
			
		||||
    QLabel *CMCasesLabel;
 | 
			
		||||
 | 
			
		||||
@ -2722,7 +2722,7 @@ void Courtroom::mod_called(QString p_ip)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Courtroom::case_called(QString msg, bool def, bool pro, bool jud, bool jur)
 | 
			
		||||
void Courtroom::case_called(QString msg, bool def, bool pro, bool jud, bool jur, bool steno)
 | 
			
		||||
{
 | 
			
		||||
  if (ui_casing->isChecked())
 | 
			
		||||
  {
 | 
			
		||||
@ -2730,7 +2730,8 @@ void Courtroom::case_called(QString msg, bool def, bool pro, bool jud, bool jur)
 | 
			
		||||
    if ((ao_app->get_casing_defence_enabled() && def) ||
 | 
			
		||||
        (ao_app->get_casing_prosecution_enabled() && pro) ||
 | 
			
		||||
        (ao_app->get_casing_judge_enabled() && jud) ||
 | 
			
		||||
        (ao_app->get_casing_juror_enabled() && jur))
 | 
			
		||||
        (ao_app->get_casing_juror_enabled() && jur) ||
 | 
			
		||||
        (ao_app->get_casing_steno_enabled() && steno))
 | 
			
		||||
    {
 | 
			
		||||
        modcall_player->play(ao_app->get_sfx("case_call"));
 | 
			
		||||
        ao_app->alert(this);
 | 
			
		||||
@ -3564,13 +3565,14 @@ void Courtroom::on_casing_clicked()
 | 
			
		||||
                                            + " " + QString::number(ao_app->get_casing_prosecution_enabled())
 | 
			
		||||
                                            + " " + QString::number(ao_app->get_casing_judge_enabled())
 | 
			
		||||
                                            + " " + QString::number(ao_app->get_casing_juror_enabled())
 | 
			
		||||
                                            + " " + QString::number(ao_app->get_casing_steno_enabled())
 | 
			
		||||
                                            + "#%"));
 | 
			
		||||
    else
 | 
			
		||||
      ao_app->send_server_packet(new AOPacket("CT#" + ui_ooc_chat_name->text() + "#/setcase \"\" 0 0 0 0 0#%"));
 | 
			
		||||
      ao_app->send_server_packet(new AOPacket("CT#" + ui_ooc_chat_name->text() + "#/setcase \"\" 0 0 0 0 0 0#%"));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Courtroom::announce_case(QString title, bool def, bool pro, bool jud, bool jur)
 | 
			
		||||
void Courtroom::announce_case(QString title, bool def, bool pro, bool jud, bool jur, bool steno)
 | 
			
		||||
{
 | 
			
		||||
  if (ao_app->casing_alerts_enabled)
 | 
			
		||||
    ao_app->send_server_packet(new AOPacket("CT#" + ui_ooc_chat_name->text() + "#/anncase \""
 | 
			
		||||
@ -3578,7 +3580,8 @@ void Courtroom::announce_case(QString title, bool def, bool pro, bool jud, bool
 | 
			
		||||
                                          + QString::number(def) + " "
 | 
			
		||||
                                          + QString::number(pro) + " "
 | 
			
		||||
                                          + QString::number(jud) + " "
 | 
			
		||||
                                          + QString::number(jur)
 | 
			
		||||
                                          + QString::number(jur) + " "
 | 
			
		||||
                                          + QString::number(steno)
 | 
			
		||||
                                          + "#%"));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -198,7 +198,7 @@ public:
 | 
			
		||||
  //state is an number between 0 and 10 inclusive
 | 
			
		||||
  void set_hp_bar(int p_bar, int p_state);
 | 
			
		||||
 | 
			
		||||
  void announce_case(QString title, bool def, bool pro, bool jud, bool jur);
 | 
			
		||||
  void announce_case(QString title, bool def, bool pro, bool jud, bool jur, bool steno);
 | 
			
		||||
 | 
			
		||||
  void check_connection_received();
 | 
			
		||||
 | 
			
		||||
@ -551,7 +551,7 @@ public slots:
 | 
			
		||||
 | 
			
		||||
  void mod_called(QString p_ip);
 | 
			
		||||
 | 
			
		||||
  void case_called(QString msg, bool def, bool pro, bool jud, bool jur);
 | 
			
		||||
  void case_called(QString msg, bool def, bool pro, bool jud, bool jur, bool steno);
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
  void start_chat_ticking();
 | 
			
		||||
 | 
			
		||||
@ -662,10 +662,8 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
 | 
			
		||||
  }
 | 
			
		||||
  else if (header == "CASEA")
 | 
			
		||||
  {
 | 
			
		||||
    if (courtroom_constructed && f_contents.size() > 0)
 | 
			
		||||
      w_courtroom->case_called(f_contents.at(0), f_contents.at(1) == "1", f_contents.at(2) == "1", f_contents.at(3) == "1", f_contents.at(4) == "1");
 | 
			
		||||
    qDebug() << f_contents;
 | 
			
		||||
    qDebug() << (f_contents.at(1) == "1");
 | 
			
		||||
    if (courtroom_constructed && f_contents.size() > 6)
 | 
			
		||||
      w_courtroom->case_called(f_contents.at(0), f_contents.at(1) == "1", f_contents.at(2) == "1", f_contents.at(3) == "1", f_contents.at(4) == "1", f_contents.at(5) == "1");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  end:
 | 
			
		||||
 | 
			
		||||
@ -72,6 +72,7 @@ class ClientManager:
 | 
			
		||||
            self.casing_pro = False
 | 
			
		||||
            self.casing_jud = False
 | 
			
		||||
            self.casing_jur = False
 | 
			
		||||
            self.casing_steno = False
 | 
			
		||||
            self.case_call_time = 0
 | 
			
		||||
 | 
			
		||||
            #flood-guard stuff
 | 
			
		||||
 | 
			
		||||
@ -780,6 +780,7 @@ def ooc_cmd_setcase(client, arg):
 | 
			
		||||
        client.casing_pro = args[3] == "1"
 | 
			
		||||
        client.casing_jud = args[4] == "1"
 | 
			
		||||
        client.casing_jur = args[5] == "1"
 | 
			
		||||
        client.casing_steno = args[6] == "1"
 | 
			
		||||
 | 
			
		||||
def ooc_cmd_anncase(client, arg):
 | 
			
		||||
    if client in client.area.owners:
 | 
			
		||||
@ -791,7 +792,7 @@ def ooc_cmd_anncase(client, arg):
 | 
			
		||||
        elif len(args) == 1:
 | 
			
		||||
            raise ArgumentError('You should probably announce the case to at least one person.')
 | 
			
		||||
        else:
 | 
			
		||||
            if not args[1] == "1" and not args[2] == "1" and not args[3] == "1" and not args[4] == "1":
 | 
			
		||||
            if not args[1] == "1" and not args[2] == "1" and not args[3] == "1" and not args[4] == "1" and not args[5] == "1":
 | 
			
		||||
                raise ArgumentError('You should probably announce the case to at least one person.')
 | 
			
		||||
            msg = '=== Case Announcement ===\r\n{} [{}] is hosting {}, looking for '.format(client.get_char_name(), client.id, args[0])
 | 
			
		||||
 | 
			
		||||
@ -805,14 +806,16 @@ def ooc_cmd_anncase(client, arg):
 | 
			
		||||
                lookingfor.append("judge")
 | 
			
		||||
            if args[4] == "1":
 | 
			
		||||
                lookingfor.append("juror")
 | 
			
		||||
            if args[5] == "1":
 | 
			
		||||
                lookingfor.append("stenographer")
 | 
			
		||||
 | 
			
		||||
            msg = msg + ', '.join(lookingfor) + '.\r\n=================='
 | 
			
		||||
 | 
			
		||||
            client.server.send_all_cmd_pred('CASEA', msg, args[1], args[2], args[3], args[4], '1')
 | 
			
		||||
            client.server.send_all_cmd_pred('CASEA', msg, args[1], args[2], args[3], args[4], args[5], '1')
 | 
			
		||||
 | 
			
		||||
            client.set_case_call_delay()
 | 
			
		||||
            
 | 
			
		||||
            logger.log_server('[{}][{}][CASE_ANNOUNCEMENT]{}, DEF: {}, PRO: {}, JUD: {}, JUR: {}.'.format(client.area.abbreviation, client.get_char_name(), args[0], args[1], args[2], args[3], args[4]), client)
 | 
			
		||||
            logger.log_server('[{}][{}][CASE_ANNOUNCEMENT]{}, DEF: {}, PRO: {}, JUD: {}, JUR: {}, STENO: {}.'.format(client.area.abbreviation, client.get_char_name(), args[0], args[1], args[2], args[3], args[4], args[5]), client)
 | 
			
		||||
    else:
 | 
			
		||||
        raise ClientError('You cannot announce a case in an area where you are not a CM!')
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
@ -548,6 +548,12 @@ bool AOApplication::get_casing_juror_enabled()
 | 
			
		||||
    return result.startsWith("true");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool AOApplication::get_casing_steno_enabled()
 | 
			
		||||
{
 | 
			
		||||
  QString result = configini->value("casing_steno_enabled", "false").value<QString>();
 | 
			
		||||
  return result.startsWith("true");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool AOApplication::get_casing_cm_enabled()
 | 
			
		||||
{
 | 
			
		||||
    QString result = configini->value("casing_cm_enabled", "false").value<QString>();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user