aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCrystalwarrior <varsash@gmail.com>2019-09-18 04:14:52 +0300
committerCrystalwarrior <varsash@gmail.com>2019-09-18 04:14:52 +0300
commit605e15bb8c0ad103fb0f75454d8912ba83ba7a17 (patch)
treef88c83ec4bcfa014050dd83d026519cdd9e1eb90 /include
parente151964785301269500b96ecfd25dbdf227f55f8 (diff)
Implement effects system that reads your folder in theme/effects, or misc/<folder name>/<effects>
Add an effect packet Allow aomovie to be fed a direct path Add some really terrible helper functions that shouldn't exist, sorry.
Diffstat (limited to 'include')
-rw-r--r--include/aoapplication.h13
-rw-r--r--include/aomovie.h2
-rw-r--r--include/courtroom.h12
-rw-r--r--include/datatypes.h3
4 files changed, 26 insertions, 4 deletions
diff --git a/include/aoapplication.h b/include/aoapplication.h
index f26c8161..f8ce2269 100644
--- a/include/aoapplication.h
+++ b/include/aoapplication.h
@@ -80,6 +80,7 @@ public:
bool modcall_reason_enabled = false;
bool looping_sfx_support_enabled = false;
bool additive_enabled = false;
+ bool effects_enabled = false;
///////////////loading info///////////////////
@@ -298,6 +299,18 @@ public:
//Not in use
int get_text_delay(QString p_char, QString p_emote);
+ //Get the effects folder referenced by the char.ini, read it and return the list of filenames in a string
+ QStringList get_char_effects(QString p_char);
+
+ //Get the theme's effects folder, read it and return the list of filenames in a string
+ QStringList get_effects();
+
+ //t
+ QString get_effect(QString effect, QString p_char);
+
+ //Return the effect sound associated with the fx_name in the misc/effects/<char-defined>/sounds.ini, or theme/effects/sounds.ini.
+ QString get_effect_sound(QString fx_name, QString p_char);
+
// Returns the custom realisation used by the character.
QString get_custom_realization(QString p_char);
diff --git a/include/aomovie.h b/include/aomovie.h
index a5af735e..ec286199 100644
--- a/include/aomovie.h
+++ b/include/aomovie.h
@@ -15,7 +15,7 @@ public:
AOMovie(QWidget *p_parent, AOApplication *p_ao_app);
void set_play_once(bool p_play_once);
- void play(QString p_gif, QString p_char = "", QString p_custom_theme = "", int default_duration = 0);
+ void play(QString p_image, QString p_char = "", QString p_custom_theme = "", int default_duration = 0);
void combo_resize(int w, int h);
void stop();
diff --git a/include/courtroom.h b/include/courtroom.h
index 8d1588e9..6ba3d651 100644
--- a/include/courtroom.h
+++ b/include/courtroom.h
@@ -345,7 +345,7 @@ private:
//the amount of time non-animated witness testimony/cross-examination images stay onscreen for in ms
const int wtce_stay_time = 1500;
- static const int chatmessage_size = 29;
+ static const int chatmessage_size = 30;
QString m_chatmessage[chatmessage_size];
bool chatmessage_is_empty = false;
@@ -375,6 +375,8 @@ private:
int text_color = 0;
bool is_presenting_evidence = false;
+ QString effect = "";
+
int defense_bar_state = 0;
int prosecution_bar_state = 0;
@@ -429,7 +431,7 @@ private:
QLabel *ui_vp_showname;
AOMovie *ui_vp_chat_arrow;
QTextEdit *ui_vp_message;
- AOMovie *ui_vp_realization;
+ AOMovie *ui_vp_effect;
AOMovie *ui_vp_testimony;
AOMovie *ui_vp_wtce;
AOMovie *ui_vp_objection;
@@ -470,6 +472,8 @@ private:
QComboBox *ui_sfx_dropdown;
AOButton *ui_sfx_remove;
+ QComboBox *ui_effects_dropdown;
+
AOImage *ui_defense_bar;
AOImage *ui_prosecution_bar;
@@ -579,6 +583,7 @@ public slots:
void preanim_done();
void do_screenshake();
void do_flash();
+ void do_effect(QString fx_path, QString fx_sound, QString p_char);
void play_char_sfx(QString sfx_name);
void mod_called(QString p_ip);
@@ -620,6 +625,9 @@ private slots:
void set_sfx_dropdown();
void on_sfx_remove_clicked();
+ void set_effects_dropdown();
+ void on_effects_dropdown_changed(int p_index);
+
QString get_char_sfx();
int get_char_sfx_delay();
diff --git a/include/datatypes.h b/include/datatypes.h
index 54e5c741..5426d981 100644
--- a/include/datatypes.h
+++ b/include/datatypes.h
@@ -106,7 +106,8 @@ enum CHAT_MESSAGE
FRAME_SCREENSHAKE,
FRAME_REALIZATION,
FRAME_SFX,
- ADDITIVE
+ ADDITIVE,
+ EFFECTS
};
enum COLOR