void LLFloaterAvatarList::focusOnCurrent() { std::map<LLUUID, LLAvatarListEntry>::iterator iter; LLAvatarListEntry *entry; if (mAvatars.size() == 0) { return; } for (iter = mAvatars.begin(); iter != mAvatars.end(); iter++) { entry = &iter->second; if (entry->isDead()) continue; if (entry->getID() == mFocusedAvatar) { removeFocusFromAll(); entry->setFocus(TRUE); gAgentCamera.lookAtObject(mFocusedAvatar, false); return; } } }
void LLFloaterAvatarList::removeFocusFromAll() { std::map<LLUUID, LLAvatarListEntry>::iterator iter; for (iter = mAvatars.begin(); iter != mAvatars.end(); iter++) { LLAvatarListEntry *entry = &iter->second; entry->setFocus(FALSE); } }
void LLFloaterAvatarList::focusOnNext(BOOL marked_only) { std::map<LLUUID, LLAvatarListEntry>::iterator iter; BOOL found = FALSE; LLAvatarListEntry *next = NULL; LLAvatarListEntry *entry; if (mAvatars.size() == 0) { return; } for (iter = mAvatars.begin(); iter != mAvatars.end(); iter++) { entry = &iter->second; if (entry->isDead()) continue; if (next == NULL && ((!marked_only && entry->isDrawn()) || entry->isMarked())) { next = entry; } if (found && ((!marked_only && entry->isDrawn()) || entry->isMarked())) { next = entry; break; } if (entry->getID() == mFocusedAvatar) { found = TRUE; } } if (next != NULL) { removeFocusFromAll(); next->setFocus(TRUE); mFocusedAvatar = next->getID(); gAgentCamera.lookAtObject(mFocusedAvatar, false); } }
void LLFloaterAvatarList::focusOnPrev(BOOL marked_only) { std::map<LLUUID, LLAvatarListEntry>::iterator iter; LLAvatarListEntry *prev = NULL; LLAvatarListEntry *entry; if (mAvatars.size() == 0) { return; } for (iter = mAvatars.begin(); iter != mAvatars.end(); iter++) { entry = &iter->second; if (entry->isDead()) continue; if (prev != NULL && entry->getID() == mFocusedAvatar) { break; } if ((!marked_only && entry->isDrawn()) || entry->isMarked()) { prev = entry; } } if (prev != NULL) { removeFocusFromAll(); prev->setFocus(TRUE); mFocusedAvatar = prev->getID(); gAgentCamera.lookAtObject(mFocusedAvatar, false); } }