mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-18 05:58:19 +00:00
Use CHN_WORLD for MAPSOUNDWORLD and CHN_GLOBAL for MAPSOUNDGLOBAL
The whole idea behind custom sounds was to use them as replacement for built-in sounds (depending on the gameplay). We have to use the same channels instead of the MAP (aka 'ambient') channel to have the same volume for both sets of messages. Otherwise we have situation of players reporting 'no sound' because they have `snd_ambient_volume 0` in the configs. NETMSGTYPE_SV_MAPSOUNDGLOBAL is NETMSGTYPE_SV_SOUNDGLOBAL which uses map assets as the sounds container. Use the same CSounds::CHN_GLOBAL to make the sound messages equivalent. NETEVENTTYPE_MAPSOUNDWORLD is NETEVENTTYPE_SOUNDWORLD which uses map assets as the sounds container. Use the same CSounds::CHN_WORLD to make the sound events equivalent.
This commit is contained in:
parent
000718eca7
commit
03a06a144d
|
@ -17,20 +17,20 @@ CMapSounds::CMapSounds()
|
||||||
m_Count = 0;
|
m_Count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMapSounds::Play(int SoundId)
|
void CMapSounds::Play(int Channel, int SoundId)
|
||||||
{
|
{
|
||||||
if(SoundId < 0 || SoundId >= m_Count)
|
if(SoundId < 0 || SoundId >= m_Count)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_pClient->m_Sounds.PlaySample(CSounds::CHN_MAPSOUND, m_aSounds[SoundId], 0, 1.0f);
|
m_pClient->m_Sounds.PlaySample(Channel, m_aSounds[SoundId], 0, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMapSounds::PlayAt(int SoundId, vec2 Position)
|
void CMapSounds::PlayAt(int Channel, int SoundId, vec2 Position)
|
||||||
{
|
{
|
||||||
if(SoundId < 0 || SoundId >= m_Count)
|
if(SoundId < 0 || SoundId >= m_Count)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_pClient->m_Sounds.PlaySampleAt(CSounds::CHN_MAPSOUND, m_aSounds[SoundId], 0, 1.0f, Position);
|
m_pClient->m_Sounds.PlaySampleAt(Channel, m_aSounds[SoundId], 0, 1.0f, Position);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMapSounds::OnMapLoad()
|
void CMapSounds::OnMapLoad()
|
||||||
|
|
|
@ -33,8 +33,8 @@ public:
|
||||||
CMapSounds();
|
CMapSounds();
|
||||||
virtual int Sizeof() const override { return sizeof(*this); }
|
virtual int Sizeof() const override { return sizeof(*this); }
|
||||||
|
|
||||||
void Play(int SoundId);
|
void Play(int Channel, int SoundId);
|
||||||
void PlayAt(int SoundId, vec2 Position);
|
void PlayAt(int Channel, int SoundId, vec2 Position);
|
||||||
|
|
||||||
virtual void OnMapLoad() override;
|
virtual void OnMapLoad() override;
|
||||||
virtual void OnRender() override;
|
virtual void OnRender() override;
|
||||||
|
|
|
@ -1105,7 +1105,7 @@ void CGameClient::OnMessage(int MsgId, CUnpacker *pUnpacker, int Conn, bool Dumm
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CNetMsg_Sv_MapSoundGlobal *pMsg = (CNetMsg_Sv_MapSoundGlobal *)pRawMsg;
|
CNetMsg_Sv_MapSoundGlobal *pMsg = (CNetMsg_Sv_MapSoundGlobal *)pRawMsg;
|
||||||
m_MapSounds.Play(pMsg->m_SoundId);
|
m_MapSounds.Play(CSounds::CHN_GLOBAL, pMsg->m_SoundId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1286,7 +1286,7 @@ void CGameClient::ProcessEvents()
|
||||||
if(!Config()->m_SndGame)
|
if(!Config()->m_SndGame)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
m_MapSounds.PlayAt(pEvent->m_SoundId, vec2(pEvent->m_X, pEvent->m_Y));
|
m_MapSounds.PlayAt(CSounds::CHN_WORLD, pEvent->m_SoundId, vec2(pEvent->m_X, pEvent->m_Y));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue