fixed lots of bugs, tweaked objections and added demonserver workaround for disconnecting
This commit is contained in:
		
							parent
							
								
									63caae75ea
								
							
						
					
					
						commit
						7af0cbfd1c
					
				@ -55,6 +55,8 @@ public:
 | 
				
			|||||||
  //player number, it's hardly used but might be needed for some old servers
 | 
					  //player number, it's hardly used but might be needed for some old servers
 | 
				
			||||||
  int s_pv = 0;
 | 
					  int s_pv = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  QString server_software = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  int char_list_size = 0;
 | 
					  int char_list_size = 0;
 | 
				
			||||||
  int loaded_chars = 0;
 | 
					  int loaded_chars = 0;
 | 
				
			||||||
  int evidence_list_size = 0;
 | 
					  int evidence_list_size = 0;
 | 
				
			||||||
@ -113,6 +115,7 @@ public:
 | 
				
			|||||||
  QString get_char_side(QString p_char);
 | 
					  QString get_char_side(QString p_char);
 | 
				
			||||||
  QString get_showname(QString p_char);
 | 
					  QString get_showname(QString p_char);
 | 
				
			||||||
  QString get_chat(QString p_char);
 | 
					  QString get_chat(QString p_char);
 | 
				
			||||||
 | 
					  QString get_char_shouts(QString p_char);
 | 
				
			||||||
  int get_preanim_duration(QString p_char, QString p_emote);
 | 
					  int get_preanim_duration(QString p_char, QString p_emote);
 | 
				
			||||||
  int get_ao2_preanim_duration(QString p_char, QString p_emote);
 | 
					  int get_ao2_preanim_duration(QString p_char, QString p_emote);
 | 
				
			||||||
  int get_text_delay(QString p_char, QString p_emote);
 | 
					  int get_text_delay(QString p_char, QString p_emote);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										12
									
								
								aomovie.cpp
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								aomovie.cpp
									
									
									
									
									
								
							@ -20,13 +20,19 @@ void AOMovie::set_play_once(bool p_play_once)
 | 
				
			|||||||
  play_once = p_play_once;
 | 
					  play_once = p_play_once;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void AOMovie::play(QString p_gif, QString p_char)
 | 
					void AOMovie::play(QString p_gif, QString p_char, QString p_custom_theme)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  m_movie->stop();
 | 
					  m_movie->stop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QString gif_path;
 | 
					  QString gif_path;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QString custom_path = ao_app->get_character_path(p_char) + p_gif + ".gif";
 | 
					  QString custom_path;
 | 
				
			||||||
 | 
					  if (p_gif == "custom")
 | 
				
			||||||
 | 
					    custom_path = ao_app->get_character_path(p_char) + p_gif + ".gif";
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    custom_path = ao_app->get_character_path(p_char) + p_gif + "_bubble.gif";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  QString custom_theme_path = ao_app->get_base_path() + "themes/" + p_custom_theme + "/" + p_gif + ".gif";
 | 
				
			||||||
  QString theme_path = ao_app->get_theme_path() + p_gif + ".gif";
 | 
					  QString theme_path = ao_app->get_theme_path() + p_gif + ".gif";
 | 
				
			||||||
  QString default_theme_path = ao_app->get_default_theme_path() + p_gif + ".gif";
 | 
					  QString default_theme_path = ao_app->get_default_theme_path() + p_gif + ".gif";
 | 
				
			||||||
  QString placeholder_path = ao_app->get_theme_path() + "placeholder.gif";
 | 
					  QString placeholder_path = ao_app->get_theme_path() + "placeholder.gif";
 | 
				
			||||||
