started implementing emotes
This commit is contained in:
		
							parent
							
								
									0997bdc26f
								
							
						
					
					
						commit
						ea09ad9dfc
					
				@ -35,7 +35,9 @@ SOURCES += main.cpp\
 | 
				
			|||||||
    aoscene.cpp \
 | 
					    aoscene.cpp \
 | 
				
			||||||
    aomovie.cpp \
 | 
					    aomovie.cpp \
 | 
				
			||||||
    misc_functions.cpp \
 | 
					    misc_functions.cpp \
 | 
				
			||||||
    aocharmovie.cpp
 | 
					    aocharmovie.cpp \
 | 
				
			||||||
 | 
					    aoemotebutton.cpp \
 | 
				
			||||||
 | 
					    emotes.cpp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HEADERS  += lobby.h \
 | 
					HEADERS  += lobby.h \
 | 
				
			||||||
    aoimage.h \
 | 
					    aoimage.h \
 | 
				
			||||||
@ -54,4 +56,5 @@ HEADERS  += lobby.h \
 | 
				
			|||||||
    aoscene.h \
 | 
					    aoscene.h \
 | 
				
			||||||
    aomovie.h \
 | 
					    aomovie.h \
 | 
				
			||||||
    misc_functions.h \
 | 
					    misc_functions.h \
 | 
				
			||||||
    aocharmovie.h
 | 
					    aocharmovie.h \
 | 
				
			||||||
 | 
					    aoemotebutton.h
 | 
				
			||||||
 | 
				
			|||||||
@ -95,6 +95,14 @@ void AOApplication::set_favorite_list()
 | 
				
			|||||||
  favorite_list = read_serverlist_txt();
 | 
					  favorite_list = read_serverlist_txt();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString AOApplication::get_current_char()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (courtroom_constructed)
 | 
				
			||||||
 | 
					    return w_courtroom->get_current_char();
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    return "";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void AOApplication::add_favorite_server(int p_server)
 | 
					void AOApplication::add_favorite_server(int p_server)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (p_server < 0 || p_server >= server_list.size())
 | 
					  if (p_server < 0 || p_server >= server_list.size())
 | 
				
			||||||
 | 
				
			|||||||
