mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-05-30 11:02:13 +02:00
Use eachMatchingNode instead of eachNode
This commit is contained in:
parent
5bf075457c
commit
c8c135a985
1 changed files with 19 additions and 6 deletions
|
@ -613,23 +613,36 @@ void AvatarMixer::handleAvatarIdentityRequestPacket(QSharedPointer<ReceivedMessa
|
||||||
if (!avatarID.isNull()) {
|
if (!avatarID.isNull()) {
|
||||||
auto nodeList = DependencyManager::get<NodeList>();
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
|
|
||||||
nodeList->eachNode([&](SharedNodePointer node) {
|
nodeList->eachMatchingNode(
|
||||||
|
// Predicate:
|
||||||
|
[&](SharedNodePointer node) -> bool {
|
||||||
QMutexLocker lock(&node->getMutex());
|
QMutexLocker lock(&node->getMutex());
|
||||||
if (node->getType() == NodeType::Agent && node->getLinkedData()) {
|
if (node->getType() == NodeType::Agent && node->getLinkedData()) {
|
||||||
AvatarMixerClientData* avatarClientData = dynamic_cast<AvatarMixerClientData*>(node->getLinkedData());
|
AvatarMixerClientData* avatarClientData = dynamic_cast<AvatarMixerClientData*>(node->getLinkedData());
|
||||||
if (avatarClientData) {
|
if (avatarClientData) {
|
||||||
const AvatarData& avatarData = avatarClientData->getAvatar();
|
const AvatarData& avatarData = avatarClientData->getAvatar();
|
||||||
if (avatarData.getID() == avatarID) {
|
if (avatarData.getID() == avatarID) {
|
||||||
QByteArray serializedAvatar = avatarData.identityByteArray();
|
return true;
|
||||||
auto identityPackets = NLPacketList::create(PacketType::AvatarIdentity, QByteArray(), true, true);
|
|
||||||
identityPackets->write(serializedAvatar);
|
|
||||||
nodeList->sendPacketList(std::move(identityPackets), *senderNode);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
// Action:
|
||||||
|
[&](SharedNodePointer node) {
|
||||||
|
QMutexLocker lock(&node->getMutex());
|
||||||
|
AvatarMixerClientData* avatarClientData = dynamic_cast<AvatarMixerClientData*>(node->getLinkedData());
|
||||||
|
if (avatarClientData) {
|
||||||
|
const AvatarData& avatarData = avatarClientData->getAvatar();
|
||||||
|
if (avatarData.getID() == avatarID) {
|
||||||
|
QByteArray serializedAvatar = avatarData.identityByteArray();
|
||||||
|
auto identityPackets = NLPacketList::create(PacketType::AvatarIdentity, QByteArray(), true, true);
|
||||||
|
identityPackets->write(serializedAvatar);
|
||||||
|
nodeList->sendPacketList(std::move(identityPackets), *senderNode);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue