diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-01-06 21:25:25 +0200 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2011-01-06 21:32:01 +0200 |
commit | ef7f53e43ce4306080efae3b86443a6016a3e66a (patch) | |
tree | 64dcb0229a5d0a5e75c77712743748d8a374e6a0 /src/being.cpp | |
parent | 61f8436a6ea04fcdede91ca26ebec6d558ac5cd0 (diff) | |
download | mv-ef7f53e43ce4306080efae3b86443a6016a3e66a.tar.gz mv-ef7f53e43ce4306080efae3b86443a6016a3e66a.tar.bz2 mv-ef7f53e43ce4306080efae3b86443a6016a3e66a.tar.xz mv-ef7f53e43ce4306080efae3b86443a6016a3e66a.zip |
Set sound volume depends on distance to object.
Diffstat (limited to 'src/being.cpp')
-rw-r--r-- | src/being.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/being.cpp b/src/being.cpp index 2372cfe1b..1d8178670 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -568,7 +568,15 @@ void Being::takeDamage(Being *attacker, int amount, AttackType type) mDamageTaken += amount; if (mInfo) { - sound.playSfx(mInfo->getSound(SOUND_EVENT_HURT)); + if (attacker) + { + sound.playSfx(mInfo->getSound(SOUND_EVENT_HURT), + attacker->getTileX(), attacker->getTileY()); + } + else + { + sound.playSfx(mInfo->getSound(SOUND_EVENT_HURT)); + } if (!mInfo->isStaticMaxHP()) { if (!mHP && mInfo->getMaxHP() < mDamageTaken) @@ -618,7 +626,7 @@ void Being::handleAttack(Being *victim, int damage, } sound.playSfx(mInfo->getSound((damage > 0) ? - SOUND_EVENT_HIT : SOUND_EVENT_MISS)); + SOUND_EVENT_HIT : SOUND_EVENT_MISS), mX, mY); } void Being::setName(const std::string &name) @@ -904,7 +912,7 @@ void Being::setAction(Action action, int attackType _UNUSED_) case DEAD: currentAction = SpriteAction::DEAD; if (mInfo) - sound.playSfx(mInfo->getSound(SOUND_EVENT_DIE)); + sound.playSfx(mInfo->getSound(SOUND_EVENT_DIE), mX, mY); break; case STAND: currentAction = SpriteAction::STAND; |