Esempio n. 1
0
// static
void LLFloaterPay::payViaObject(money_callback callback, const LLUUID& object_id)
{
	LLViewerObject* object = gObjectList.findObject(object_id);
	if (!object) return;
	
	LLFloaterPay *floater = new LLFloaterPay(
		"Give " + gHippoGridManager->getConnectedGrid()->getCurrencySymbol(),
		callback, object_id, TRUE);
	if (!floater) return;

	LLSelectNode* node = floater->mObjectSelection->getFirstRootNode();
	if (!node) 
	{
		//FIXME: notify user object no longer exists
		floater->close();
		return;
	}
	
	LLHost target_region = object->getRegion()->getHost();
	
	LLMessageSystem* msg = gMessageSystem;
	msg->newMessageFast(_PREHASH_RequestPayPrice);
	msg->nextBlockFast(_PREHASH_ObjectData);
	msg->addUUIDFast(_PREHASH_ObjectID, object_id);
	msg->sendReliable(target_region);
	// <edit> VWR-2546
	//msg->setHandlerFuncFast(_PREHASH_PayPriceReply, processPayPriceReply,(void **)floater);
	msg->addHandlerFuncFast(_PREHASH_PayPriceReply, processPayPriceReply, (void**)floater);
	// </edit>
	
	LLUUID owner_id;
	BOOL is_group = FALSE;
	node->mPermissions->getOwnership(owner_id, is_group);
	
	floater->childSetText("object_name_text",node->mName);

	floater->finishPayUI(owner_id, is_group);
}