1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-17 00:07:41 +02:00

Restored ambient sounds functionality

This commit is contained in:
Ivan Savenko
2023-03-01 17:20:05 +02:00
parent cdcd5a29dd
commit b57a07b10f
18 changed files with 361 additions and 133 deletions

View File

@ -75,7 +75,6 @@ CSoundHandler::CSoundHandler():
listener(settings.listen["general"]["sound"]),
ambientConfig(JsonNode(ResourceID("config/ambientSounds.json")))
{
allTilesSource = ambientConfig["allTilesSource"].Bool();
listener(std::bind(&CSoundHandler::onVolumeChange, this, _1));
// Vectors for helper(s)
@ -259,11 +258,6 @@ int CSoundHandler::ambientGetRange() const
return static_cast<int>(ambientConfig["range"].Integer());
}
bool CSoundHandler::ambientCheckVisitable() const
{
return !allTilesSource;
}
void CSoundHandler::ambientUpdateChannels(std::map<std::string, int> soundsArg)
{
boost::mutex::scoped_lock guard(mutex);
@ -278,7 +272,9 @@ void CSoundHandler::ambientUpdateChannels(std::map<std::string, int> soundsArg)
}
else
{
CCS->soundh->setChannelVolume(pair.second, ambientDistToVolume(soundsArg[pair.first]));
int volume = ambientDistToVolume(soundsArg[pair.first]);
CCS->soundh->setChannelVolume(pair.second, volume);
logGlobal->info("playing sound %s at %d", pair.first, volume);
}
}
for(auto soundId : stoppedSounds)
@ -289,8 +285,11 @@ void CSoundHandler::ambientUpdateChannels(std::map<std::string, int> soundsArg)
if(!vstd::contains(ambientChannels, pair.first))
{
int channel = CCS->soundh->playSound(pair.first, -1);
CCS->soundh->setChannelVolume(channel, ambientDistToVolume(pair.second));
int volume = ambientDistToVolume(pair.second);
CCS->soundh->setChannelVolume(channel, volume);
CCS->soundh->ambientChannels.insert(std::make_pair(pair.first, channel));
logGlobal->info("playing sound %s at %d", pair.first, volume);
}
}
}