void CSound::Play3dSound(FSOUND_SAMPLE *sound, int volume, float x, float y) { if (p->Options->sound == 1) { float xPos = (p->Player[p->Winsock->MyIndex]->X - x) / 2400.0f; float yPos = (p->Player[p->Winsock->MyIndex]->Y - y) / 2400.0f; if (xPos >= -1.0f && xPos <= 1.0f && yPos >= -1.0f && yPos <= 1.0f) //Within hearing range? { float soundPos[3] = {xPos, yPos, 0.0f}; int returnedChannel = FSOUND_PlaySound(FSOUND_FREE, sound); FSOUND_SetVolume(returnedChannel, volume); FSOUND_3D_SetAttributes(returnedChannel, soundPos, NULL); FSOUND_3D_SetMinMaxDistance(returnedChannel, 0.15f, 1.0f); FSOUND_Update(); } } }
void CAudioManager::Update(double timeDifference){ // CLog *pLog = CLog::Instance(); if(m_bValidAudio == false) return; // pLog->Log("audio 1"); int volume = 0; for(int i = 0; i < m_AudioClip.size(); i++){ //fade sound out if(m_AudioClip[i].bFadeout == true){// && IsPlaying(id) == true){ volume = GetVolume(i); if(volume > 0){ volume -= m_AudioClip[i].fadeStep;// 5; SetVolume(i, volume); } else{ m_AudioClip[i].bFadeout = false; StopSoundClip(i); } } //fade sound int if(m_AudioClip[i].bFadein == true){// && IsPlaying(i) == false){ volume = GetVolume(i); if(volume < 255){ volume += m_AudioClip[i].fadeStep;// 5; SetVolume(i, volume); } else m_AudioClip[i].bFadein = false; } }//for FSOUND_Update(); }
//----------------------------------------------------------------------- void LLListener_FMOD::commitDeferredChanges() { FSOUND_Update(); }
EXPORT void HWRAPI (BeginFrameUpdate) (void) { FSOUND_Update(); }