aboutsummaryrefslogtreecommitdiff
path: root/aosfxplayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'aosfxplayer.cpp')
-rw-r--r--aosfxplayer.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/aosfxplayer.cpp b/aosfxplayer.cpp
index 9089aec..c8e1593 100644
--- a/aosfxplayer.cpp
+++ b/aosfxplayer.cpp
@@ -1,4 +1,5 @@
#include "aosfxplayer.h"
+#include "file_functions.h"
AOSfxPlayer::AOSfxPlayer(QWidget *parent, AOApplication *p_ao_app)
{
@@ -14,17 +15,28 @@ AOSfxPlayer::~AOSfxPlayer()
}
-void AOSfxPlayer::play(QString p_sfx, QString p_char)
+void AOSfxPlayer::play(QString p_sfx, QString p_char, QString shout)
{
m_sfxplayer->stop();
p_sfx = p_sfx.toLower();
- QString f_path;
+ QString misc_path = "";
+ QString char_path = "";
+ QString sound_path = ao_app->get_sounds_path() + p_sfx;
+ if (shout != "")
+ misc_path = ao_app->get_base_path() + "misc/" + shout + "/" + p_sfx;
if (p_char != "")
- f_path = ao_app->get_character_path(p_char) + p_sfx;
+ char_path = ao_app->get_character_path(p_char) + p_sfx;
+
+ QString f_path;
+
+ if (file_exists(char_path))
+ f_path = char_path;
+ else if (file_exists(misc_path))
+ f_path = misc_path;
else
- f_path = ao_app->get_sounds_path() + p_sfx;
+ f_path = sound_path;
m_sfxplayer->setMedia(QUrl::fromLocalFile(f_path));
set_volume(m_volume);