diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index 93b3046ec3..1118c5ae48 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -2710,8 +2710,9 @@ void CharacterController::playSwishSound() const if (weapclass == ESM::WeaponType::Ranged || weapclass == ESM::WeaponType::Thrown) return; - std::string soundId; - float pitch = 1.f; + std::string soundId = "Weapon Swish"; + float volume = 0.98f + mAttackStrength * 0.02f; + float pitch = 0.75f + mAttackStrength * 0.4f; const MWWorld::Class &cls = mPtr.getClass(); if (cls.isNpc() && cls.getNpcStats(mPtr).isWerewolf()) @@ -2722,17 +2723,9 @@ void CharacterController::playSwishSound() const if (sound) soundId = sound->mId; } - else - { - soundId = "Weapon Swish"; - if (mAttackStrength < 0.5f) - pitch = 0.8f; // Weak attack - else if (mAttackStrength >= 1.f) - pitch = 1.2f; // Strong attack - } if (!soundId.empty()) - MWBase::Environment::get().getSoundManager()->playSound3D(mPtr, soundId, 1.0f, pitch); + MWBase::Environment::get().getSoundManager()->playSound3D(mPtr, soundId, volume, pitch); } void CharacterController::updateHeadTracking(float duration)