fix fade out

This commit is contained in:
SamGondelman 2018-11-12 12:58:40 -08:00
parent 1d1510e18e
commit df1a848811
2 changed files with 16 additions and 14 deletions

View file

@ -763,8 +763,7 @@ void Avatar::fadeOut(render::ScenePointer scene, KillAvatarReason reason) {
if (reason == KillAvatarReason::YourAvatarEnteredTheirBubble) { if (reason == KillAvatarReason::YourAvatarEnteredTheirBubble) {
transitionType = render::Transition::BUBBLE_ISECT_TRESPASSER; transitionType = render::Transition::BUBBLE_ISECT_TRESPASSER;
} } else if (reason == KillAvatarReason::TheirAvatarEnteredYourBubble) {
else if (reason == KillAvatarReason::TheirAvatarEnteredYourBubble) {
transitionType = render::Transition::BUBBLE_ISECT_OWNER; transitionType = render::Transition::BUBBLE_ISECT_OWNER;
} }
fade(transaction, transitionType); fade(transaction, transitionType);
@ -782,14 +781,15 @@ void Avatar::fade(render::Transaction& transaction, render::Transition::Type typ
} }
void Avatar::updateFadingStatus() { void Avatar::updateFadingStatus() {
if (_isFading) {
render::Transaction transaction; render::Transaction transaction;
transaction.queryTransitionOnItem(_renderItemID, [this](render::ItemID id, const render::Transition* transition) { transaction.queryTransitionOnItem(_renderItemID, [this](render::ItemID id, const render::Transition* transition) {
if (!transition || transition->isFinished) { if (!transition || transition->isFinished) {
AbstractViewStateInterface::instance()->getMain3DScene()->resetItemTransition(id);
_isFading = false; _isFading = false;
} }
}); });
AbstractViewStateInterface::instance()->getMain3DScene()->enqueueTransaction(transaction); AbstractViewStateInterface::instance()->getMain3DScene()->enqueueTransaction(transaction);
}
} }
void Avatar::removeFromScene(AvatarSharedPointer self, const render::ScenePointer& scene, render::Transaction& transaction) { void Avatar::removeFromScene(AvatarSharedPointer self, const render::ScenePointer& scene, render::Transaction& transaction) {

View file

@ -391,16 +391,18 @@ void Scene::transitionItems(const Transaction::TransitionAdds& transactions) {
// Remove pre-existing transition, if need be // Remove pre-existing transition, if need be
if (!TransitionStage::isIndexInvalid(transitionId)) { if (!TransitionStage::isIndexInvalid(transitionId)) {
transitionStage->removeTransition(transitionId); resetItemTransition(itemId);
transitionId = TransitionStage::INVALID_INDEX;
} }
// Add a new one. // Add a new one.
if (transitionType != Transition::NONE) { if (transitionType != Transition::NONE) {
transitionId = transitionStage->addTransition(itemId, transitionType, boundId); transitionId = transitionStage->addTransition(itemId, transitionType, boundId);
}
if (!TransitionStage::isIndexInvalid(transitionId)) {
setItemTransition(itemId, transitionId); setItemTransition(itemId, transitionId);
} }
}
}
} }
void Scene::reApplyTransitions(const Transaction::TransitionReApplies& transactions) { void Scene::reApplyTransitions(const Transaction::TransitionReApplies& transactions) {