fixed emote dropdown issues
This commit is contained in:
		
							parent
							
								
									57d921feb0
								
							
						
					
					
						commit
						bcb368efb6
					
				@ -96,8 +96,15 @@ void AOCharMovie::play_pre(QString p_char, QString p_emote, int duration)
 | 
			
		||||
      percentage_modifier = 100.0;
 | 
			
		||||
  }
 | 
			
		||||
  qDebug() << "% mod: " << percentage_modifier;
 | 
			
		||||
  play_once = true;
 | 
			
		||||
  //m_movie->jumpToFrame(m_movie->frameCount() - 1);
 | 
			
		||||
 | 
			
		||||
  if (full_duration < real_duration)
 | 
			
		||||
  {
 | 
			
		||||
    play_once = false;
 | 
			
		||||
    preanim_timer->start(full_duration);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
    play_once = true;
 | 
			
		||||
 | 
			
		||||
  m_movie->setSpeed(static_cast<int>(percentage_modifier));
 | 
			
		||||
  play(p_char, p_emote, "");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -244,7 +244,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
			
		||||
  connect(testimony_hide_timer, SIGNAL(timeout()), this, SLOT(show_testimony()));
 | 
			
		||||
  //emote signals are set in emotes.cpp
 | 
			
		||||
 | 
			
		||||
  connect(ui_emote_dropdown, SIGNAL(currentIndexChanged(int)), this, SLOT(on_emote_dropdown_changed(int)));
 | 
			
		||||
  connect(ui_emote_dropdown, SIGNAL(activated(int)), this, SLOT(on_emote_dropdown_changed(int)));
 | 
			
		||||
 | 
			
		||||
  connect(ui_mute_list, SIGNAL(clicked(QModelIndex)), this, SLOT(on_mute_list_clicked(QModelIndex)));
 | 
			
		||||
 | 
			
		||||
@ -1211,10 +1211,17 @@ void Courtroom::play_preanim()
 | 
			
		||||
  QString f_preanim = m_chatmessage[PRE_EMOTE];
 | 
			
		||||
 | 
			
		||||
  //all time values in char.inis are multiplied by a constant(time_mod) to get the actual time
 | 
			
		||||
  int preanim_duration = ao_app->get_preanim_duration(f_char, f_preanim);
 | 
			
		||||
  int ao2_duration = ao_app->get_ao2_preanim_duration(f_char, f_preanim);
 | 
			
		||||
  int text_delay = ao_app->get_text_delay(f_char, f_preanim) * time_mod;
 | 
			
		||||
  int sfx_delay = m_chatmessage[SFX_DELAY].toInt() * 60;
 | 
			
		||||
 | 
			
		||||
  int preanim_duration;
 | 
			
		||||
 | 
			
		||||
  if (ao2_duration < 0)
 | 
			
		||||
    preanim_duration = ao_app->get_preanim_duration(f_char, f_preanim);
 | 
			
		||||
  else
 | 
			
		||||
    preanim_duration = ao2_duration;
 | 
			
		||||
 | 
			
		||||
  sfx_delay_timer->start(sfx_delay);
 | 
			
		||||
 | 
			
		||||
  if (!file_exists(ao_app->get_character_path(f_char) + f_preanim.toLower() + ".gif") ||
 | 
			
		||||
 | 
			
		||||
@ -337,6 +337,8 @@ private slots:
 | 
			
		||||
  void on_music_search_edited(QString p_text);
 | 
			
		||||
  void on_music_list_double_clicked(QModelIndex p_model);
 | 
			
		||||
 | 
			
		||||
  void select_emote(int p_id);
 | 
			
		||||
 | 
			
		||||
  void on_emote_clicked(int p_id);
 | 
			
		||||
 | 
			
		||||
  void on_emote_left_clicked();
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								emotes.cpp
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								emotes.cpp
									
									
									
									
									
								
							@ -115,7 +115,7 @@ void Courtroom::set_emote_dropdown()
 | 
			
		||||
  ui_emote_dropdown->addItems(emote_list);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Courtroom::on_emote_clicked(int p_id)
 | 
			
		||||
void Courtroom::select_emote(int p_id)
 | 
			
		||||
{
 | 
			
		||||
  int min = current_emote_page * max_emotes_on_page;
 | 
			
		||||
  int max = (max_emotes_on_page - 1) + current_emote_page * max_emotes_on_page;
 | 
			
		||||
@ -125,7 +125,7 @@ void Courtroom::on_emote_clicked(int p_id)
 | 
			
		||||
 | 
			
		||||
  int old_emote = current_emote;
 | 
			
		||||
 | 
			
		||||
  current_emote = p_id + max_emotes_on_page * current_emote_page;
 | 
			
		||||
  current_emote = p_id;
 | 
			
		||||
 | 
			
		||||
  if (current_emote >= min && current_emote <= max)
 | 
			
		||||
    ui_emote_list.at(current_emote % max_emotes_on_page)->set_image(current_char, current_emote, "_on.png");
 | 
			
		||||
@ -141,9 +141,16 @@ void Courtroom::on_emote_clicked(int p_id)
 | 
			
		||||
  else
 | 
			
		||||
    ui_pre->setChecked(false);
 | 
			
		||||
 | 
			
		||||
  ui_emote_dropdown->setCurrentIndex(current_emote);
 | 
			
		||||
 | 
			
		||||
  ui_ic_chat_message->setFocus();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Courtroom::on_emote_clicked(int p_id)
 | 
			
		||||
{
 | 
			
		||||
  select_emote(p_id + max_emotes_on_page * current_emote_page);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Courtroom::on_emote_left_clicked()
 | 
			
		||||
{
 | 
			
		||||
  --current_emote_page;
 | 
			
		||||
@ -164,5 +171,5 @@ void Courtroom::on_emote_right_clicked()
 | 
			
		||||
 | 
			
		||||
void Courtroom::on_emote_dropdown_changed(int p_index)
 | 
			
		||||
{
 | 
			
		||||
  on_emote_clicked(p_index);
 | 
			
		||||
  select_emote(p_index);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user