Skip to content

Commit

Permalink
Use CHN_WORLD for MAPSOUNDWORLD and CHN_GLOBAL for MAPSOUNDGLOBAL
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Kaffeine committed Oct 2, 2024
1 parent ede6049 commit cbc5b89
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 8 deletions.
8 changes: 4 additions & 4 deletions src/game/client/components/mapsounds.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,20 @@ CMapSounds::CMapSounds()
m_Count = 0;
}

void CMapSounds::Play(int SoundId)
void CMapSounds::Play(int SoundId, int Channel)
{
if(SoundId < 0 || SoundId >= m_Count)
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)
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()
Expand Down
4 changes: 2 additions & 2 deletions src/game/client/components/mapsounds.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ class CMapSounds : public CComponent
CMapSounds();
virtual int Sizeof() const override { return sizeof(*this); }

void Play(int SoundId);
void PlayAt(int SoundId, vec2 Position);
void Play(int Channel, int SoundId);
void PlayAt(int Channel, int SoundId, vec2 Position);

virtual void OnMapLoad() override;
virtual void OnRender() override;
Expand Down
4 changes: 2 additions & 2 deletions src/game/client/gameclient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1133,7 +1133,7 @@ void CGameClient::OnMessage(int MsgId, CUnpacker *pUnpacker, int Conn, bool Dumm
return;

CNetMsg_Sv_MapSoundGlobal *pMsg = (CNetMsg_Sv_MapSoundGlobal *)pRawMsg;
m_MapSounds.Play(pMsg->m_SoundId);
m_MapSounds.Play(CSounds::CHN_GLOBAL, pMsg->m_SoundId);
}
}

Expand Down Expand Up @@ -1314,7 +1314,7 @@ void CGameClient::ProcessEvents()
if(!Config()->m_SndGame)
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));
}
}
}
Expand Down

0 comments on commit cbc5b89

Please sign in to comment.