diff options
Diffstat (limited to 'indra/newview/llviewermenu.cpp')
-rw-r--r-- | indra/newview/llviewermenu.cpp | 68 |
1 files changed, 20 insertions, 48 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index e9e98a4916..275db0f906 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -4136,10 +4136,8 @@ void handle_take() !you_own_everything) { - if(locked_but_takeable_object && you_own_everything) { - gViewerWindow->alertXml("ConfirmObjectTakeLock", confirm_take, (void*)cat_id); @@ -4147,7 +4145,6 @@ void handle_take() } else if(!locked_but_takeable_object && !you_own_everything) { - gViewerWindow->alertXml("ConfirmObjectTakeNoOwn", confirm_take, (void*)cat_id); @@ -6093,54 +6090,47 @@ void complete_give_money(S32 option, void* user_data) gAgent.clearBusy(); } - LLUUID* object_id = (LLUUID*)user_data; + LLObjectSelectionHandle handle(*(LLObjectSelectionHandle*)user_data); + delete (LLObjectSelectionHandle*)user_data; - LLViewerObject* object = gObjectList.findObject(*object_id); - if (object) + LLViewerObject *objectp = handle->getFirstRootObject(); + + // Show avatar's name if paying attachment + if (objectp && objectp->isAttachment()) { - if (object->isAvatar()) + while (objectp && !objectp->isAvatar()) + { + objectp = (LLViewerObject*)objectp->getParent(); + } + } + + if (objectp) + { + if (objectp->isAvatar()) { const BOOL is_group = FALSE; LLFloaterPay::payDirectly(&give_money, - *object_id, + objectp->getID(), is_group); } else { - LLFloaterPay::payViaObject(&give_money, *object_id); + LLFloaterPay::payViaObject(&give_money, objectp->getID()); } } - - delete object_id; } bool handle_give_money_dialog() { - LLViewerObject *objectp = gViewerWindow->lastObjectHit(); - LLUUID* object_id = new LLUUID(); - - // Show avatar's name if paying attachment - if (objectp && objectp->isAttachment()) - { - while (objectp && !objectp->isAvatar()) - { - objectp = (LLViewerObject*)objectp->getParent(); - } - } - - if (objectp) - { - *object_id = objectp->getID(); - } - + LLObjectSelectionHandle* handlep = new LLObjectSelectionHandle(gSelectMgr->getSelection()); if (gAgent.getBusy()) { // warn users of being in busy mode during a transaction - gViewerWindow->alertXml("BusyModePay", complete_give_money, object_id); + gViewerWindow->alertXml("BusyModePay", complete_give_money, handlep); } else { - complete_give_money(1, object_id); + complete_give_money(1, handlep); } return true; } @@ -6793,24 +6783,6 @@ void near_attach_object(BOOL success, void *user_data) LLObjectAttachToAvatar::setObjectSelection(NULL); } -// move this somewhere global -void handle_attach_to_avatar(void* user_data) -{ - LLViewerObject* selectedObject = gSelectMgr->getSelection()->getFirstRootObject(); - if (selectedObject) - { - LLViewerJointAttachment *attachment = (LLViewerJointAttachment *)user_data; - - if (attachment && attachment->getObject()) - { - gViewerWindow->alertXml("ReplaceAttachment", confirm_replace_attachment, user_data); - } - else - { - confirm_replace_attachment(0, user_data); - } - } -} void confirm_replace_attachment(S32 option, void* user_data) { if (option == 0/*YES*/) |