Example #1
0
void Sound::set3DMinMaxDist(float min, float max)
{
	*result = FMOD_Sound_Set3DMinMaxDistance(sound,min,max);
	ERRCHECK();
	*result = FMOD_Channel_Set3DMinMaxDistance(channel,min,max);
	ERRCHECK();
}
Example #2
0
void Systems::SoundSystem::LoadSound(FMOD_SOUND* &sound, std::string filePath, float maxDist, float minDist)
{
	FMOD_RESULT result = FMOD_System_CreateSound(m_System, filePath.c_str(), FMOD_3D | FMOD_HARDWARE , 0, &sound);
	if (result != FMOD_OK)
	{
		LOG_ERROR("FMOD did not load file: %s", filePath.c_str());
	}
	FMOD_Sound_Set3DMinMaxDistance(sound, minDist, maxDist);
}
Example #3
0
bool Systems::SoundSystem::PlaySFX(const Events::PlaySFX &event)
{
	auto eEntity = m_World->CreateEntity();
	auto eTransform = m_World->AddComponent<Components::Transform>(eEntity);
	eTransform->Position = event.Position;
	auto eComponent = m_World->AddComponent<Components::SoundEmitter>(eEntity);
	eComponent->MinDistance = event.MinDistance;
	eComponent->MaxDistance= event.MaxDistance;
	eComponent->Loop = event.Loop;
	eComponent->Gain = event.Volume;
	
	eComponent->type = Components::SoundEmitter::SoundType::SOUND_3D;
	Sound* sound = ResourceManager->Load<Sound>("Sound3D", event.Resource);
	m_Sounds[eEntity] = *sound;
	FMOD_Sound_Set3DMinMaxDistance(*sound, eComponent->MinDistance, eComponent->MaxDistance);

	PlaySound(&m_Channels[eEntity], *sound, 1.0, eComponent->Loop);
	return true;
}