Try better volume reduction in multiplayer
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@7837 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
5c9401f19e
commit
452c4835d3
@ -327,7 +327,24 @@ void Kart::startEngineSFX()
|
|||||||
{
|
{
|
||||||
// in multiplayer mode, sounds are NOT positional (because we have multiple listeners)
|
// in multiplayer mode, sounds are NOT positional (because we have multiple listeners)
|
||||||
// so the engine sounds of all AIs is constantly heard. So reduce volume of all sounds.
|
// so the engine sounds of all AIs is constantly heard. So reduce volume of all sounds.
|
||||||
m_engine_sound->volume( 1.0f / race_manager->getNumberOfKarts() );
|
if (race_manager->getNumLocalPlayers() > 1)
|
||||||
|
{
|
||||||
|
const int np = race_manager->getNumLocalPlayers();
|
||||||
|
const int nai = race_manager->getNumberOfKarts() - np;
|
||||||
|
|
||||||
|
// player karts twice as loud as AIs toghether
|
||||||
|
const float players_volume = (np * 2.0f) / (np*2.0f + np);
|
||||||
|
|
||||||
|
if (m_controller->isPlayerController())
|
||||||
|
{
|
||||||
|
m_engine_sound->volume( players_volume / np );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_engine_sound->volume( (1.0f - players_volume) / nai );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
m_engine_sound->speed(0.6f);
|
m_engine_sound->speed(0.6f);
|
||||||
m_engine_sound->setLoop(true);
|
m_engine_sound->setLoop(true);
|
||||||
m_engine_sound->play();
|
m_engine_sound->play();
|
||||||
|
Loading…
Reference in New Issue
Block a user