@ -34,6 +40,8 @@ void AOMovie::play(QString p_gif, QString p_char)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if (file_exists(custom_path))
 | 
					  if (file_exists(custom_path))
 | 
				
			||||||
    gif_path = custom_path;
 | 
					    gif_path = custom_path;
 | 
				
			||||||
 | 
					  else if (file_exists(custom_theme_path))
 | 
				
			||||||
 | 
					    gif_path = custom_theme_path;
 | 
				
			||||||
  else if (file_exists(theme_path))
 | 
					  else if (file_exists(theme_path))
 | 
				
			||||||
    gif_path = theme_path;
 | 
					    gif_path = theme_path;
 | 
				
			||||||
  else if (file_exists(default_theme_path))
 | 
					  else if (file_exists(default_theme_path))
 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,7 @@ public:
 | 
				
			|||||||
  AOMovie(QWidget *p_parent, AOApplication *p_ao_app);
 | 
					  AOMovie(QWidget *p_parent, AOApplication *p_ao_app);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void set_play_once(bool p_play_once);
 | 
					  void set_play_once(bool p_play_once);
 | 
				
			||||||
  void play(QString p_gif, QString p_char = "");
 | 
					  void play(QString p_gif, QString p_char = "", QString p_custom_theme = "");
 | 
				
			||||||
  void combo_resize(int w, int h);
 | 
					  void combo_resize(int w, int h);
 | 
				
			||||||
  void stop();
 | 
					  void stop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -596,6 +596,8 @@ void Courtroom::done_received()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_background(QString p_background)
 | 
					void Courtroom::set_background(QString p_background)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  testimony_in_progress = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  current_background = p_background;
 | 
					  current_background = p_background;
 | 
				
			||||||
  QString bg_path = get_background_path();
 | 
					  QString bg_path = get_background_path();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -940,7 +942,7 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  chatmessage_is_empty = m_chatmessage[MESSAGE] == " " || m_chatmessage[MESSAGE] == "";
 | 
					  chatmessage_is_empty = m_chatmessage[MESSAGE] == " " || m_chatmessage[MESSAGE] == "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (m_chatmessage[MESSAGE] == ui_ic_chat_message->text())
 | 
					  if (m_chatmessage[MESSAGE] == ui_ic_chat_message->text() && m_chatmessage[CHAR_ID].toInt() == m_cid)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    ui_ic_chat_message->clear();
 | 
					    ui_ic_chat_message->clear();
 | 
				
			||||||
    objection_state = 0;
 | 
					    objection_state = 0;
 | 
				
			||||||
@ -958,6 +960,8 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
 | 
				
			|||||||
  previous_ic_message = f_message;
 | 
					  previous_ic_message = f_message;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  int objection_mod = m_chatmessage[OBJECTION_MOD].toInt();
 | 
					  int objection_mod = m_chatmessage[OBJECTION_MOD].toInt();
 | 
				
			||||||
 | 
					  QString f_char = m_chatmessage[CHAR_NAME];
 | 
				
			||||||
 | 
					  QString f_custom_theme = ao_app->get_char_shouts(f_char);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //if an objection is used
 | 
					  //if an objection is used
 | 
				
			||||||
  if (objection_mod <= 4 && objection_mod >= 1)
 | 
					  if (objection_mod <= 4 && objection_mod >= 1)
 | 
				
			||||||
@ -965,21 +969,21 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
 | 
				
			|||||||
    switch (objection_mod)
 | 
					    switch (objection_mod)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
    case 1:
 | 
					    case 1:
 | 
				
			||||||
      ui_vp_objection->play("holdit");
 | 
					      ui_vp_objection->play("holdit", f_char, f_custom_theme);
 | 
				
			||||||
      objection_player->play("holdit.wav", m_chatmessage[CHAR_NAME]);
 | 
					      objection_player->play("holdit.wav", f_char);
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case 2:
 | 
					    case 2:
 | 
				
			||||||
      ui_vp_objection->play("objection");
 | 
					      ui_vp_objection->play("objection", f_char, f_custom_theme);
 | 
				
			||||||
      objection_player->play("objection.wav", m_chatmessage[CHAR_NAME]);
 | 
					      objection_player->play("objection.wav", f_char);
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case 3:
 | 
					    case 3:
 | 
				
			||||||
      ui_vp_objection->play("takethat");
 | 
					      ui_vp_objection->play("takethat", f_char, f_custom_theme);
 | 
				
			||||||
      objection_player->play("takethat.wav", m_chatmessage[CHAR_NAME]);
 | 
					      objection_player->play("takethat.wav", f_char);
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    //case 4 is AO2 only
 | 
					    //case 4 is AO2 only
 | 
				
			||||||
    case 4:
 | 
					    case 4:
 | 
				
			||||||
      ui_vp_objection->play("custom", m_chatmessage[CHAR_NAME]);
 | 
					      ui_vp_objection->play("custom", f_char, f_custom_theme);
 | 
				
			||||||
      objection_player->play("custom.wav", m_chatmessage[CHAR_NAME]);
 | 
					      objection_player->play("custom.wav", f_char);
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
      qDebug() << "W: Logic error in objection switch statement!";
 | 
					      qDebug() << "W: Logic error in objection switch statement!";
 | 
				
			||||||
@ -1933,6 +1937,10 @@ void Courtroom::check_connection_received()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Courtroom::connection_timeout()
 | 
					void Courtroom::connection_timeout()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  //cheap hack because demonsoftware refuses to conform to standards
 | 
				
			||||||
 | 
					  if (ao_app->server_software.startsWith("AODemon"))
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  call_notice("Disconnected from server.");
 | 
					  call_notice("Disconnected from server.");
 | 
				
			||||||
  ao_app->construct_lobby();
 | 
					  ao_app->construct_lobby();
 | 
				
			||||||
  ao_app->destruct_courtroom();
 | 
					  ao_app->destruct_courtroom();
 | 
				
			||||||
 | 
				
			|||||||
@ -26,6 +26,7 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow()
 | 
				
			|||||||
  ui_player_count = new QLabel(this);
 | 
					  ui_player_count = new QLabel(this);
 | 
				
			||||||
  ui_description = new QPlainTextEdit(this);
 | 
					  ui_description = new QPlainTextEdit(this);
 | 
				
			||||||
  ui_chatbox = new QTextBrowser(this);
 | 
					  ui_chatbox = new QTextBrowser(this);
 | 
				
			||||||
 | 
					  ui_chatbox->setOpenExternalLinks(true);
 | 
				
			||||||
  ui_chatname = new QLineEdit(this);
 | 
					  ui_chatname = new QLineEdit(this);
 | 
				
			||||||
  ui_chatname->setPlaceholderText("Name");
 | 
					  ui_chatname->setPlaceholderText("Name");
 | 
				
			||||||
  ui_chatmessage = new QLineEdit(this);
 | 
					  ui_chatmessage = new QLineEdit(this);
 | 
				
			||||||
 | 
				
			|||||||
@ -116,7 +116,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
 | 
				
			|||||||
  QString f_packet = p_packet->to_string();
 | 
					  QString f_packet = p_packet->to_string();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (header != "checkconnection")
 | 
					  if (header != "checkconnection")
 | 
				
			||||||
    qDebug() << "R: " << f_packet;
 | 
					    qDebug() << "R:" << f_packet;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (header == "decryptor")
 | 
					  if (header == "decryptor")
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@ -146,6 +146,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
 | 
				
			|||||||
      goto end;
 | 
					      goto end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    s_pv = f_contents.at(0).toInt();
 | 
					    s_pv = f_contents.at(0).toInt();
 | 
				
			||||||
 | 
					    server_software = f_contents.at(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QString server_software = f_contents.at(1);
 | 
					    QString server_software = f_contents.at(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -19,7 +19,7 @@ QString AOApplication::read_config(QString searchline)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  while(!in.atEnd())
 | 
					  while(!in.atEnd())
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    QString f_line = in.readLine();
 | 
					    QString f_line = in.readLine().trimmed();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!f_line.startsWith(searchline))
 | 
					    if (!f_line.startsWith(searchline))
 | 
				
			||||||
      continue;
 | 
					      continue;
 | 
				
			||||||
@ -163,7 +163,7 @@ QString AOApplication::read_design_ini(QString p_identifier, QString p_design_pa
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  while (!in.atEnd())
 | 
					  while (!in.atEnd())
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    QString f_line = in.readLine();
 | 
					    QString f_line = in.readLine().trimmed();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!f_line.startsWith(p_identifier))
 | 
					    if (!f_line.startsWith(p_identifier))
 | 
				
			||||||
      continue;
 | 
					      continue;
 | 
				
			||||||
@ -362,6 +362,13 @@ QString AOApplication::get_chat(QString p_char)
 | 
				
			|||||||
  return f_result.toLower();
 | 
					  return f_result.toLower();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString AOApplication::get_char_shouts(QString p_char)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  QString f_result = read_char_ini(p_char, "shouts", "[Options]", "[Time]");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return f_result.toLower();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int AOApplication::get_preanim_duration(QString p_char, QString p_emote)
 | 
					int AOApplication::get_preanim_duration(QString p_char, QString p_emote)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QString f_result = read_char_ini(p_char, p_emote, "[Time]", "[Emotions]");
 | 
					  QString f_result = read_char_ini(p_char, p_emote, "[Time]", "[Emotions]");
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user