Populate non-default background positions from design.ini, allow 2.8-style default positions (#352)
* populate pos dropdown from design.ini * add sane default, remove hardcode bs
This commit is contained in:
		
							parent
							
								
									15c3d607c6
								
							
						
					
					
						commit
						5b09dd45d5
					
				@ -4,7 +4,8 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
			
		||||
{
 | 
			
		||||
  ao_app = p_ao_app;
 | 
			
		||||
 | 
			
		||||
  this->setWindowFlags( (this->windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowMaximizeButtonHint);
 | 
			
		||||
  this->setWindowFlags((this->windowFlags() | Qt::CustomizeWindowHint) &
 | 
			
		||||
                       ~Qt::WindowMaximizeButtonHint);
 | 
			
		||||
 | 
			
		||||
  ao_app->initBASS();
 | 
			
		||||
 | 
			
		||||
@ -594,13 +595,15 @@ void Courtroom::set_widgets()
 | 
			
		||||
  set_size_and_pos(ui_pair_offset_spinbox, "pair_offset_spinbox");
 | 
			
		||||
  ui_pair_offset_spinbox->hide();
 | 
			
		||||
  ui_pair_offset_spinbox->setToolTip(
 | 
			
		||||
      tr("Change the horizontal percentage offset of your character's position from the "
 | 
			
		||||
      tr("Change the horizontal percentage offset of your character's position "
 | 
			
		||||
         "from the "
 | 
			
		||||
         "center of the screen."));
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  set_size_and_pos(ui_pair_vert_offset_spinbox, "pair_vert_offset_spinbox");
 | 
			
		||||
  ui_pair_vert_offset_spinbox->hide();
 | 
			
		||||
  ui_pair_vert_offset_spinbox->setToolTip(
 | 
			
		||||
      tr("Change the vertical percentage offset of your character's position from the "
 | 
			
		||||
      tr("Change the vertical percentage offset of your character's position "
 | 
			
		||||
         "from the "
 | 
			
		||||
         "center of the screen."));
 | 
			
		||||
 | 
			
		||||
  ui_pair_order_dropdown->hide();
 | 
			
		||||
@ -719,8 +722,7 @@ void Courtroom::set_widgets()
 | 
			
		||||
  set_size_and_pos(ui_sfx_remove, "sfx_remove");
 | 
			
		||||
  ui_sfx_remove->setText("X");
 | 
			
		||||
  ui_sfx_remove->set_image("evidencex");
 | 
			
		||||
  ui_sfx_remove->setToolTip(
 | 
			
		||||
      tr("Remove the currently selected sound effect."));
 | 
			
		||||
  ui_sfx_remove->setToolTip(tr("Remove the currently selected sound effect."));
 | 
			
		||||
  ui_sfx_remove->hide();
 | 
			
		||||
 | 
			
		||||
  set_iniswap_dropdown();
 | 
			
		||||
@ -1146,14 +1148,18 @@ void Courtroom::set_background(QString p_background, bool display)
 | 
			
		||||
  // Populate the dropdown list with all pos that exist on this bg
 | 
			
		||||
  QStringList pos_list = {};
 | 
			
		||||
  for (QString key : default_pos.keys()) {
 | 
			
		||||
    if (file_exists(
 | 
			
		||||
            ao_app->get_image_suffix(ao_app->get_background_path(key)))) {
 | 
			
		||||
    if (file_exists(ao_app->get_image_suffix(
 | 
			
		||||
            ao_app->get_background_path(default_pos[key]))) || // if we have 2.8-style positions, e.g. def.png, wit.webp, hld.apng
 | 
			
		||||
        file_exists(
 | 
			
		||||
            ao_app->get_image_suffix(ao_app->get_background_path(key)))) { // if we have pre-2.8-style positions, e.g. defenseempty.png
 | 
			
		||||
      pos_list.append(default_pos[key]);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // TODO: search through extra/custom pos and add them to the pos dropdown as
 | 
			
		||||
  // well
 | 
			
		||||
  for (QString pos : ao_app->read_design_ini("positions", ao_app->get_background_path("design.ini")).split(",")) {
 | 
			
		||||
    if (file_exists(ao_app->get_image_suffix(ao_app->get_background_path(pos)))) {
 | 
			
		||||
      pos_list.append(pos);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  set_pos_dropdown(pos_list);
 | 
			
		||||
 | 
			
		||||
@ -2152,7 +2158,8 @@ void Courtroom::handle_chatmessage_2()
 | 
			
		||||
          other_offset_v = other_offsets[1].toInt();
 | 
			
		||||
        }
 | 
			
		||||
        ui_vp_sideplayer_char->move(ui_viewport->width() * other_offset / 100,
 | 
			
		||||
                                    ui_viewport->height() * other_offset_v / 100);
 | 
			
		||||
                                    ui_viewport->height() * other_offset_v /
 | 
			
		||||
                                        100);
 | 
			
		||||
 | 
			
		||||
        QStringList args = m_chatmessage[OTHER_CHARID].split("^");
 | 
			
		||||
        if (args.size() >
 | 
			
		||||
@ -2196,9 +2203,10 @@ void Courtroom::handle_chatmessage_2()
 | 
			
		||||
  int self_offset_v;
 | 
			
		||||
  if (self_offsets.length() <= 1)
 | 
			
		||||
    self_offset_v = 0;
 | 
			
		||||
  else 
 | 
			
		||||
  else
 | 
			
		||||
    self_offset_v = self_offsets[1].toInt();
 | 
			
		||||
  ui_vp_player_char->move(ui_viewport->width() * self_offset / 100, ui_viewport->height() * self_offset_v / 100);
 | 
			
		||||
  ui_vp_player_char->move(ui_viewport->width() * self_offset / 100,
 | 
			
		||||
                          ui_viewport->height() * self_offset_v / 100);
 | 
			
		||||
 | 
			
		||||
  switch (emote_mod) {
 | 
			
		||||
  case 1:
 | 
			
		||||
@ -3069,7 +3077,9 @@ void Courtroom::chat_tick()
 | 
			
		||||
      // 40/25 = 1.6 = 2
 | 
			
		||||
      // And if it's faster than that:
 | 
			
		||||
      // 40/10 = 4
 | 
			
		||||
      b_rate = qMax(b_rate, qRound(static_cast<float>(message_display_speed[3])/msg_delay));
 | 
			
		||||
      b_rate =
 | 
			
		||||
          qMax(b_rate, qRound(static_cast<float>(message_display_speed[3]) /
 | 
			
		||||
                              msg_delay));
 | 
			
		||||
    }
 | 
			
		||||
    if (blip_ticker % b_rate == 0) {
 | 
			
		||||
      // ignoring white space unless blank_blip is enabled.
 | 
			
		||||
@ -3078,8 +3088,7 @@ void Courtroom::chat_tick()
 | 
			
		||||
        ++blip_ticker;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
    else {
 | 
			
		||||
      // Don't fully ignore whitespace still, keep ticking until
 | 
			
		||||
      // we reached the need to play a blip sound - we also just
 | 
			
		||||
      // need to wait for a letter to play it on.
 | 
			
		||||
@ -3088,7 +3097,8 @@ void Courtroom::chat_tick()
 | 
			
		||||
 | 
			
		||||
    // Punctuation delayer, only kicks in on speed ticks less than }}
 | 
			
		||||
    if (current_display_speed > 1 && punctuation_chars.contains(f_character)) {
 | 
			
		||||
      // Making the user have to wait any longer than 150ms per letter is downright unreasonable
 | 
			
		||||
      // Making the user have to wait any longer than 150ms per letter is
 | 
			
		||||
      // downright unreasonable
 | 
			
		||||
      msg_delay = qMin(150, msg_delay * punctuation_modifier);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -3136,8 +3146,16 @@ void Courtroom::play_sfx()
 | 
			
		||||
void Courtroom::set_scene(QString f_desk_mod, QString f_side)
 | 
			
		||||
{
 | 
			
		||||
  // witness is default if pos is invalid
 | 
			
		||||
  QString f_background = "witnessempty";
 | 
			
		||||
  QString f_desk_image = "stand";
 | 
			
		||||
  QString f_background;
 | 
			
		||||
  QString f_desk_image;
 | 
			
		||||
  if (file_exists(ao_app->get_image_suffix(ao_app->get_background_path("witnessempty")) {
 | 
			
		||||
    f_background = "witnessempty";
 | 
			
		||||
    f_desk_image = "stand";
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    f_background = "wit";
 | 
			
		||||
    f_desk_image = "wit_overlay";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (f_side == "def" && file_exists(ao_app->get_image_suffix(
 | 
			
		||||
                             ao_app->get_background_path("defenseempty")))) {
 | 
			
		||||
@ -3486,8 +3504,8 @@ void Courtroom::on_ooc_return_pressed()
 | 
			
		||||
    if (ok) {
 | 
			
		||||
      if (off >= -100 && off <= 100) {
 | 
			
		||||
        char_offset = off;
 | 
			
		||||
        QString msg = tr("You have set your offset to %1%%.")
 | 
			
		||||
          .arg(QString::number(off));
 | 
			
		||||
        QString msg =
 | 
			
		||||
            tr("You have set your offset to %1%%.").arg(QString::number(off));
 | 
			
		||||
        append_server_chatmessage("CLIENT", msg, "1");
 | 
			
		||||
      }
 | 
			
		||||
      else {
 | 
			
		||||
@ -3511,17 +3529,18 @@ void Courtroom::on_ooc_return_pressed()
 | 
			
		||||
      if (off >= -100 && off <= 100) {
 | 
			
		||||
        char_vert_offset = off;
 | 
			
		||||
        QString msg = tr("You have set your vertical offset to %1%%.")
 | 
			
		||||
          .arg(QString::number(off));
 | 
			
		||||
                          .arg(QString::number(off));
 | 
			
		||||
        append_server_chatmessage("CLIENT", msg, "1");
 | 
			
		||||
      }
 | 
			
		||||
      else {
 | 
			
		||||
        append_server_chatmessage(
 | 
			
		||||
            "CLIENT", tr("Your vertical offset must be between -100% and 100%!"), "1");
 | 
			
		||||
            "CLIENT",
 | 
			
		||||
            tr("Your vertical offset must be between -100% and 100%!"), "1");
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
      append_server_chatmessage("CLIENT",
 | 
			
		||||
                                tr("That vertical offset does not look like one."), "1");
 | 
			
		||||
      append_server_chatmessage(
 | 
			
		||||
          "CLIENT", tr("That vertical offset does not look like one."), "1");
 | 
			
		||||
    }
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
@ -3832,7 +3851,7 @@ void Courtroom::on_music_search_return_pressed()
 | 
			
		||||
 | 
			
		||||
void Courtroom::on_pos_dropdown_changed(int p_index)
 | 
			
		||||
{
 | 
			
		||||
  if (p_index < 0 || p_index > 7)
 | 
			
		||||
  if (p_index < 0)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  toggle_judge_buttons(false);
 | 
			
		||||
@ -4720,7 +4739,10 @@ void Courtroom::on_log_limit_changed(int value) { log_maximum_blocks = value; }
 | 
			
		||||
 | 
			
		||||
void Courtroom::on_pair_offset_changed(int value) { char_offset = value; }
 | 
			
		||||
 | 
			
		||||
void Courtroom::on_pair_vert_offset_changed(int value) { char_vert_offset = value; }
 | 
			
		||||
void Courtroom::on_pair_vert_offset_changed(int value)
 | 
			
		||||
{
 | 
			
		||||
  char_vert_offset = value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Courtroom::on_witness_testimony_clicked()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user