From ade02c0259d18a085bdc548807813c7659dffb48 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Tue, 28 Jan 2014 09:32:58 -0800 Subject: [PATCH] Bug fix: update ALL avatars in the AvatarManager (rather than just one). Reviewed with Birarda and pushed directly to upstream. --- interface/src/avatar/AvatarManager.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/interface/src/avatar/AvatarManager.cpp b/interface/src/avatar/AvatarManager.cpp index dd1686a0d2..91a356c952 100644 --- a/interface/src/avatar/AvatarManager.cpp +++ b/interface/src/avatar/AvatarManager.cpp @@ -63,7 +63,7 @@ void AvatarManager::updateAvatars(float deltaTime) { // simulate avatars AvatarHash::iterator avatar = _avatarHash.begin(); - if (avatar != _avatarHash.end()) { + while (avatar != _avatarHash.end()) { if (avatar->data()->getOwningAvatarMixer()) { // this avatar's mixer is still around, go ahead and simulate it avatar->data()->simulate(deltaTime, NULL); @@ -72,6 +72,7 @@ void AvatarManager::updateAvatars(float deltaTime) { avatar->data()->setMouseRay(applicationInstance->getMouseRayOrigin(), applicationInstance->getMouseRayDirection()); + avatar++; } else { // the mixer that owned this avatar is gone, give it to the vector of fades and kill it avatar = removeAvatarAtHashIterator(avatar); @@ -230,4 +231,4 @@ void AvatarManager::clearHash() { while (removeAvatar != _avatarHash.end()) { removeAvatar = removeAvatarAtHashIterator(removeAvatar); } -} \ No newline at end of file +}