MCPcopy Create free account
hub / github.com/StrongPC123/Far-Cry-1-Source-Full / AddToSoundSystem

Method AddToSoundSystem

CrySoundSystem/SoundSystem.cpp:1089–1141  ·  view source on GitHub ↗

/////////////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

1087
1088//////////////////////////////////////////////////////////////////////////
1089void CSoundSystem::AddToSoundSystem(CSound *pSound,int dwFlags)
1090{
1091 GUARD_HEAP;
1092 pSound->m_nFlags=dwFlags;
1093
1094 bool bLoop;
1095 if (dwFlags & FLAG_SOUND_LOOP)
1096 {
1097 pSound->SetLoopMode(true);
1098 bLoop = true;
1099 }
1100 else
1101 {
1102 bLoop = false;
1103 pSound->SetLoopMode(false);
1104 }
1105
1106 if (dwFlags & FLAG_SOUND_UNSCALABLE)
1107 {
1108 pSound->RemoveFromScaleGroup(SOUNDSCALE_SCALEABLE);
1109 pSound->RemoveFromScaleGroup(SOUNDSCALE_MISSIONHINT);
1110 }
1111
1112 //m_vecSounds.push_back(pSound);
1113 m_vecSounds.insert(pSound);
1114
1115 std::pair<SoundListItor,bool> pr;
1116 // check if the sound has a radius, and add it to a separate list
1117 // to speed up the checks, occlusions and sound system update
1118 //if (dwFlags & (FLAG_SOUND_RADIUS | FLAG_SOUND_OCCLUSION | FLAG_SOUND_INDOOR | FLAG_SOUND_OUTDOOR))
1119 if (dwFlags & (FLAG_SOUND_ACTIVELIST) && bLoop)
1120 {
1121 if (m_bValidPos && (dwFlags & FLAG_SOUND_RADIUS))
1122 {
1123 float fDist2=GetSquaredDistance(pSound->m_RealPos, m_vPos);
1124 if (fDist2>pSound->m_fPreloadRadius2)
1125 {
1126 //m_vecSoundSpotsInactive.push_back(pSound); // move sound to inactive list...
1127 pr=m_lstSoundSpotsInactive.insert(pSound);
1128 m_itLastInactivePos=pr.first;
1129 m_nInactiveSoundSpotsSize++;
1130
1131 pSound->m_State=eSoundState_Inactive;
1132 }
1133 }
1134 if (pSound->m_State!=eSoundState_Inactive)
1135 {
1136 //m_vecSoundSpotsActive.push_back(pSound); // move sound to active list...
1137 m_lstSoundSpotsActive.insert(pSound);
1138 pSound->m_State=eSoundState_Active;
1139 }
1140 }
1141}
1142
1143//////////////////////////////////////////////////////////////////////////
1144void CSoundSystem::RegisterAutoStopSound( CSound *pSound )

Callers

nothing calls this directly

Calls 3

SetLoopModeMethod · 0.45
RemoveFromScaleGroupMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected