mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-23 08:24:24 +02:00
Long distance avatars should not be new
This commit is contained in:
parent
bb98457d09
commit
a05e493e06
3 changed files with 10 additions and 4 deletions
|
@ -276,7 +276,7 @@ void AvatarManager::updateOtherAvatars(float deltaTime) {
|
||||||
numAvatarsUpdated++;
|
numAvatarsUpdated++;
|
||||||
}
|
}
|
||||||
auto transitStatus = avatar->_transit.update(deltaTime, avatar->_globalPosition, _transitConfig);
|
auto transitStatus = avatar->_transit.update(deltaTime, avatar->_globalPosition, _transitConfig);
|
||||||
if (avatar->getIsNewAvatar() && transitStatus == AvatarTransit::Status::START_TRANSIT) {
|
if (avatar->getIsNewAvatar() && (transitStatus == AvatarTransit::Status::START_TRANSIT || transitStatus == AvatarTransit::Status::ABORT_TRANSIT)) {
|
||||||
avatar->_transit.reset();
|
avatar->_transit.reset();
|
||||||
avatar->setIsNewAvatar(false);
|
avatar->setIsNewAvatar(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,8 +118,13 @@ AvatarTransit::Status AvatarTransit::update(float deltaTime, const glm::vec3& av
|
||||||
float oneFrameDistance = glm::length(currentPosition - _lastPosition);
|
float oneFrameDistance = glm::length(currentPosition - _lastPosition);
|
||||||
const float MAX_TRANSIT_DISTANCE = 30.0f;
|
const float MAX_TRANSIT_DISTANCE = 30.0f;
|
||||||
float scaledMaxTransitDistance = MAX_TRANSIT_DISTANCE * _scale;
|
float scaledMaxTransitDistance = MAX_TRANSIT_DISTANCE * _scale;
|
||||||
if (oneFrameDistance > config._triggerDistance && oneFrameDistance < scaledMaxTransitDistance && !_isTransiting) {
|
if (oneFrameDistance > config._triggerDistance && !_isTransiting) {
|
||||||
start(deltaTime, _lastPosition, currentPosition, config);
|
if (oneFrameDistance < scaledMaxTransitDistance) {
|
||||||
|
start(deltaTime, _lastPosition, currentPosition, config);
|
||||||
|
} else {
|
||||||
|
_lastPosition = currentPosition;
|
||||||
|
return Status::ABORT_TRANSIT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_lastPosition = currentPosition;
|
_lastPosition = currentPosition;
|
||||||
_status = updatePosition(deltaTime);
|
_status = updatePosition(deltaTime);
|
||||||
|
|
|
@ -56,7 +56,8 @@ public:
|
||||||
IDLE = 0,
|
IDLE = 0,
|
||||||
START_TRANSIT,
|
START_TRANSIT,
|
||||||
TRANSITING,
|
TRANSITING,
|
||||||
END_TRANSIT
|
END_TRANSIT,
|
||||||
|
ABORT_TRANSIT
|
||||||
};
|
};
|
||||||
|
|
||||||
enum EaseType {
|
enum EaseType {
|
||||||
|
|
Loading…
Reference in a new issue