diff options
Diffstat (limited to 'linden/indra/newview/panelradar.cpp')
-rw-r--r-- | linden/indra/newview/panelradar.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/linden/indra/newview/panelradar.cpp b/linden/indra/newview/panelradar.cpp index 1a5f2d4..a7062b4 100644 --- a/linden/indra/newview/panelradar.cpp +++ b/linden/indra/newview/panelradar.cpp | |||
@@ -77,6 +77,7 @@ BOOL PanelRadar::postBuild() | |||
77 | childSetAction("im_btn", onClickIM, this); | 77 | childSetAction("im_btn", onClickIM, this); |
78 | childSetAction("profile_btn", onClickProfile, this); | 78 | childSetAction("profile_btn", onClickProfile, this); |
79 | childSetAction("offer_teleport_btn", onClickOfferTeleport, this); | 79 | childSetAction("offer_teleport_btn", onClickOfferTeleport, this); |
80 | childSetAction("teleport_btn", onClickTeleport, this); | ||
80 | childSetAction("track_btn", onClickTrack, this); | 81 | childSetAction("track_btn", onClickTrack, this); |
81 | childSetAction("invite_btn", onClickInvite, this); | 82 | childSetAction("invite_btn", onClickInvite, this); |
82 | childSetAction("add_btn", onClickAddFriend, this); | 83 | childSetAction("add_btn", onClickAddFriend, this); |
@@ -417,6 +418,7 @@ void PanelRadar::updateButtonStates() | |||
417 | childSetEnabled("im_btn", enable); | 418 | childSetEnabled("im_btn", enable); |
418 | childSetEnabled("profile_btn", enable); | 419 | childSetEnabled("profile_btn", enable); |
419 | childSetEnabled("offer_teleport_btn", enable); | 420 | childSetEnabled("offer_teleport_btn", enable); |
421 | childSetEnabled("teleport_btn", enable); | ||
420 | childSetEnabled("track_btn", enable_track); | 422 | childSetEnabled("track_btn", enable_track); |
421 | childSetEnabled("invite_btn", enable); | 423 | childSetEnabled("invite_btn", enable); |
422 | childSetEnabled("add_btn", enable); | 424 | childSetEnabled("add_btn", enable); |
@@ -585,6 +587,31 @@ void PanelRadar::onClickOfferTeleport(void* user_data) | |||
585 | } | 587 | } |
586 | } | 588 | } |
587 | 589 | ||
590 | //static | ||
591 | void PanelRadar::onClickTeleport(void* userdata) | ||
592 | { | ||
593 | PanelRadar *self = (PanelRadar*)userdata; | ||
594 | LLScrollListItem *item = self->mRadarList->getFirstSelected(); | ||
595 | |||
596 | if ( item ) | ||
597 | { | ||
598 | LLUUID agent_id = item->getUUID(); | ||
599 | std::string agent_name = getSelectedName(agent_id); | ||
600 | if ( !agent_name.empty() ) | ||
601 | { | ||
602 | LLViewerObject *av_obj = gObjectList.findObject(agent_id); | ||
603 | if (av_obj != NULL && av_obj->isAvatar()) | ||
604 | { | ||
605 | LLVOAvatar* avatarp = (LLVOAvatar*)av_obj; | ||
606 | if (avatarp != NULL) | ||
607 | { | ||
608 | LLVector3d pos = avatarp->getPositionGlobal(); | ||
609 | gAgent.teleportViaLocation(pos); | ||
610 | } | ||
611 | } | ||
612 | } | ||
613 | } | ||
614 | } | ||
588 | 615 | ||
589 | // static | 616 | // static |
590 | void PanelRadar::onClickTrack(void* user_data) | 617 | void PanelRadar::onClickTrack(void* user_data) |