tried to improve preanim durations and added emote dropdown
This commit is contained in:
		
							parent
							
								
									00e491bb26
								
							
						
					
					
						commit
						57d921feb0
					
				@ -13,7 +13,7 @@ RC_ICONS = logo.ico
 | 
			
		||||
TARGET = Attorney_Online_remake
 | 
			
		||||
TEMPLATE = app
 | 
			
		||||
 | 
			
		||||
VERSION = 2.1.9.0
 | 
			
		||||
VERSION = 2.1.10.0
 | 
			
		||||
 | 
			
		||||
SOURCES += main.cpp\
 | 
			
		||||
        lobby.cpp \
 | 
			
		||||
 | 
			
		||||
@ -120,7 +120,7 @@ public:
 | 
			
		||||
private:
 | 
			
		||||
  const int RELEASE = 2;
 | 
			
		||||
  const int MAJOR_VERSION = 1;
 | 
			
		||||
  const int MINOR_VERSION = 9;
 | 
			
		||||
  const int MINOR_VERSION = 10;
 | 
			
		||||
 | 
			
		||||
  QString user_theme = "default";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -72,24 +72,28 @@ void AOCharMovie::play_pre(QString p_char, QString p_emote, int duration)
 | 
			
		||||
  this->clear();
 | 
			
		||||
  m_movie->setFileName(gif_path);
 | 
			
		||||
 | 
			
		||||
  int full_duration = duration * time_mod;
 | 
			
		||||
  int real_duration = 0;
 | 
			
		||||
 | 
			
		||||
  play_once = false;
 | 
			
		||||
 | 
			
		||||
  for (int n_frame = 0 ; n_frame < m_movie->frameCount() ; ++n_frame)
 | 
			
		||||
  {
 | 
			
		||||
 | 
			
		||||
    real_duration += m_movie->nextFrameDelay();
 | 
			
		||||
    m_movie->jumpToFrame(n_frame);
 | 
			
		||||
  }
 | 
			
		||||
  qDebug() << "full_duration: " << full_duration;
 | 
			
		||||
  qDebug() << "real_duration: " << real_duration;
 | 
			
		||||
  qDebug() << "duration: " << duration;
 | 
			
		||||
 | 
			
		||||
  double percentage_modifier = 100.0;
 | 
			
		||||
 | 
			
		||||
  if (real_duration != 0 && duration != 0)
 | 
			
		||||
  {
 | 
			
		||||
    percentage_modifier = (duration / static_cast<double>(real_duration)) * 100.0;
 | 
			
		||||
    double modifier = full_duration / static_cast<double>(real_duration);
 | 
			
		||||
    percentage_modifier = 100 / modifier;
 | 
			
		||||
 | 
			
		||||
    if (percentage_modifier > 100.0)
 | 
			
		||||
      percentage_modifier = 100.0;
 | 
			
		||||
  }
 | 
			
		||||
  qDebug() << "% mod: " << percentage_modifier;
 | 
			
		||||
  play_once = true;
 | 
			
		||||
 | 
			
		||||
@ -32,6 +32,8 @@ private:
 | 
			
		||||
  QVector<QImage> flipped_movie;
 | 
			
		||||
  QTimer *preanim_timer;
 | 
			
		||||
 | 
			
		||||
  const int time_mod = 62;
 | 
			
		||||
 | 
			
		||||
  bool m_flipped = false;
 | 
			
		||||
 | 
			
		||||
  bool play_once = true;
 | 
			
		||||
 | 
			
		||||
@ -112,6 +112,8 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
			
		||||
  ui_emote_left = new AOButton(this, ao_app);
 | 
			
		||||
  ui_emote_right = new AOButton(this, ao_app);
 | 
			
		||||
 | 
			
		||||
  ui_emote_dropdown = new QComboBox(this);
 | 
			
		||||
 | 
			
		||||
  ///////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
  ui_defense_bar = new AOImage(this, ao_app);
 | 
			
		||||
@ -242,6 +244,8 @@ 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_mute_list, SIGNAL(clicked(QModelIndex)), this, SLOT(on_mute_list_clicked(QModelIndex)));
 | 
			
		||||
 | 
			
		||||
  connect(ui_ic_chat_message, SIGNAL(returnPressed()), this, SLOT(on_chat_return_pressed()));
 | 
			
		||||
