Use null zone id for leaving a screen zone

This commit is contained in:
Simon Walton 2019-11-26 13:40:37 -08:00
parent 8b2fc968f6
commit 65fcf898be

View file

@ -167,13 +167,12 @@ int AvatarMixerClientData::parseData(ReceivedMessage& message, const SlaveShared
bool isInScreenshareZone = findContainingZone.isInScreenshareZone;
if (isInScreenshareZone != _avatar->isInScreenshareZone()) {
_avatar->setInScreenshareZone(isInScreenshareZone);
if (isInScreenshareZone) {
auto nodeList = DependencyManager::get<NodeList>();
auto packet = NLPacket::create(PacketType::AvatarZonePresence, 2 * NUM_BYTES_RFC4122_UUID, true);
packet->write(_avatar->getSessionUUID().toRfc4122());
packet->write(findContainingZone.screenshareZoneid.toRfc4122());
nodeList->sendPacket(std::move(packet), nodeList->getDomainSockAddr());
}
const QUuid& zoneId = isInScreenshareZone ? findContainingZone.screenshareZoneid : QUuid();
auto nodeList = DependencyManager::get<NodeList>();
auto packet = NLPacket::create(PacketType::AvatarZonePresence, 2 * NUM_BYTES_RFC4122_UUID, true);
packet->write(_avatar->getSessionUUID().toRfc4122());
packet->write(zoneId.toRfc4122());
nodeList->sendPacket(std::move(packet), nodeList->getDomainSockAddr());
}
_avatar->setNeedsHeroCheck(false);
}