@ -74,6 +74,8 @@ public:
 | 
				
			|||||||
  void set_user_theme();
 | 
					  void set_user_theme();
 | 
				
			||||||
  QString get_user_theme() {return user_theme;}
 | 
					  QString get_user_theme() {return user_theme;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  QString get_current_char();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //implementation in path_functions.cpp
 | 
					  //implementation in path_functions.cpp
 | 
				
			||||||
  QString get_base_path();
 | 
					  QString get_base_path();
 | 
				
			||||||
  QString get_theme_path();
 | 
					  QString get_theme_path();
 | 
				
			||||||
@ -82,7 +84,6 @@ public:
 | 
				
			|||||||
  QString get_demothings_path();
 | 
					  QString get_demothings_path();
 | 
				
			||||||
  QString get_sounds_path();
 | 
					  QString get_sounds_path();
 | 
				
			||||||
  QString get_music_path();
 | 
					  QString get_music_path();
 | 
				
			||||||
 | 
					 | 
				
			||||||
  QString get_background_path();
 | 
					  QString get_background_path();
 | 
				
			||||||
  QString get_default_background_path();
 | 
					  QString get_default_background_path();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -96,6 +97,7 @@ public:
 | 
				
			|||||||
  QString get_chat(QString p_char);
 | 
					  QString get_chat(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_text_delay(QString p_char, QString p_emote);
 | 
					  int get_text_delay(QString p_char, QString p_emote);
 | 
				
			||||||
 | 
					  QString get_char_name(QString p_name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
  const int RELEASE = 2;
 | 
					  const int RELEASE = 2;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										10
									
								
								aoemotebutton.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								aoemotebutton.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					#include "aoemotebutton.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AOEmoteButton::AOEmoteButton(QWidget *p_parent, AOApplication *p_ao_app, int p_x, int p_y) : QPushButton(p_parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  m_parent = p_parent;
 | 
				
			||||||
 | 
					  m_ao_app = p_ao_app;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  this->move(p_x, p_y);
 | 
				
			||||||
 | 
					  this->resize(40, 40);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										20
									
								
								aoemotebutton.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								aoemotebutton.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					#ifndef AOEMOTEBUTTON_H
 | 
				
			||||||
 | 
					#define AOEMOTEBUTTON_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QPushButton>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "aoapplication.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class AOEmoteButton : public QPushButton
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					  AOEmoteButton(QWidget *p_parent, AOApplication *p_ao_app, int p_x, int p_y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					  QWidget *m_parent;
 | 
				
			||||||
 | 
					  AOApplication *m_ao_app;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // AOEMOTEBUTTON_H
 | 
				
			||||||
@ -74,10 +74,15 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
				
			|||||||
  ui_music_search = new QLineEdit(this);
 | 
					  ui_music_search = new QLineEdit(this);
 | 
				
			||||||
  ui_music_search->setFrame(false);
 | 
					  ui_music_search->setFrame(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //emote buttons
 | 
					  //////////emotes//////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_emote_left = new AOButton(this, ao_app);
 | 
					  ui_emotes = new QWidget(this);
 | 
				
			||||||
  ui_emote_right = new AOButton(this, ao_app);
 | 
					
 | 
				
			||||||
 | 
					  //implementation in emotes.cpp
 | 
				
			||||||
 | 
					  construct_emotes();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ui_emote_left = new AOButton(ui_emotes, ao_app);
 | 
				
			||||||
 | 
					  ui_emote_right = new AOButton(ui_emotes, ao_app);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_defense_bar = new AOImage(this, ao_app);
 | 
					  ui_defense_bar = new AOImage(this, ao_app);
 | 
				
			||||||
  ui_prosecution_bar = new  AOImage(this, ao_app);
 | 
					  ui_prosecution_bar = new  AOImage(this, ao_app);
 | 
				
			||||||
@ -314,6 +319,8 @@ void Courtroom::set_widgets()
 | 
				
			|||||||
  set_size_and_pos(ui_area_password, "area_password");
 | 
					  set_size_and_pos(ui_area_password, "area_password");
 | 
				
			||||||
  set_size_and_pos(ui_music_search, "music_search");
 | 
					  set_size_and_pos(ui_music_search, "music_search");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  set_size_and_pos(ui_emotes, "emotes");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //emote buttons
 | 
					  //emote buttons
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_emote_left, "emote_left");
 | 
					  set_size_and_pos(ui_emote_left, "emote_left");
 | 
				
			||||||
@ -543,9 +550,12 @@ void Courtroom::set_background(QString p_background)
 | 
				
			|||||||
void Courtroom::enter_courtroom(int p_cid)
 | 
					void Courtroom::enter_courtroom(int p_cid)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  m_cid = p_cid;
 | 
					  m_cid = p_cid;
 | 
				
			||||||
  QString f_char = char_list.at(m_cid).name;
 | 
					  QString f_char = ao_app->get_char_name(char_list.at(m_cid).name);
 | 
				
			||||||
 | 
					  current_char = f_char;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //T0D0: set emote buttons
 | 
					  current_emote_page = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  set_emote_page();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QString side = ao_app->get_char_side(f_char);
 | 
					  QString side = ao_app->get_char_side(f_char);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										25
									
								
								courtroom.h
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								courtroom.h
									
									
									
									
									
								
							@ -4,6 +4,7 @@
 | 
				
			|||||||
#include "aoimage.h"
 | 
					#include "aoimage.h"
 | 
				
			||||||
#include "aobutton.h"
 | 
					#include "aobutton.h"
 | 
				
			||||||
#include "aocharbutton.h"
 | 
					#include "aocharbutton.h"
 | 
				
			||||||
 | 
					#include "aoemotebutton.h"
 | 
				
			||||||
#include "aopacket.h"
 | 
					#include "aopacket.h"
 | 
				
			||||||
#include "aoscene.h"
 | 
					#include "aoscene.h"
 | 
				
			||||||
#include "aomovie.h"
 | 
					#include "aomovie.h"
 | 
				
			||||||
@ -52,6 +53,7 @@ public:
 | 
				
			|||||||
  QString get_default_background_path();
 | 
					  QString get_default_background_path();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  int get_cid() {return m_cid;}
 | 
					  int get_cid() {return m_cid;}
 | 
				
			||||||
 | 
					  QString get_current_char() {return current_char;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void enter_courtroom(int p_cid);
 | 
					  void enter_courtroom(int p_cid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -114,17 +116,21 @@ private:
 | 
				
			|||||||
  //state of text ticking, 0 = not yet ticking, 1 = ticking in progress, 2 = ticking done
 | 
					  //state of text ticking, 0 = not yet ticking, 1 = ticking in progress, 2 = ticking done
 | 
				
			||||||
  int text_state = 0;
 | 
					  int text_state = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //0 is the first page, 1 second etc.
 | 
					 | 
				
			||||||
  //makes char arithmetic easier
 | 
					 | 
				
			||||||
  int current_char_page = 0;
 | 
					  int current_char_page = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //character id, which index of the char_list the player is
 | 
					  //character id, which index of the char_list the player is
 | 
				
			||||||
  int m_cid = 0;
 | 
					  int m_cid = 0;
 | 
				
			||||||
 | 
					  //cid and this may differ in cases of ini-editing
 | 
				
			||||||
 | 
					  QString current_char = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int current_emote_page = 0;
 | 
				
			||||||
 | 
					  int current_emote = 0;
 | 
				
			||||||
 | 
					  const int max_emotes_on_page = 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //is set to true if the bg folder contains defensedesk.png, prosecutiondesk.png and stand.png
 | 
					  //is set to true if the bg folder contains defensedesk.png, prosecutiondesk.png and stand.png
 | 
				
			||||||
  bool is_ao2_bg = false;
 | 
					  bool is_ao2_bg = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //wether the ooc chat is server or master chat, true is server
 | 
					  //whether the ooc chat is server or master chat, true is server
 | 
				
			||||||
  bool server_ooc = true;
 | 
					  bool server_ooc = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QString current_background = "gs4";
 | 
					  QString current_background = "gs4";
 | 
				
			||||||
@ -133,14 +139,12 @@ private:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  AOImage *ui_background;
 | 
					  AOImage *ui_background;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //ui_viewport is the parent of all the viewport widgets
 | 
					 | 
				
			||||||
  QWidget *ui_viewport;
 | 
					  QWidget *ui_viewport;
 | 
				
			||||||
  AOScene *ui_vp_background;
 | 
					  AOScene *ui_vp_background;
 | 
				
			||||||
  AOMovie *ui_vp_speedlines;
 | 
					  AOMovie *ui_vp_speedlines;
 | 
				
			||||||
  AOCharMovie *ui_vp_player_char;
 | 
					  AOCharMovie *ui_vp_player_char;
 | 
				
			||||||
  AOScene *ui_vp_desk;
 | 
					  AOScene *ui_vp_desk;
 | 
				
			||||||
  AOScene *ui_vp_legacy_desk;
 | 
					  AOScene *ui_vp_legacy_desk;
 | 
				
			||||||
  //AOImage *ui_vp_legacy_padding;
 | 
					 | 
				
			||||||
  AOImage *ui_vp_chatbox;
 | 
					  AOImage *ui_vp_chatbox;
 | 
				
			||||||
  QLabel *ui_vp_showname;
 | 
					  QLabel *ui_vp_showname;
 | 
				
			||||||
  QPlainTextEdit *ui_vp_message;
 | 
					  QPlainTextEdit *ui_vp_message;
 | 
				
			||||||
@ -166,8 +170,8 @@ private:
 | 
				
			|||||||
  QLineEdit *ui_area_password;
 | 
					  QLineEdit *ui_area_password;
 | 
				
			||||||
  QLineEdit *ui_music_search;
 | 
					  QLineEdit *ui_music_search;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //T0D0: add emote buttons
 | 
					  QWidget *ui_emotes;
 | 
				
			||||||
 | 
					  QVector<AOEmoteButton*> ui_emote_list;
 | 
				
			||||||
  AOButton *ui_emote_left;
 | 
					  AOButton *ui_emote_left;
 | 
				
			||||||
  AOButton *ui_emote_right;
 | 
					  AOButton *ui_emote_right;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -213,8 +217,6 @@ private:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  AOImage *ui_muted;
 | 
					  AOImage *ui_muted;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //char select stuff under here
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  AOImage *ui_char_select_background;
 | 
					  AOImage *ui_char_select_background;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QVector<AOCharButton*> ui_char_button_list;
 | 
					  QVector<AOCharButton*> ui_char_button_list;
 | 
				
			||||||
@ -229,6 +231,11 @@ private:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  AOButton *ui_spectator;
 | 
					  AOButton *ui_spectator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void construct_emotes();
 | 
				
			||||||
 | 
					  void set_emote_page();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public slots:
 | 
					public slots:
 | 
				
			||||||
  void objection_done();
 | 
					  void objection_done();
 | 
				
			||||||
  void preanim_done();
 | 
					  void preanim_done();
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										45
									
								
								emotes.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								emotes.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					#include "courtroom.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "aoemotebutton.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Courtroom::construct_emotes()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  //constructing emote button grid
 | 
				
			||||||
 | 
					  const int base_x_pos{10};
 | 
				
			||||||
 | 
					  const int base_y_pos{0};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const int x_modifier{49};
 | 
				
			||||||
 | 
					  int x_mod_count{0};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const int y_modifier{49};
 | 
				
			||||||
 | 
					  int y_mod_count{0};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (int n = 0 ; n < 90 ; ++n)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    int x_pos = base_x_pos + (x_modifier * x_mod_count);
 | 
				
			||||||
 | 
					    int y_pos = base_y_pos + (y_modifier * y_mod_count);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ui_emote_list.append(new AOEmoteButton(ui_emotes, ao_app, x_pos, y_pos));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ++x_mod_count;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //if char number is divisible by 5 with rest 4 then the next emote button should start on a new line
 | 
				
			||||||
 | 
					    if (n % 5 == 4 && n != 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      ++y_mod_count;
 | 
				
			||||||
 | 
					      x_mod_count = 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Courtroom::set_emote_page()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  ui_emote_left->hide();
 | 
				
			||||||
 | 
					  ui_emote_right->hide();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (AOEmoteButton *i_button : ui_emote_list)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    i_button->hide();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -283,3 +283,36 @@ int AOApplication::get_text_delay(QString p_char, QString p_emote)
 | 
				
			|||||||
  return -1;
 | 
					  return -1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString AOApplication::get_char_name(QString p_name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  QString char_ini_path = get_character_path(p_name) + "char.ini";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  QFile char_ini;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  char_ini.setFileName(char_ini_path);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (!char_ini.open(QIODevice::ReadOnly))
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    return "";
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  QTextStream in(&char_ini);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  while(!in.atEnd())
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    QString line = in.readLine();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!line.startsWith("name"))
 | 
				
			||||||
 | 
					      continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QStringList line_elements = line.split("=");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (line_elements.size() < 2)
 | 
				
			||||||
 | 
					      continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return line_elements.at(1).trimmed();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return "";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user