@ -458,6 +462,8 @@ void Courtroom::set_widgets()
 | 
			
		||||
  set_size_and_pos(ui_emote_right, "emote_right");
 | 
			
		||||
  ui_emote_right->set_image("arrow_right.png");
 | 
			
		||||
 | 
			
		||||
  set_size_and_pos(ui_emote_dropdown, "emote_dropdown");
 | 
			
		||||
 | 
			
		||||
  //emote buttons
 | 
			
		||||
 | 
			
		||||
  set_size_and_pos(ui_defense_bar, "defense_bar");
 | 
			
		||||
@ -745,6 +751,7 @@ void Courtroom::enter_courtroom(int p_cid)
 | 
			
		||||
    ui_emotes->show();
 | 
			
		||||
 | 
			
		||||
  set_emote_page();
 | 
			
		||||
  set_emote_dropdown();
 | 
			
		||||
 | 
			
		||||
  current_evidence_page = 0;
 | 
			
		||||
  current_evidence = 0;
 | 
			
		||||
@ -882,7 +889,8 @@ void Courtroom::on_chat_return_pressed()
 | 
			
		||||
  if (ui_ic_chat_message->text() == "" || is_muted)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  if (anim_state < 3 || text_state < 2)
 | 
			
		||||
  if ((anim_state < 3 || text_state < 2) &&
 | 
			
		||||
      objection_state == 0)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  //MS#chat#
 | 
			
		||||
@ -1203,9 +1211,9 @@ 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) * time_mod;
 | 
			
		||||
  int preanim_duration = ao_app->get_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() * time_mod;
 | 
			
		||||
  int sfx_delay = m_chatmessage[SFX_DELAY].toInt() * 60;
 | 
			
		||||
 | 
			
		||||
  sfx_delay_timer->start(sfx_delay);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -236,6 +236,8 @@ private:
 | 
			
		||||
  AOButton *ui_emote_left;
 | 
			
		||||
  AOButton *ui_emote_right;
 | 
			
		||||
 | 
			
		||||
  QComboBox *ui_emote_dropdown;
 | 
			
		||||
 | 
			
		||||
  AOImage *ui_defense_bar;
 | 
			
		||||
  AOImage *ui_prosecution_bar;
 | 
			
		||||
 | 
			
		||||
@ -304,6 +306,7 @@ private:
 | 
			
		||||
 | 
			
		||||
  void construct_emotes();
 | 
			
		||||
  void set_emote_page();
 | 
			
		||||
  void set_emote_dropdown();
 | 
			
		||||
 | 
			
		||||
  void construct_evidence();
 | 
			
		||||
  void set_evidence_page();
 | 
			
		||||
@ -339,6 +342,8 @@ private slots:
 | 
			
		||||
  void on_emote_left_clicked();
 | 
			
		||||
  void on_emote_right_clicked();
 | 
			
		||||
 | 
			
		||||
  void on_emote_dropdown_changed(int p_index);
 | 
			
		||||
 | 
			
		||||
  void on_evidence_clicked(int p_id);
 | 
			
		||||
 | 
			
		||||
  void on_evidence_hover(int p_id, bool p_state);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										21
									
								
								emotes.cpp
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								emotes.cpp
									
									
									
									
									
								
							@ -100,6 +100,21 @@ void Courtroom::set_emote_page()
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Courtroom::set_emote_dropdown()
 | 
			
		||||
{
 | 
			
		||||
  ui_emote_dropdown->clear();
 | 
			
		||||
 | 
			
		||||
  int total_emotes = ao_app->get_emote_number(current_char);
 | 
			
		||||
  QStringList emote_list;
 | 
			
		||||
 | 
			
		||||
  for (int n = 0 ; n < total_emotes ; ++n)
 | 
			
		||||
  {
 | 
			
		||||
    emote_list.append(ao_app->get_emote_comment(current_char, n));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ui_emote_dropdown->addItems(emote_list);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Courtroom::on_emote_clicked(int p_id)
 | 
			
		||||
{
 | 
			
		||||
  int min = current_emote_page * max_emotes_on_page;
 | 
			
		||||
@ -112,6 +127,7 @@ void Courtroom::on_emote_clicked(int p_id)
 | 
			
		||||
 | 
			
		||||
  current_emote = p_id + max_emotes_on_page * current_emote_page;
 | 
			
		||||
 | 
			
		||||
  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");
 | 
			
		||||
 | 
			
		||||
  int emote_mod = ao_app->get_emote_mod(current_char, current_emote);
 | 
			
		||||
@ -145,3 +161,8 @@ void Courtroom::on_emote_right_clicked()
 | 
			
		||||
 | 
			
		||||
  ui_ic_chat_message->setFocus();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Courtroom::on_emote_dropdown_changed(int p_index)
 | 
			
		||||
{
 | 
			
		||||
  on_emote_clicked(p_index);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user