mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-06-03 13:01:10 +02:00
Fix removing my avatar and code standards
This commit is contained in:
parent
ddbadf5a69
commit
8ede6f1cd0
3 changed files with 19 additions and 27 deletions
|
@ -919,19 +919,11 @@ int AvatarData::parseDataFromBuffer(const QByteArray& buffer) {
|
||||||
PACKET_READ_CHECK(AvatarGlobalPosition, sizeof(AvatarDataPacket::AvatarGlobalPosition));
|
PACKET_READ_CHECK(AvatarGlobalPosition, sizeof(AvatarDataPacket::AvatarGlobalPosition));
|
||||||
auto data = reinterpret_cast<const AvatarDataPacket::AvatarGlobalPosition*>(sourceBuffer);
|
auto data = reinterpret_cast<const AvatarDataPacket::AvatarGlobalPosition*>(sourceBuffer);
|
||||||
|
|
||||||
const float SPACE_BETWEEN_AVATARS = 2.0f;
|
glm::vec3 offset = glm::vec3(0.0f, 0.0f, 0.0f);
|
||||||
const int RANDOM_RADIUS = 100;
|
|
||||||
const int AVATARS_PER_ROW = 3;
|
|
||||||
|
|
||||||
glm::vec3 offset;
|
if (_replicaIndex > 0) {
|
||||||
|
const float SPACE_BETWEEN_AVATARS = 2.0f;
|
||||||
if (false) {
|
const int AVATARS_PER_ROW = 3;
|
||||||
qsrand(static_cast<quint64>(getID().toByteArray().toInt()));
|
|
||||||
float xrand = float((qrand() % ((RANDOM_RADIUS + 1) - 10) + 10) / 10.0f);
|
|
||||||
float yrand = float((qrand() % ((RANDOM_RADIUS + 1) - 10) + 10) / 10.0f);
|
|
||||||
offset = glm::vec3(xrand, 0.0f, yrand);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
int row = _replicaIndex % AVATARS_PER_ROW;
|
int row = _replicaIndex % AVATARS_PER_ROW;
|
||||||
int col = floor(_replicaIndex / AVATARS_PER_ROW);
|
int col = floor(_replicaIndex / AVATARS_PER_ROW);
|
||||||
offset = glm::vec3(row * SPACE_BETWEEN_AVATARS, 0.0f, col * SPACE_BETWEEN_AVATARS);
|
offset = glm::vec3(row * SPACE_BETWEEN_AVATARS, 0.0f, col * SPACE_BETWEEN_AVATARS);
|
||||||
|
|
|
@ -23,6 +23,9 @@
|
||||||
|
|
||||||
|
|
||||||
void AvatarReplicas::addReplica(const QUuid& parentID, AvatarSharedPointer replica) {
|
void AvatarReplicas::addReplica(const QUuid& parentID, AvatarSharedPointer replica) {
|
||||||
|
if (parentID == QUuid()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (_replicasMap.find(parentID) == _replicasMap.end()) {
|
if (_replicasMap.find(parentID) == _replicasMap.end()) {
|
||||||
std::vector<AvatarSharedPointer> emptyReplicas = std::vector<AvatarSharedPointer>();
|
std::vector<AvatarSharedPointer> emptyReplicas = std::vector<AvatarSharedPointer>();
|
||||||
_replicasMap.insert(std::pair<QUuid, std::vector<AvatarSharedPointer>>(parentID, emptyReplicas));
|
_replicasMap.insert(std::pair<QUuid, std::vector<AvatarSharedPointer>>(parentID, emptyReplicas));
|
||||||
|
@ -144,10 +147,12 @@ void AvatarHashMap::setReplicaCount(int count) {
|
||||||
auto avatars = getAvatarIdentifiers();
|
auto avatars = getAvatarIdentifiers();
|
||||||
for (int i = 0; i < avatars.size(); i++) {
|
for (int i = 0; i < avatars.size(); i++) {
|
||||||
KillAvatarReason reason = KillAvatarReason::NoReason;
|
KillAvatarReason reason = KillAvatarReason::NoReason;
|
||||||
removeAvatar(avatars[i], reason);
|
if (avatars[i] != QUuid()) {
|
||||||
auto replicaIDs = _replicas.getReplicaIDs(avatars[i]);
|
removeAvatar(avatars[i], reason);
|
||||||
for (auto id : replicaIDs) {
|
auto replicaIDs = _replicas.getReplicaIDs(avatars[i]);
|
||||||
removeAvatar(id, reason);
|
for (auto id : replicaIDs) {
|
||||||
|
removeAvatar(id, reason);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -315,7 +320,6 @@ void AvatarHashMap::processBulkAvatarTraits(QSharedPointer<ReceivedMessage> mess
|
||||||
AvatarTraits::TraitWireSize traitBinarySize;
|
AvatarTraits::TraitWireSize traitBinarySize;
|
||||||
bool skipBinaryTrait = false;
|
bool skipBinaryTrait = false;
|
||||||
|
|
||||||
|
|
||||||
if (AvatarTraits::isSimpleTrait(traitType)) {
|
if (AvatarTraits::isSimpleTrait(traitType)) {
|
||||||
message->readPrimitive(&traitBinarySize);
|
message->readPrimitive(&traitBinarySize);
|
||||||
|
|
||||||
|
@ -325,12 +329,10 @@ void AvatarHashMap::processBulkAvatarTraits(QSharedPointer<ReceivedMessage> mess
|
||||||
avatar->processTrait(traitType, traitData);
|
avatar->processTrait(traitType, traitData);
|
||||||
_replicas.processTrait(avatarID, traitType, traitData);
|
_replicas.processTrait(avatarID, traitType, traitData);
|
||||||
lastProcessedVersions[traitType] = packetTraitVersion;
|
lastProcessedVersions[traitType] = packetTraitVersion;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
skipBinaryTrait = true;
|
skipBinaryTrait = true;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
AvatarTraits::TraitInstanceID traitInstanceID =
|
AvatarTraits::TraitInstanceID traitInstanceID =
|
||||||
QUuid::fromRfc4122(message->readWithoutCopy(NUM_BYTES_RFC4122_UUID));
|
QUuid::fromRfc4122(message->readWithoutCopy(NUM_BYTES_RFC4122_UUID));
|
||||||
|
|
||||||
|
@ -341,15 +343,13 @@ void AvatarHashMap::processBulkAvatarTraits(QSharedPointer<ReceivedMessage> mess
|
||||||
if (traitBinarySize == AvatarTraits::DELETED_TRAIT_SIZE) {
|
if (traitBinarySize == AvatarTraits::DELETED_TRAIT_SIZE) {
|
||||||
avatar->processDeletedTraitInstance(traitType, traitInstanceID);
|
avatar->processDeletedTraitInstance(traitType, traitInstanceID);
|
||||||
_replicas.processDeletedTraitInstance(avatarID, traitType, traitInstanceID);
|
_replicas.processDeletedTraitInstance(avatarID, traitType, traitInstanceID);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
auto traitData = message->read(traitBinarySize);
|
auto traitData = message->read(traitBinarySize);
|
||||||
avatar->processTraitInstance(traitType, traitInstanceID, traitData);
|
avatar->processTraitInstance(traitType, traitInstanceID, traitData);
|
||||||
_replicas.processTraitInstance(avatarID, traitType, traitInstanceID, traitData);
|
_replicas.processTraitInstance(avatarID, traitType, traitInstanceID, traitData);
|
||||||
}
|
}
|
||||||
processedInstanceVersion = packetTraitVersion;
|
processedInstanceVersion = packetTraitVersion;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
skipBinaryTrait = true;
|
skipBinaryTrait = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
|
|
||||||
class AvatarReplicas {
|
class AvatarReplicas {
|
||||||
public:
|
public:
|
||||||
AvatarReplicas() : _replicaCount(0) {}
|
AvatarReplicas() {}
|
||||||
void addReplica(const QUuid& parentID, AvatarSharedPointer replica);
|
void addReplica(const QUuid& parentID, AvatarSharedPointer replica);
|
||||||
std::vector<QUuid> getReplicaIDs(const QUuid& parentID);
|
std::vector<QUuid> getReplicaIDs(const QUuid& parentID);
|
||||||
void parseDataFromBuffer(const QUuid& parentID, const QByteArray& buffer);
|
void parseDataFromBuffer(const QUuid& parentID, const QByteArray& buffer);
|
||||||
|
@ -58,7 +58,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::map<QUuid, std::vector<AvatarSharedPointer>> _replicasMap;
|
std::map<QUuid, std::vector<AvatarSharedPointer>> _replicasMap;
|
||||||
int _replicaCount;
|
int _replicaCount { 0 };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue