mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 20:58:38 +02:00
EntityStats can have embedded EntityData
This commit is contained in:
parent
c2679209ed
commit
5a8ecdffab
2 changed files with 16 additions and 3 deletions
|
@ -976,7 +976,20 @@ void AvatarMixer::handleOctreePacket(QSharedPointer<ReceivedMessage> message, Sh
|
||||||
|
|
||||||
switch (packetType) {
|
switch (packetType) {
|
||||||
case PacketType::OctreeStats:
|
case PacketType::OctreeStats:
|
||||||
|
{ // Ignore stats, but may have a different Entity packet appended.
|
||||||
|
OctreeHeadlessViewer::parseOctreeStats(message, senderNode);
|
||||||
|
const auto piggyBackedSizeWithHeader = message->getBytesLeftToRead();
|
||||||
|
if (piggyBackedSizeWithHeader > 0) {
|
||||||
|
// pull out the piggybacked packet and create a new QSharedPointer<NLPacket> for it
|
||||||
|
auto buffer = std::unique_ptr<char[]>(new char[piggyBackedSizeWithHeader]);
|
||||||
|
memcpy(buffer.get(), message->getRawMessage() + message->getPosition(), piggyBackedSizeWithHeader);
|
||||||
|
|
||||||
|
auto newPacket = NLPacket::fromReceivedPacket(std::move(buffer), piggyBackedSizeWithHeader, message->getSenderSockAddr());
|
||||||
|
auto newMessage = QSharedPointer<ReceivedMessage>::create(*newPacket);
|
||||||
|
handleOctreePacket(newMessage, senderNode);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case PacketType::EntityData:
|
case PacketType::EntityData:
|
||||||
_entityViewer.processDatagram(*message, senderNode);
|
_entityViewer.processDatagram(*message, senderNode);
|
||||||
|
|
|
@ -145,9 +145,9 @@ int AvatarMixerClientData::parseData(ReceivedMessage& message, const SlaveShared
|
||||||
FindPriorityZone findPriorityZone { newPosition, false } ;
|
FindPriorityZone findPriorityZone { newPosition, false } ;
|
||||||
entityTree.recurseTreeWithOperation(&FindPriorityZone::operation, &findPriorityZone);
|
entityTree.recurseTreeWithOperation(&FindPriorityZone::operation, &findPriorityZone);
|
||||||
_avatar->setPriorityAvatar(findPriorityZone.isInPriorityZone);
|
_avatar->setPriorityAvatar(findPriorityZone.isInPriorityZone);
|
||||||
//if (findPriorityZone.isInPriorityZone) {
|
if (findPriorityZone.isInPriorityZone) {
|
||||||
// qCWarning(avatars) << "Avatar" << _avatar->getSessionDisplayName() << "in hero zone";
|
qCWarning(avatars) << "Avatar" << _avatar->getSessionDisplayName() << "in hero zone";
|
||||||
//}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue