diff options
Diffstat (limited to 'include/courtroom.h')
| -rw-r--r-- | include/courtroom.h | 1025 |
1 files changed, 0 insertions, 1025 deletions
diff --git a/include/courtroom.h b/include/courtroom.h deleted file mode 100644 index 0b26247f..00000000 --- a/include/courtroom.h +++ /dev/null @@ -1,1025 +0,0 @@ -#ifndef COURTROOM_H -#define COURTROOM_H - -#include "aoapplication.h" -#include "aoblipplayer.h" -#include "aobutton.h" -#include "aocharbutton.h" -#include "aoclocklabel.h" -#include "aoemotebutton.h" -#include "aoemotepreview.h" -#include "aoevidencebutton.h" -#include "aoevidencedisplay.h" -#include "aoimage.h" -#include "aolayer.h" -#include "aomusicplayer.h" -#include "aopacket.h" -#include "aosfxplayer.h" -#include "aotextarea.h" -#include "aotextboxwidgets.h" -#include "chatlogpiece.h" -#include "datatypes.h" -#include "debug_functions.h" -#include "eventfilters.h" -#include "file_functions.h" -#include "hardware_functions.h" -#include "lobby.h" -#include "scrolltext.h" -#include "widgets/aooptionsdialog.h" - -#include <QCheckBox> -#include <QCloseEvent> -#include <QComboBox> -#include <QHeaderView> -#include <QLineEdit> -#include <QListWidget> -#include <QMainWindow> -#include <QMap> -#include <QPlainTextEdit> -#include <QSlider> -#include <QSpinBox> -#include <QTextBrowser> -#include <QTreeWidget> -#include <QVector> -#include <QQueue> - -#include <QBrush> -#include <QDebug> -#include <QDesktopServices> -#include <QFileDialog> -#include <QFont> -#include <QInputDialog> -#include <QMenu> -#include <QMessageBox> -#include <QParallelAnimationGroup> -#include <QPropertyAnimation> -#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0) -#include <QRandomGenerator> //added in Qt 5.10 -#endif -#include <QRegularExpression> -#include <QScrollBar> -#include <QTextBoundaryFinder> -#include <QTextCharFormat> -#include <QElapsedTimer> - -#include <QFuture> - -#include <algorithm> -#include <stack> - -class AOApplication; - -class Courtroom : public QMainWindow { - Q_OBJECT -public: - explicit Courtroom(AOApplication *p_ao_app); - - void update_audio_volume(); - - void append_char(char_type p_char) { char_list.append(p_char); } - void append_evidence(evi_type p_evi) { evidence_list.append(p_evi); } - void append_music(QString f_music) { music_list.append(f_music); } - void append_area(QString f_area) { area_list.append(f_area); } - void clear_chars() { char_list.clear(); } - void clear_music() { music_list.clear(); } - void clear_areas() { area_list.clear(); } - - void fix_last_area() - { - if (area_list.size() > 0) { - QString malplaced = area_list.last(); - area_list.removeLast(); - append_music(malplaced); - } - } - - void arup_append(int players, QString status, QString cm, QString locked) - { - arup_players.append(players); - arup_statuses.append(status); - arup_cms.append(cm); - arup_locks.append(locked); - } - - void arup_clear() { - arup_players.clear(); - arup_statuses.clear(); - arup_cms.clear(); - arup_locks.clear(); - } - - void arup_modify(int type, int place, QString value) - { - if (type == 0) { - if (arup_players.size() > place) - arup_players[place] = value.toInt(); - } - else if (type == 1) { - if (arup_statuses.size() > place) - arup_statuses[place] = value; - } - else if (type == 2) { - if (arup_cms.size() > place) - arup_cms[place] = value; - } - else if (type == 3) { - if (arup_locks.size() > place) - arup_locks[place] = value; - } - } - - void character_loading_finished(); - - // - void set_courtroom_size(); - - // sets position of widgets based on theme ini files - void set_widgets(); - - // sets font size based on theme ini files - void set_font(QWidget *widget, QString class_name, QString p_identifier, - QString p_char = "", QString font_name = "", - int f_pointsize = 0); - - // Get the properly constructed font - QFont get_qfont(QString font_name, int f_pointsize, bool antialias = true); - - // actual operation of setting the font on a widget - void set_qfont(QWidget *widget, QString class_name, QFont font, - QColor f_color = Qt::black, bool bold = false, - bool outlined = false, QColor outline_color = QColor(0, 0, 0), - int outline_width = 1); - - // helper function that calls above function on the relevant widgets - void set_fonts(QString p_char = ""); - - // sets dropdown menu stylesheet - void set_stylesheet(QWidget *widget); - - // helper funciton that call above function on the relevant widgets - void set_stylesheets(); - - void set_window_title(QString p_title); - - // reads theme and sets size and pos based on the identifier (using p_misc if provided) - void set_size_and_pos(QWidget *p_widget, QString p_identifier, QString p_misc=""); - - // reads theme inis and returns the size and pos as defined by it - QPoint get_theme_pos(QString p_identifier); - - // sets status as taken on character with cid n_char and places proper shading - // on charselect - void set_taken(int n_char, bool p_taken); - - // sets the current background to argument. also does some checks to see if - // it's a legacy bg - void set_background(QString p_background, bool display = false); - - // sets the local character pos/side to use. - void set_side(QString p_side); - - // sets the pos dropdown - void set_pos_dropdown(QStringList pos_dropdowns); - - // sets the evidence list member variable to argument - void set_evidence_list(QVector<evi_type> &p_evi_list); - - // called when a DONE#% from the server was received - void done_received(); - - // sets the local mute list based on characters available on the server - void set_mute_list(); - - // Sets the local pair list based on the characters available on the server. - void set_pair_list(); - - // sets desk and bg based on pos in chatmessage - void set_scene(bool show_desk, QString f_side); - - // sets ui_vp_player_char according to SELF_OFFSET, only a function bc it's used with desk_mod 4 and 5 - void set_self_offset(const QString& p_list); - - // takes in serverD-formatted IP list as prints a converted version to server - // OOC admittedly poorly named - void set_ip_list(QString p_list); - - // disables chat if current cid matches second argument - // enables if p_muted is false - void set_mute(bool p_muted, int p_cid); - - // send a message that the player is banned and quits the server - void set_ban(int p_cid); - - // cid = character id, returns the cid of the currently selected character - int get_cid() { return m_cid; } - QString get_current_char() { return current_char; } - QString get_current_background() { return current_background; } - - // updates character to p_cid and updates necessary ui elements - // Optional "char_name" is the iniswap we're using - void update_character(int p_cid, QString char_name = "", bool reset_emote = false); - - // properly sets up some varibles: resets user state - void enter_courtroom(); - - // helper function that populates ui_music_list with the contents of - // music_list - void list_music(); - void list_areas(); - - // Debug log (formerly master server chat log) - void debug_message_handler(QtMsgType type, const QMessageLogContext &context, - const QString &msg); - void append_debug_message(QString f_message); - - // OOC chat log - void append_server_chatmessage(QString p_name, QString p_message, - QString p_color); - - // Add the message packet to the stack - void chatmessage_enqueue(QStringList p_contents); - - // Parse the chat message packet and unpack it into the m_chatmessage[ITEM] format - void unpack_chatmessage(QStringList p_contents); - - // Skip the current queue, adding all the queue messages to the logs if desynchronized logs are disabled - void skip_chatmessage_queue(); - - enum LogMode { - IO_ONLY, - DISPLAY_ONLY, - DISPLAY_AND_IO, - QUEUED, - }; - // Log the message contents and information such as evidence presenting etc. into the log file, the IC log, or both. - void log_chatmessage(QString f_message, int f_char_id, QString f_showname = "", QString f_char = "", QString f_objection_mod = "", int f_evi_id = 0, int f_color = 0, LogMode f_log_mode=IO_ONLY, bool sender = false); - - // Log the message contents and information such as evidence presenting etc. into the IC logs - void handle_callwords(); - - // Handle the objection logic, if it's interrupting the currently parsing message. - // Returns true if this message has an objection, otherwise returns false. The result decides when to call handle_ic_message() - bool handle_objection(); - - // Display the evidence image box when presenting evidence in IC - void display_evidence_image(); - - // Handle the stuff that comes when the character appears on screen and starts animating (preanims etc.) - void handle_ic_message(); - - // Display the character. - void display_character(); - - // Display the character's pair if present. - void display_pair_character(QString other_charid, QString other_offset); - - // Handle the emote modifier value and proceed through the logic accordingly. - void handle_emote_mod(int emote_mod, bool p_immediate); - - // Initialize the chatbox image, showname shenanigans, custom chatboxes, etc. - void initialize_chatbox(); - - // Finally start displaying the chatbox we initialized, display the evidence, and play the talking or idle emote for the character. - // Callwords are also handled here. - void handle_ic_speaking(); - - // This function filters out the common CC inline text trickery, for appending - // to the IC chatlog. - QString filter_ic_text(QString p_text, bool colorize = false, int pos = -1, - int default_color = 0); - - void log_ic_text(QString p_name, QString p_showname, QString p_message, - QString p_action = "", int p_color = 0, bool p_selfname = false); - - // adds text to the IC chatlog. p_name first as bold then p_text then a newlin - // this function keeps the chatlog scrolled to the top unless there's text - // selected - // or the user isn't already scrolled to the top - void append_ic_text(QString p_text, QString p_name = "", QString action = "", - int color = 0, bool selfname = false, QDateTime timestamp = QDateTime::currentDateTime(), - bool ghost = false); - - // clear sent messages that appear on the IC log but haven't been delivered - // yet to other players - void pop_ic_ghost(); - - // prints who played the song to IC chat and plays said song(if found on local - // filesystem) takes in a list where the first element is the song name and - // the second is the char id of who played it - void handle_song(QStringList *p_contents); - - void play_preanim(bool immediate); - - // plays the witness testimony or cross examination animation based on - // argument - void handle_wtce(QString p_wtce, int variant); - - // sets the hp bar of defense(p_bar 1) or pro(p_bar 2) - // state is an number between 0 and 10 inclusive - void set_hp_bar(int p_bar, int p_state); - - // Toggles the judge buttons, whether they should appear or not. - void show_judge_controls(bool visible); - - void check_connection_received(); - - void start_clock(int id); - void start_clock(int id, qint64 msecs); - void set_clock(int id, qint64 msecs); - void pause_clock(int id); - void stop_clock(int id); - void set_clock_visibility(int id, bool visible); - void skip_clocks(qint64 msecs); - - qint64 pong(); - // Truncates text so it fits within theme-specified boundaries and sets the tooltip to the full string - void truncate_label_text(QWidget* p_widget, QString p_identifier); - - void on_authentication_state_received(int p_state); - - enum JudgeState { - POS_DEPENDENT = -1, - HIDE_CONTROLS = 0, - SHOW_CONTROLS = 1 - }; - - JudgeState get_judge_state() { return judge_state; } - void set_judge_state(JudgeState new_state) { judge_state = new_state; } - void set_judge_buttons() { show_judge_controls(ao_app->get_pos_is_judge(current_side)); } - - ~Courtroom(); -private: - AOApplication *ao_app; - - // Percentage of audio that is suppressed when client is not in focus - int suppress_audio = 0; - - int m_courtroom_width = 714; - int m_courtroom_height = 668; - - int m_viewport_x = 0; - int m_viewport_y = 0; - - int m_viewport_width = 256; - int m_viewport_height = 192; - - int maximumMessages = 0; - - QParallelAnimationGroup *screenshake_animation_group = - new QParallelAnimationGroup; - - bool next_character_is_not_special = false; // If true, write the - // next character as it is. - - bool message_is_centered = false; - - int current_display_speed = 3; - int text_crawl = 40; - double message_display_mult[7] = {0, 0.25, 0.65, 1, 1.25, 1.75, 2.25}; - - // The character ID of the character this user wants to appear alongside with. - int other_charid = -1; - - // The horizontal offset this user has given if they want to appear alongside someone. - int char_offset = 0; - - // The vertical offset this user has given. - int char_vert_offset = 0; - - // 0 = in front, 1 = behind - int pair_order = 0; - - QVector<char_type> char_list; - QVector<evi_type> evidence_list; - QVector<QString> music_list; - QVector<QString> area_list; - - QVector<int> arup_players; - QVector<QString> arup_statuses; - QVector<QString> arup_cms; - QVector<QString> arup_locks; - - QVector<chatlogpiece> ic_chatlog_history; - QString last_ic_message = ""; - - QQueue<QStringList> chatmessage_queue; - - // triggers ping_server() every 45 seconds - QTimer *keepalive_timer; - - // determines how fast messages tick onto screen - QTimer *chat_tick_timer; - - // count up timer to check how long it took for us to get a response from ping_server() - QElapsedTimer ping_timer; - bool is_pinging = false; - - // int chat_tick_interval = 60; - // which tick position(character in chat message) we are at - int tick_pos = 0; - // the actual document tick pos we gotta worry about for making the text - // scroll better - int real_tick_pos = 0; - // used to determine how often blips sound - int blip_ticker = 0; - int blip_rate = 2; - int rainbow_counter = 0; - bool rainbow_appended = false; - bool blank_blip = false; - bool chatbox_always_show = false; - - // Used for getting the current maximum blocks allowed in the IC chatlog. - int log_maximum_blocks = 0; - - // True, if the log should go downwards. - bool log_goes_downwards = true; - - // True, if log should display colors. - bool log_colors = true; - - // True, if the log should display the message like name<br>text instead of - // name: text - bool log_newline = false; - - // True, if the log should include RP actions like interjections, showing evidence, etc. - bool log_ic_actions = true; - - // Margin in pixels between log entries for the IC log. - int log_margin = 0; - - // True, if the log should have a timestamp. - bool log_timestamp = false; - - // format string for aforementioned log timestamp - QString log_timestamp_format; - - // How long in miliseconds should the objection wait before appearing. - int objection_threshold = 1500; - - // delay before chat messages starts ticking - QTimer *text_delay_timer; - - // delay before the next queue entry is going to be processed - QTimer *text_queue_timer; - - // delay before sfx plays - QTimer *sfx_delay_timer; - - // every time point in char.inis times this equals the final time - const int time_mod = 40; - - // the amount of time non-animated objection/hold it/takethat images stay - // onscreen for in ms, and the maximum amount of time any interjections are - // allowed to play - const int shout_static_time = 724; - const int shout_max_time = 1500; - - // the amount of time non-animated guilty/not guilty images stay onscreen for - // in ms, and the maximum amount of time g/ng images are allowed to play - const int verdict_static_time = 3000; - const int verdict_max_time = 4000; - - // the amount of time non-animated witness testimony/cross-examination images - // stay onscreen for in ms, and the maximum time any wt/ce image is allowed to - // play - const int wtce_static_time = 1500; - const int wtce_max_time = 4000; - - // characters we consider punctuation - const QString punctuation_chars = ".,?!:;"; - - // amount by which we multiply the delay when we parse punctuation chars - const int punctuation_modifier = 3; - - // amount of ghost blocks - int ghost_blocks = 0; - - // Minumum and maximum number of parameters in the MS packet - static const int MS_MINIMUM = 15; - static const int MS_MAXIMUM = 30; - QString m_chatmessage[MS_MAXIMUM]; - - QString previous_ic_message = ""; - QString additive_previous = ""; - - // char id, muted or not - QMap<int, bool> mute_map; - - // QVector<int> muted_cids; - - bool is_muted = false; - - JudgeState judge_state = POS_DEPENDENT; - - // state of animation, 0 = objecting, 1 = preanim, 2 = talking, 3 = idle, 4 = - // noniterrupting preanim, 5 = (c) animation - int anim_state = 3; - - // whether or not current color is a talking one - bool color_is_talking = true; - - // state of text ticking, 0 = not yet ticking, 1 = ticking in progress, 2 = - // ticking done - int text_state = 2; - - // character id, which index of the char_list the player is - int m_cid = -1; - // cid and this may differ in cases of ini-editing - QString current_char = ""; - - int objection_state = 0; - QString objection_custom = ""; - struct CustomObjection { - QString name; - QString filename; - }; - QList<CustomObjection> custom_objections_list; - int realization_state = 0; - int screenshake_state = 0; - int text_color = 0; - - // How many unique user colors are possible - static const int max_colors = 12; - - // Text Color-related optimization: - // Current color list indexes to real color references - QVector<int> color_row_to_number; - - // List of associated RGB colors for this color index - QVector<QColor> color_rgb_list; - - // Same as above but populated from misc/default's config - QVector<QColor> default_color_rgb_list; - - // Get a color index from an arbitrary misc config - void gen_char_rgb_list(QString p_misc); - QVector<QColor> char_color_rgb_list; - - // Misc we used for the last message, and the one we're using now. Used to avoid loading assets when it's not needed - QString current_misc; - QString last_misc; - - // List of markdown start characters, their index is tied to the color index - QStringList color_markdown_start_list; - - // List of markdown end characters, their index is tied to the color index - QStringList color_markdown_end_list; - - // Whether or not we're supposed to remove this char during parsing - QVector<bool> color_markdown_remove_list; - - // Whether or not this color allows us to play the talking animation - QVector<bool> color_markdown_talking_list; - // Text Color-related optimization END - - // List of all currently available pos - QStringList pos_dropdown_list; - - // Current list file sorted line by line - QStringList sound_list; - - // Current SFX the user put in for the sfx dropdown list - QString custom_sfx = ""; - - // is the message we're about to send supposed to present evidence? - bool is_presenting_evidence = false; - bool c_played = false; // whether we've played a (c)-style postanimation yet - - // have we already presented evidence for this message? - bool evidence_presented = false; - - QString effect = ""; - - // Music effect flags we want to send to server when we play music - int music_flags = FADE_OUT; - - int defense_bar_state = 0; - int prosecution_bar_state = 0; - - int current_char_page = 0; - int char_columns = 10; - int char_rows = 9; - int max_chars_on_page = 90; - - const int button_width = 60; - const int button_height = 60; - - int current_emote_page = 0; - int current_emote = 0; - int emote_columns = 5; - int emote_rows = 2; - int max_emotes_on_page = 10; - - QVector<evi_type> local_evidence_list; - QVector<evi_type> private_evidence_list; - QVector<evi_type> global_evidence_list; - - // false = use private_evidence_list - bool current_evidence_global = true; - - int current_evidence_page = 0; - int current_evidence = 0; - int evidence_columns = 6; - int evidence_rows = 3; - int max_evidence_on_page = 18; - - // whether the ooc chat is server or master chat, true is server - bool server_ooc = true; - - QString current_background = "default"; - QString current_side = ""; - - QString last_music_search = ""; - QString last_area_search = ""; - - QBrush free_brush; - QBrush lfp_brush; - QBrush casing_brush; - QBrush recess_brush; - QBrush rp_brush; - QBrush gaming_brush; - QBrush locked_brush; - - AOMusicPlayer *music_player; - AOSfxPlayer *sfx_player; - AOSfxPlayer *objection_player; - AOBlipPlayer *blip_player; - - AOSfxPlayer *modcall_player; - - AOImage *ui_background; - - QWidget *ui_viewport; - BackgroundLayer *ui_vp_background; - SplashLayer *ui_vp_speedlines; - CharLayer *ui_vp_player_char; - CharLayer *ui_vp_sideplayer_char; - BackgroundLayer *ui_vp_desk; - AOEvidenceDisplay *ui_vp_evidence_display; - AOImage *ui_vp_chatbox; - AOChatboxLabel *ui_vp_showname; - InterfaceLayer *ui_vp_chat_arrow; - QTextEdit *ui_vp_message; - SplashLayer *ui_vp_testimony; - SplashLayer *ui_vp_wtce; - EffectLayer *ui_vp_effect; - SplashLayer *ui_vp_objection; - - QTextEdit *ui_ic_chatlog; - - AOTextArea *ui_debug_log; - AOTextArea *ui_server_chatlog; - - QListWidget *ui_mute_list; - QTreeWidget *ui_area_list; - QTreeWidget *ui_music_list; - - ScrollText *ui_music_name; - InterfaceLayer *ui_music_display; - - StickerLayer *ui_vp_sticker; - - static const int max_clocks = 5; - AOClockLabel *ui_clock[max_clocks]; - - AOButton *ui_pair_button; - QListWidget *ui_pair_list; - QSpinBox *ui_pair_offset_spinbox; - QSpinBox *ui_pair_vert_offset_spinbox; - - QComboBox *ui_pair_order_dropdown; - - QLineEdit *ui_ic_chat_message; - AOLineEditFilter *ui_ic_chat_message_filter; - QLineEdit *ui_ic_chat_name; - - QLineEdit *ui_ooc_chat_message; - QLineEdit *ui_ooc_chat_name; - - // QLineEdit *ui_area_password; - QLineEdit *ui_music_search; - - QWidget *ui_emotes; - QVector<AOEmoteButton *> ui_emote_list; - AOButton *ui_emote_left; - AOButton *ui_emote_right; - - QMenu *emote_menu; - AOEmotePreview *emote_preview; - - QComboBox *ui_emote_dropdown; - QComboBox *ui_pos_dropdown; - AOButton *ui_pos_remove; - - QComboBox *ui_iniswap_dropdown; - AOButton *ui_iniswap_remove; - - QComboBox *ui_sfx_dropdown; - AOButton *ui_sfx_remove; - - QComboBox *ui_effects_dropdown; - - AOImage *ui_defense_bar; - AOImage *ui_prosecution_bar; - - QLabel *ui_music_label; - QLabel *ui_sfx_label; - QLabel *ui_blip_label; - - AOButton *ui_hold_it; - AOButton *ui_objection; - AOButton *ui_take_that; - - AOButton *ui_ooc_toggle; - - AOButton *ui_witness_testimony; - AOButton *ui_cross_examination; - AOButton *ui_guilty; - AOButton *ui_not_guilty; - - AOButton *ui_change_character; - AOButton *ui_reload_theme; - AOButton *ui_call_mod; - AOButton *ui_settings; - AOButton *ui_switch_area_music; - - QCheckBox *ui_pre; - QCheckBox *ui_flip; - QCheckBox *ui_additive; - QCheckBox *ui_guard; - - QCheckBox *ui_immediate; - QCheckBox *ui_showname_enable; - - AOButton *ui_custom_objection; - QMenu *custom_obj_menu; - AOButton *ui_realization; - AOButton *ui_screenshake; - AOButton *ui_mute; - - AOButton *ui_defense_plus; - AOButton *ui_defense_minus; - - AOButton *ui_prosecution_plus; - AOButton *ui_prosecution_minus; - - QComboBox *ui_text_color; - - QSlider *ui_music_slider; - QSlider *ui_sfx_slider; - QSlider *ui_blip_slider; - - AOImage *ui_muted; - - AOButton *ui_evidence_button; - AOImage *ui_evidence; - QLineEdit *ui_evidence_name; - AOLineEditFilter *ui_evidence_name_filter; - QWidget *ui_evidence_buttons; - QVector<AOEvidenceButton *> ui_evidence_list; - AOButton *ui_evidence_left; - AOButton *ui_evidence_right; - AOButton *ui_evidence_present; - AOImage *ui_evidence_overlay; - AOButton *ui_evidence_delete; - QLineEdit *ui_evidence_image_name; - AOLineEditFilter *ui_evidence_image_name_filter; - AOButton *ui_evidence_image_button; - AOButton *ui_evidence_x; - AOButton *ui_evidence_ok; - AOButton *ui_evidence_switch; - AOButton *ui_evidence_transfer; - AOButton *ui_evidence_save; - AOButton *ui_evidence_load; - QPlainTextEdit *ui_evidence_description; - - - AOImage *ui_char_select_background; - - // pretty list of characters - QTreeWidget *ui_char_list; - - // abstract widget to hold char buttons - QWidget *ui_char_buttons; - - QVector<AOCharButton *> ui_char_button_list; - QVector<AOCharButton *> ui_char_button_list_filtered; - - AOButton *ui_back_to_lobby; - - QLineEdit *ui_char_password; - - AOButton *ui_char_select_left; - AOButton *ui_char_select_right; - - AOButton *ui_spectator; - - QLineEdit *ui_char_search; - QCheckBox *ui_char_passworded; - QCheckBox *ui_char_taken; - - void construct_char_select(); - void set_char_select(); - void set_char_select_page(); - void char_clicked(int n_char); - void on_char_button_context_menu_requested(const QPoint &pos); - void put_button_in_place(int starting, int chars_on_this_page); - void filter_character_list(); - - void initialize_emotes(); - void refresh_emotes(); - void set_emote_page(); - void set_emote_dropdown(); - - void initialize_evidence(); - void refresh_evidence(); - void show_evidence(int f_real_id); - void set_evidence_page(); - - void reset_ui(); - - void regenerate_ic_chatlog(); -public slots: - void objection_done(); - void preanim_done(); - void do_screenshake(); - void do_flash(); - void do_effect(QString fx_path, QString fx_sound, QString p_char, - QString p_folder); - void play_char_sfx(QString sfx_name); - - void mod_called(QString p_ip); - - void on_reload_theme_clicked(); - - void update_ui_music_name(); - -private slots: - void start_chat_ticking(); - void play_sfx(); - - void chat_tick(); - - void on_mute_list_clicked(QModelIndex p_index); - void on_pair_list_clicked(QModelIndex p_index); - - void on_chat_return_pressed(); - - void on_ooc_return_pressed(); - - void on_music_search_return_pressed(); - void on_music_search_edited(QString p_text); - void on_music_list_double_clicked(QTreeWidgetItem *p_item, int column); - void on_music_list_context_menu_requested(const QPoint &pos); - void music_fade_out(bool toggle); - void music_fade_in(bool toggle); - void music_synchronize(bool toggle); - void music_random(); - void music_list_expand_all(); - void music_list_collapse_all(); - void music_stop(bool no_effects = false); - void on_area_list_double_clicked(QTreeWidgetItem *p_item, int column); - - void select_emote(int p_id); - - void on_emote_clicked(int p_id); - - void on_emote_left_clicked(); - void on_emote_right_clicked(); - - void on_emote_dropdown_changed(int p_index); - void on_pos_dropdown_changed(int p_index); - void on_pos_dropdown_changed(QString p_text); - void on_pos_dropdown_context_menu_requested(const QPoint &pos); - void on_pos_remove_clicked(); - - void on_iniswap_dropdown_changed(int p_index); - void set_iniswap_dropdown(); - void on_iniswap_context_menu_requested(const QPoint &pos); - void on_iniswap_edit_requested(); - void on_iniswap_remove_clicked(); - - void on_sfx_dropdown_changed(int p_index); - void on_sfx_dropdown_custom(QString p_sfx); - void set_sfx_dropdown(); - void on_sfx_context_menu_requested(const QPoint &pos); - void on_sfx_play_clicked(); - void on_sfx_edit_requested(); - void on_sfx_remove_clicked(); - - void set_effects_dropdown(); - void on_effects_context_menu_requested(const QPoint &pos); - void on_effects_edit_requested(); - void on_character_effects_edit_requested(); - void on_effects_dropdown_changed(int p_index); - bool effects_dropdown_find_and_set(QString effect); - - QString get_char_sfx(); - int get_char_sfx_delay(); - - void on_evidence_name_edited(); - void on_evidence_image_name_edited(); - void on_evidence_image_button_clicked(); - void on_evidence_clicked(int p_id); - void on_evidence_double_clicked(int p_id); - - void on_evidence_hover(int p_id, bool p_state); - - void on_evidence_left_clicked(); - void on_evidence_right_clicked(); - void on_evidence_present_clicked(); - - void on_hold_it_clicked(); - void on_objection_clicked(); - void on_take_that_clicked(); - void on_custom_objection_clicked(); - void show_custom_objection_menu(const QPoint &pos); - - void show_emote_menu(const QPoint &pos); - - void on_realization_clicked(); - void on_screenshake_clicked(); - - void on_mute_clicked(); - void on_pair_clicked(); - void on_pair_order_dropdown_changed(int p_index); - - void on_defense_minus_clicked(); - void on_defense_plus_clicked(); - void on_prosecution_minus_clicked(); - void on_prosecution_plus_clicked(); - - void on_text_color_changed(int p_color); - void on_text_color_context_menu_requested(const QPoint &pos); - void set_text_color_dropdown(); - - void on_music_slider_moved(int p_value); - void on_sfx_slider_moved(int p_value); - void on_blip_slider_moved(int p_value); - - void on_log_limit_changed(int value); - void on_pair_offset_changed(int value); - void on_pair_vert_offset_changed(int value); - - void on_ooc_toggle_clicked(); - - void on_witness_testimony_clicked(); - void on_cross_examination_clicked(); - void on_not_guilty_clicked(); - void on_guilty_clicked(); - - void on_change_character_clicked(); - void on_call_mod_clicked(); - void on_settings_clicked(); - - void on_pre_clicked(); - void on_flip_clicked(); - void on_additive_clicked(); - void on_guard_clicked(); - - void on_showname_enable_clicked(); - - void on_evidence_button_clicked(); - void on_evidence_context_menu_requested(const QPoint &pos); - - void on_evidence_delete_clicked(); - bool on_evidence_x_clicked(); - void on_evidence_ok_clicked(); - void on_evidence_switch_clicked(); - void on_evidence_transfer_clicked(); - - void on_evidence_edited(); - - void evidence_close(); - void evidence_switch(bool global); - void on_evidence_save_clicked(); - void on_evidence_load_clicked(); - void evidence_save(QString filename); - void evidence_load(QString filename); - bool compare_evidence_changed(evi_type evi_a, evi_type evi_b); - - void on_back_to_lobby_clicked(); - - void on_char_list_double_clicked(QTreeWidgetItem *p_item, int column); - void on_char_select_left_clicked(); - void on_char_select_right_clicked(); - void on_char_search_changed(); - void on_char_taken_clicked(); - void on_char_passworded_clicked(); - - void on_spectator_clicked(); - - void on_switch_area_music_clicked(); - - void on_application_state_changed(Qt::ApplicationState state); - - void ping_server(); - - // Proceed to parse the oldest chatmessage and remove it from the stack - void chatmessage_dequeue(); - - void preview_emote(QString emote); - void update_emote_preview(); -}; - -#endif // COURTROOM_H |
