diff options
| author | simon@Simon-PC.lindenlab.com <simon@Simon-PC.lindenlab.com> | 2012-12-04 15:03:34 -0800 | 
|---|---|---|
| committer | simon@Simon-PC.lindenlab.com <simon@Simon-PC.lindenlab.com> | 2012-12-04 15:03:34 -0800 | 
| commit | 7fe4fbe6741c4a5f140bf1b52ced9957d408a53a (patch) | |
| tree | 96c5d4021a43b57e6e47cbb34edad12c1e7016b0 /indra/newview | |
| parent | fddd386804889f491d51b6ea597f18ec6fd8170c (diff) | |
| parent | 40e78a80cc293874216cdc8730d93cba8e987052 (diff) | |
Pull in upstream viewer-development via viewer-lion
Diffstat (limited to 'indra/newview')
27 files changed, 2044 insertions, 469 deletions
| diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 19f41e8119..b97b3cc300 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -337,6 +337,8 @@ set(viewer_SOURCE_FILES      llmarketplacenotifications.cpp      llmediactrl.cpp      llmediadataclient.cpp +    llmemoryview.cpp +    llmenuoptionpathfindingrebakenavmesh.cpp      llmeshrepository.cpp      llmimetypes.cpp      llmorphview.cpp @@ -401,7 +403,6 @@ set(viewer_SOURCE_FILES      llpanelonlinestatus.cpp      llpaneloutfitedit.cpp      llpaneloutfitsinventory.cpp -    llpanelpathfindingrebakenavmesh.cpp      llpanelpeople.cpp      llpanelpeoplemenus.cpp      llpanelpermissions.cpp @@ -913,6 +914,8 @@ set(viewer_HEADER_FILES      llmarketplacenotifications.h      llmediactrl.h      llmediadataclient.h +    llmemoryview.h +    llmenuoptionpathfindingrebakenavmesh.h      llmeshrepository.h      llmimetypes.h      llmorphview.h @@ -971,7 +974,6 @@ set(viewer_HEADER_FILES      llpanelonlinestatus.h      llpaneloutfitedit.h      llpaneloutfitsinventory.h -    llpanelpathfindingrebakenavmesh.h      llpanelpeople.h      llpanelpeoplemenus.h      llpanelpermissions.h @@ -2079,6 +2081,12 @@ if (LL_TESTS)      LL_TEST_ADDITIONAL_LIBRARIES "${JSONCPP_LIBRARIES}"    ) +  set_source_files_properties( +    lllogininstance.cpp +    PROPERTIES +    LL_TEST_ADDITIONAL_LIBRARIES "${BOOST_SYSTEM_LIBRARY}" +  ) +    ##################################################    # DISABLING PRECOMPILED HEADERS USAGE FOR TESTS    ################################################## diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 11fa50b51a..b6fd7bc9c2 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -56,7 +56,6 @@  #include "llnavigationbar.h" // to show/hide navigation bar when changing mouse look state  #include "llnearbychatbar.h"  #include "llnotificationsutil.h" -#include "llpanelpathfindingrebakenavmesh.h"  #include "llpaneltopinfobar.h"  #include "llparcel.h"  #include "llrendersphere.h" @@ -2002,7 +2001,6 @@ void LLAgent::endAnimationUpdateUI()  		LLChicletBar::getInstance()->setVisible(TRUE);  		LLPanelStandStopFlying::getInstance()->setVisible(TRUE); -		LLPanelPathfindingRebakeNavmesh::getInstance()->setVisible(TRUE);  		LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset); @@ -2112,7 +2110,6 @@ void LLAgent::endAnimationUpdateUI()  		LLChicletBar::getInstance()->setVisible(FALSE);  		LLPanelStandStopFlying::getInstance()->setVisible(FALSE); -		LLPanelPathfindingRebakeNavmesh::getInstance()->setVisible(FALSE);  		// clear out camera lag effect  		gAgentCamera.clearCameraLag(); diff --git a/indra/newview/lldirpicker.h b/indra/newview/lldirpicker.h index 2188b7edd0..682f9d6476 100644 --- a/indra/newview/lldirpicker.h +++ b/indra/newview/lldirpicker.h @@ -37,8 +37,8 @@  #include <Carbon/Carbon.h>  // AssertMacros.h does bad things. +#include "fix_macros.h"  #undef verify -#undef check  #undef require  #include <vector> diff --git a/indra/newview/llfilepicker.h b/indra/newview/llfilepicker.h index 55c665b9c7..4f602f63f1 100644 --- a/indra/newview/llfilepicker.h +++ b/indra/newview/llfilepicker.h @@ -39,8 +39,8 @@  #include <Carbon/Carbon.h>  // AssertMacros.h does bad things. +#include "fix_macros.h"  #undef verify -#undef check  #undef require  #include <vector> diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp index 459e52c4f4..97ba5b634a 100644 --- a/indra/newview/lllocalbitmaps.cpp +++ b/indra/newview/lllocalbitmaps.cpp @@ -32,9 +32,7 @@  #include "lllocalbitmaps.h"  /* boost: will not compile unless equivalent is undef'd, beware. */ -#ifdef equivalent -#undef equivalent -#endif  +#include "fix_macros.h"  #include <boost/filesystem.hpp>  /* image compression headers. */ diff --git a/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp b/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp new file mode 100644 index 0000000000..013024e8a8 --- /dev/null +++ b/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp @@ -0,0 +1,239 @@ +/**  +* @file llmenuoptionpathfindingrebakenavmesh.cpp +* @brief Implementation of llmenuoptionpathfindingrebakenavmesh +* @author Prep@lindenlab.com +* +* $LicenseInfo:firstyear=2012&license=viewerlgpl$ +* Second Life Viewer Source Code +* Copyright (C) 2012, Linden Research, Inc. +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; +* version 2.1 of the License only. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA +* +* Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA +* $/LicenseInfo$ +*/ + + +#include "llviewerprecompiledheaders.h" + +#include "llmenuoptionpathfindingrebakenavmesh.h" + +#include <boost/bind.hpp> +#include <boost/signals2.hpp> + +#include "llagent.h" +#include "llenvmanager.h" +#include "llnotificationsutil.h" +#include "llpathfindingmanager.h" +#include "llpathfindingnavmesh.h" +#include "llpathfindingnavmeshstatus.h" +#include "llviewerregion.h" + +LLMenuOptionPathfindingRebakeNavmesh::LLMenuOptionPathfindingRebakeNavmesh()  +	: LLSingleton<LLMenuOptionPathfindingRebakeNavmesh>(), +	mIsInitialized(false), +	mCanRebakeRegion(false), +	mRebakeNavMeshMode(kRebakeNavMesh_Default), +	mNavMeshSlot(), +	mRegionCrossingSlot(), +	mAgentStateSlot() +{ +} + +LLMenuOptionPathfindingRebakeNavmesh::~LLMenuOptionPathfindingRebakeNavmesh()  +{ +	if (mRebakeNavMeshMode == kRebakeNavMesh_RequestSent) +	{ +		LL_WARNS("navmeshRebaking") << "During destruction of the LLMenuOptionPathfindingRebakeNavmesh " +			<< "singleton, the mode indicates that a request has been sent for which a response has yet " +			<< "to be received.  This could contribute to a crash on exit." << LL_ENDL; +	} + +	llassert(!mIsInitialized); +	if (mIsInitialized) +	{ +		quit(); +	} +} + +void LLMenuOptionPathfindingRebakeNavmesh::initialize() +{ +	llassert(!mIsInitialized); +	if (!mIsInitialized) +	{ +		mIsInitialized = true; + +		setMode(kRebakeNavMesh_Default); + +		createNavMeshStatusListenerForCurrentRegion(); + +		if ( !mRegionCrossingSlot.connected() ) +		{ +			mRegionCrossingSlot = LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLMenuOptionPathfindingRebakeNavmesh::handleRegionBoundaryCrossed, this)); +		} + +		if (!mAgentStateSlot.connected()) +		{ +			mAgentStateSlot = LLPathfindingManager::getInstance()->registerAgentStateListener(boost::bind(&LLMenuOptionPathfindingRebakeNavmesh::handleAgentState, this, _1)); +		} +		LLPathfindingManager::getInstance()->requestGetAgentState(); +	} +} + +void LLMenuOptionPathfindingRebakeNavmesh::quit() +{ +	llassert(mIsInitialized); +	if (mIsInitialized) +	{ +		if (mNavMeshSlot.connected()) +		{ +			mNavMeshSlot.disconnect(); +		} + +		if (mRegionCrossingSlot.connected()) +		{ +			mRegionCrossingSlot.disconnect(); +		} + +		if (mAgentStateSlot.connected()) +		{ +			mAgentStateSlot.disconnect(); +		} + +		mIsInitialized = false; +	} +} + +bool LLMenuOptionPathfindingRebakeNavmesh::canRebakeRegion() const +{ +	if (!mIsInitialized) +	{ +		LL_ERRS("navmeshRebaking") << "LLMenuOptionPathfindingRebakeNavmesh class has not been initialized " +			<< "when the ability to rebake navmesh is being requested." << LL_ENDL; +	} +	return mCanRebakeRegion; +} + +LLMenuOptionPathfindingRebakeNavmesh::ERebakeNavMeshMode LLMenuOptionPathfindingRebakeNavmesh::getMode() const +{ +	if (!mIsInitialized) +	{ +		LL_ERRS("navmeshRebaking") << "LLMenuOptionPathfindingRebakeNavmesh class has not been initialized " +			<< "when the mode is being requested." << LL_ENDL; +	} +	return mRebakeNavMeshMode; +} + +void LLMenuOptionPathfindingRebakeNavmesh::sendRequestRebakeNavmesh() +{ +	if (!mIsInitialized) +	{ +		LL_ERRS("navmeshRebaking") << "LLMenuOptionPathfindingRebakeNavmesh class has not been initialized " +			<< "when the request is being made to rebake the navmesh." << LL_ENDL; +	} +	else +	{ +		if (!canRebakeRegion()) +		{ +			LL_WARNS("navmeshRebaking") << "attempting to rebake navmesh when user does not have permissions " +				<< "on this region" << LL_ENDL; +		} +		if (getMode() != kRebakeNavMesh_Available) +		{ +			LL_WARNS("navmeshRebaking") << "attempting to rebake navmesh when mode is not available" +				<< LL_ENDL; +		} + +		setMode(kRebakeNavMesh_RequestSent); +		LLPathfindingManager::getInstance()->requestRebakeNavMesh(boost::bind(&LLMenuOptionPathfindingRebakeNavmesh::handleRebakeNavMeshResponse, this, _1)); +	} +} + +void LLMenuOptionPathfindingRebakeNavmesh::setMode(ERebakeNavMeshMode pRebakeNavMeshMode) +{ +	mRebakeNavMeshMode = pRebakeNavMeshMode; +} + +void LLMenuOptionPathfindingRebakeNavmesh::handleAgentState(BOOL pCanRebakeRegion) +{ +	llassert(mIsInitialized); +	mCanRebakeRegion = pCanRebakeRegion; +} + +void LLMenuOptionPathfindingRebakeNavmesh::handleRebakeNavMeshResponse(bool pResponseStatus) +{ +	llassert(mIsInitialized); +	if (getMode() == kRebakeNavMesh_RequestSent) +	{ +		setMode(pResponseStatus ? kRebakeNavMesh_InProgress : kRebakeNavMesh_Default); +	} + +	if (!pResponseStatus) +	{ +		LLNotificationsUtil::add("PathfindingCannotRebakeNavmesh"); +	} +} + +void LLMenuOptionPathfindingRebakeNavmesh::handleNavMeshStatus(const LLPathfindingNavMeshStatus &pNavMeshStatus) +{ +	llassert(mIsInitialized); +	ERebakeNavMeshMode rebakeNavMeshMode = kRebakeNavMesh_Default; +	if (pNavMeshStatus.isValid()) +	{ +		switch (pNavMeshStatus.getStatus()) +		{ +		case LLPathfindingNavMeshStatus::kPending : +		case LLPathfindingNavMeshStatus::kRepending : +			rebakeNavMeshMode = kRebakeNavMesh_Available; +			break; +		case LLPathfindingNavMeshStatus::kBuilding : +			rebakeNavMeshMode = kRebakeNavMesh_InProgress; +			break; +		case LLPathfindingNavMeshStatus::kComplete : +			rebakeNavMeshMode = kRebakeNavMesh_NotAvailable; +			break; +		default :  +			rebakeNavMeshMode = kRebakeNavMesh_Default; +			llassert(0); +			break; +		} +	} + +	setMode(rebakeNavMeshMode); +} + +void LLMenuOptionPathfindingRebakeNavmesh::handleRegionBoundaryCrossed() +{ +	llassert(mIsInitialized); +	createNavMeshStatusListenerForCurrentRegion(); +	mCanRebakeRegion = FALSE; +	LLPathfindingManager::getInstance()->requestGetAgentState(); +} + +void LLMenuOptionPathfindingRebakeNavmesh::createNavMeshStatusListenerForCurrentRegion() +{ +	if (mNavMeshSlot.connected()) +	{ +		mNavMeshSlot.disconnect(); +	} + +	LLViewerRegion *currentRegion = gAgent.getRegion(); +	if (currentRegion != NULL) +	{ +		mNavMeshSlot = LLPathfindingManager::getInstance()->registerNavMeshListenerForRegion(currentRegion, boost::bind(&LLMenuOptionPathfindingRebakeNavmesh::handleNavMeshStatus, this, _2)); +		LLPathfindingManager::getInstance()->requestGetNavMeshForRegion(currentRegion, true); +	} +} + diff --git a/indra/newview/llpanelpathfindingrebakenavmesh.h b/indra/newview/llmenuoptionpathfindingrebakenavmesh.h index abdc122276..7b1d2873ba 100644 --- a/indra/newview/llpanelpathfindingrebakenavmesh.h +++ b/indra/newview/llmenuoptionpathfindingrebakenavmesh.h @@ -1,6 +1,6 @@  /**  -* @file   llpanelpathfindingrebakenavmesh.h -* @brief  Header file for llpanelpathfindingrebakenavmesh +* @file   llmenuoptionpathfindingrebakenavmesh.h +* @brief  Header file for llmenuoptionpathfindingrebakenavmesh  * @author Prep@lindenlab.com  *  * $LicenseInfo:firstyear=2012&license=viewerlgpl$ @@ -24,34 +24,22 @@  * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA  * $/LicenseInfo$  */ -#ifndef LL_LLPANELPATHFINDINGREBAKENAVMESH_H -#define LL_LLPANELPATHFINDINGREBAKENAVMESH_H +#ifndef LL_LLMENUOPTIONPATHFINDINGREBAKENAVMESH_H +#define LL_LLMENUOPTIONPATHFINDINGREBAKENAVMESH_H  #include <boost/signals2.hpp> -#include "llpanel.h"  #include "llpathfindingmanager.h"  #include "llpathfindingnavmesh.h" +#include "llsingleton.h" -class LLButton;  class LLPathfindingNavMeshStatus; -class LLPanelPathfindingRebakeNavmesh : public LLPanel +class LLMenuOptionPathfindingRebakeNavmesh : public LLSingleton<LLMenuOptionPathfindingRebakeNavmesh>  { - -	LOG_CLASS(LLPanelPathfindingRebakeNavmesh); +	LOG_CLASS(LLMenuOptionPathfindingRebakeNavmesh);  public: -	static LLPanelPathfindingRebakeNavmesh* getInstance(); - -	virtual BOOL postBuild(); - -	virtual void draw(); -	virtual BOOL handleToolTip( S32 x, S32 y, MASK mask ); - -protected: - -private:  	typedef enum  	{  		kRebakeNavMesh_Available, @@ -61,15 +49,21 @@ private:  		kRebakeNavMesh_Default = kRebakeNavMesh_NotAvailable  	} ERebakeNavMeshMode; -	LLPanelPathfindingRebakeNavmesh(); -	virtual ~LLPanelPathfindingRebakeNavmesh(); +	LLMenuOptionPathfindingRebakeNavmesh(); +	virtual ~LLMenuOptionPathfindingRebakeNavmesh(); -	static LLPanelPathfindingRebakeNavmesh* getPanel(); +	void               initialize(); +	void               quit(); -	void               setMode(ERebakeNavMeshMode pRebakeNavMeshMode); +	bool               canRebakeRegion() const;  	ERebakeNavMeshMode getMode() const; -	void onNavMeshRebakeClick(); +	void               sendRequestRebakeNavmesh(); + +protected: + +private: +	void setMode(ERebakeNavMeshMode pRebakeNavMeshMode);  	void handleAgentState(BOOL pCanRebakeRegion);  	void handleRebakeNavMeshResponse(bool pResponseStatus); @@ -78,20 +72,14 @@ private:  	void createNavMeshStatusListenerForCurrentRegion(); -	bool doDraw() const; -	void updatePosition(); +	bool                                     mIsInitialized; -	BOOL                                     mCanRebakeRegion; +	bool                                     mCanRebakeRegion;  	ERebakeNavMeshMode                       mRebakeNavMeshMode; -	LLButton*                                mNavMeshRebakeButton; -	LLButton*                                mNavMeshSendingButton; -	LLButton*                                mNavMeshBakingButton; -	LLHandle<LLPanel>						 mStateManagementButtons; -  	LLPathfindingNavMesh::navmesh_slot_t     mNavMeshSlot;  	boost::signals2::connection              mRegionCrossingSlot;  	LLPathfindingManager::agent_state_slot_t mAgentStateSlot;  }; -#endif // LL_LLPANELPATHFINDINGREBAKENAVMESH_H +#endif // LL_LLMENUOPTIONPATHFINDINGREBAKENAVMESH_H diff --git a/indra/newview/llpanelpathfindingrebakenavmesh.cpp b/indra/newview/llpanelpathfindingrebakenavmesh.cpp deleted file mode 100644 index 5d62ec152e..0000000000 --- a/indra/newview/llpanelpathfindingrebakenavmesh.cpp +++ /dev/null @@ -1,278 +0,0 @@ -/**  -* @file llpanelpathfindingrebakenavmesh.cpp -* @brief Implementation of llpanelpathfindingrebakenavmesh -* @author Prep@lindenlab.com -* -* $LicenseInfo:firstyear=2012&license=viewerlgpl$ -* Second Life Viewer Source Code -* Copyright (C) 2012, Linden Research, Inc. -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free Software Foundation; -* version 2.1 of the License only. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA -* -* Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA -* $/LicenseInfo$ -*/ - - -#include "llviewerprecompiledheaders.h" - -#include "llpanelpathfindingrebakenavmesh.h" - -#include <boost/bind.hpp> -#include <boost/signals2.hpp> - -#include "llagent.h" -#include "llbutton.h" -#include "llenvmanager.h" -#include "llhints.h" -#include "llnotificationsutil.h" -#include "llpanel.h" -#include "llpathfindingmanager.h" -#include "llpathfindingnavmesh.h" -#include "llpathfindingnavmeshstatus.h" -#include "lltoolbar.h" -#include "lltoolbarview.h" -#include "lltooltip.h" -#include "llviewerregion.h" - -LLPanelPathfindingRebakeNavmesh* LLPanelPathfindingRebakeNavmesh::getInstance() -{ -	static LLPanelPathfindingRebakeNavmesh* panel = getPanel(); -	return panel; -} - -BOOL LLPanelPathfindingRebakeNavmesh::postBuild() -{ -	//Rebake button -	mNavMeshRebakeButton = findChild<LLButton>("navmesh_btn"); -	llassert(mNavMeshRebakeButton != NULL); -	mNavMeshRebakeButton->setCommitCallback(boost::bind(&LLPanelPathfindingRebakeNavmesh::onNavMeshRebakeClick, this)); -	LLHints::registerHintTarget("navmesh_btn", mNavMeshRebakeButton->getHandle()); -	 -	//Sending rebake request -	mNavMeshSendingButton = findChild<LLButton>("navmesh_btn_sending"); -	llassert(mNavMeshSendingButton != NULL); -	LLHints::registerHintTarget("navmesh_btn_sending", mNavMeshSendingButton->getHandle()); - -	//rebaking... -	mNavMeshBakingButton = findChild<LLButton>("navmesh_btn_baking"); -	llassert(mNavMeshBakingButton != NULL); -	LLHints::registerHintTarget("navmesh_btn_baking", mNavMeshBakingButton->getHandle()); - -	setMode(kRebakeNavMesh_Default); - -	createNavMeshStatusListenerForCurrentRegion(); - -	if ( !mRegionCrossingSlot.connected() ) -	{ -		mRegionCrossingSlot = LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLPanelPathfindingRebakeNavmesh::handleRegionBoundaryCrossed, this)); -	} - -	if (!mAgentStateSlot.connected()) -	{ -		mAgentStateSlot = LLPathfindingManager::getInstance()->registerAgentStateListener(boost::bind(&LLPanelPathfindingRebakeNavmesh::handleAgentState, this, _1)); -	} -	LLPathfindingManager::getInstance()->requestGetAgentState(); - -	return LLPanel::postBuild(); -} - -void LLPanelPathfindingRebakeNavmesh::draw() -{ -	if (doDraw()) -	{ -		updatePosition(); -		LLPanel::draw(); -	} -} - -BOOL LLPanelPathfindingRebakeNavmesh::handleToolTip( S32 x, S32 y, MASK mask ) -{ -	LLToolTipMgr::instance().unblockToolTips(); - -	if (mNavMeshRebakeButton->getVisible()) -	{ -		LLToolTipMgr::instance().show(mNavMeshRebakeButton->getToolTip()); -	} -	else if (mNavMeshSendingButton->getVisible()) -	{ -		LLToolTipMgr::instance().show(mNavMeshSendingButton->getToolTip()); -	} -	else if (mNavMeshBakingButton->getVisible()) -	{ -		LLToolTipMgr::instance().show(mNavMeshBakingButton->getToolTip()); -	} - -	return LLPanel::handleToolTip(x, y, mask); -} - -LLPanelPathfindingRebakeNavmesh::LLPanelPathfindingRebakeNavmesh()  -	: LLPanel(), -	mCanRebakeRegion(FALSE), -	mRebakeNavMeshMode(kRebakeNavMesh_Default), -	mNavMeshRebakeButton(NULL), -	mNavMeshSendingButton(NULL), -	mNavMeshBakingButton(NULL), -	mNavMeshSlot(), -	mRegionCrossingSlot(), -	mAgentStateSlot() -{ -	// make sure we have the only instance of this class -	static bool b = true; -	llassert_always(b); -	b=false; -} - -LLPanelPathfindingRebakeNavmesh::~LLPanelPathfindingRebakeNavmesh()  -{ -} - -LLPanelPathfindingRebakeNavmesh* LLPanelPathfindingRebakeNavmesh::getPanel() -{ -	LLPanelPathfindingRebakeNavmesh* panel = new LLPanelPathfindingRebakeNavmesh(); -	panel->buildFromFile("panel_navmesh_rebake.xml"); -	return panel; -} - -void LLPanelPathfindingRebakeNavmesh::setMode(ERebakeNavMeshMode pRebakeNavMeshMode) -{ -	if (pRebakeNavMeshMode == kRebakeNavMesh_Available) -	{ -		LLNotificationsUtil::add("PathfindingRebakeNavmesh"); -	} -	mNavMeshRebakeButton->setVisible(pRebakeNavMeshMode == kRebakeNavMesh_Available); -	mNavMeshSendingButton->setVisible(pRebakeNavMeshMode == kRebakeNavMesh_RequestSent); -	mNavMeshBakingButton->setVisible(pRebakeNavMeshMode == kRebakeNavMesh_InProgress); -	mRebakeNavMeshMode = pRebakeNavMeshMode; -} - -LLPanelPathfindingRebakeNavmesh::ERebakeNavMeshMode LLPanelPathfindingRebakeNavmesh::getMode() const -{ -	return mRebakeNavMeshMode; -} - -void LLPanelPathfindingRebakeNavmesh::onNavMeshRebakeClick() -{ -	setMode(kRebakeNavMesh_RequestSent); -	LLPathfindingManager::getInstance()->requestRebakeNavMesh(boost::bind(&LLPanelPathfindingRebakeNavmesh::handleRebakeNavMeshResponse, this, _1)); -} - -void LLPanelPathfindingRebakeNavmesh::handleAgentState(BOOL pCanRebakeRegion) -{ -	mCanRebakeRegion = pCanRebakeRegion; -} - -void LLPanelPathfindingRebakeNavmesh::handleRebakeNavMeshResponse(bool pResponseStatus) -{ -	if (getMode() == kRebakeNavMesh_RequestSent) -	{ -		setMode(pResponseStatus ? kRebakeNavMesh_InProgress : kRebakeNavMesh_Default); -	} - -	if (!pResponseStatus) -	{ -		LLNotificationsUtil::add("PathfindingCannotRebakeNavmesh"); -	} -} - -void LLPanelPathfindingRebakeNavmesh::handleNavMeshStatus(const LLPathfindingNavMeshStatus &pNavMeshStatus) -{ -	ERebakeNavMeshMode rebakeNavMeshMode = kRebakeNavMesh_Default; -	if (pNavMeshStatus.isValid()) -	{ -		switch (pNavMeshStatus.getStatus()) -		{ -		case LLPathfindingNavMeshStatus::kPending : -		case LLPathfindingNavMeshStatus::kRepending : -			rebakeNavMeshMode = kRebakeNavMesh_Available; -			break; -		case LLPathfindingNavMeshStatus::kBuilding : -			rebakeNavMeshMode = kRebakeNavMesh_InProgress; -			break; -		case LLPathfindingNavMeshStatus::kComplete : -			rebakeNavMeshMode = kRebakeNavMesh_NotAvailable; -			break; -		default :  -			rebakeNavMeshMode = kRebakeNavMesh_Default; -			llassert(0); -			break; -		} -	} - -	setMode(rebakeNavMeshMode); -} - -void LLPanelPathfindingRebakeNavmesh::handleRegionBoundaryCrossed() -{ -	createNavMeshStatusListenerForCurrentRegion(); -	mCanRebakeRegion = FALSE; -	LLPathfindingManager::getInstance()->requestGetAgentState(); -} - -void LLPanelPathfindingRebakeNavmesh::createNavMeshStatusListenerForCurrentRegion() -{ -	if (mNavMeshSlot.connected()) -	{ -		mNavMeshSlot.disconnect(); -	} - -	LLViewerRegion *currentRegion = gAgent.getRegion(); -	if (currentRegion != NULL) -	{ -		mNavMeshSlot = LLPathfindingManager::getInstance()->registerNavMeshListenerForRegion(currentRegion, boost::bind(&LLPanelPathfindingRebakeNavmesh::handleNavMeshStatus, this, _2)); -		LLPathfindingManager::getInstance()->requestGetNavMeshForRegion(currentRegion, true); -	} -} - -bool LLPanelPathfindingRebakeNavmesh::doDraw() const -{ -	return (mCanRebakeRegion && (mRebakeNavMeshMode != kRebakeNavMesh_NotAvailable)); -} - -void LLPanelPathfindingRebakeNavmesh::updatePosition() -{ -	S32 y_pos = 0; -	S32 bottom_tb_center = 0; - -	if (LLToolBar* toolbar_bottom = gToolBarView->getToolbar(LLToolBarView::TOOLBAR_BOTTOM)) -	{ -		y_pos = toolbar_bottom->getRect().getHeight(); -		bottom_tb_center = toolbar_bottom->getRect().getCenterX(); -	} - -	S32 left_tb_width = 0; -	if (LLToolBar* toolbar_left = gToolBarView->getToolbar(LLToolBarView::TOOLBAR_LEFT)) -	{ -		left_tb_width = toolbar_left->getRect().getWidth(); -	} - -	if (!mStateManagementButtons.get()) -	{ -		LLPanel* panel_ssf_container = getRootView()->getChild<LLPanel>("state_management_buttons_container"); -		if (panel_ssf_container) -		{ -			mStateManagementButtons = panel_ssf_container->getHandle(); -		} -	} - -	if(LLPanel* panel_ssf_container = mStateManagementButtons.get()) -	{ -		panel_ssf_container->setOrigin(0, y_pos); -	} - -	S32 x_pos = bottom_tb_center-getRect().getWidth()/2 - left_tb_width + 113 /* width of stand/fly button */ + 10 /* margin */; - -	setOrigin( x_pos, 0); -} diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index dc7f1b027e..41bfbae86e 100755 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -3210,7 +3210,7 @@ bool LLTextureFetch::receiveImageHeader(const LLHost& host, const LLUUID& id, U8  	LLViewerStatsRecorder::instance().textureFetch(data_size);  	LLViewerStatsRecorder::instance().log(0.1f); -	worker->lockWorkMutex();											// +Mw +	worker->lockWorkMutex();  	//	Copy header data into image object @@ -3258,11 +3258,12 @@ bool LLTextureFetch::receiveImagePacket(const LLHost& host, const LLUUID& id, U1  		mNetworkQueueMutex.unlock();									// -Mfnq  		return false;  	} - +	  	LLViewerStatsRecorder::instance().textureFetch(data_size);  	LLViewerStatsRecorder::instance().log(0.1f); -	worker->lockWorkMutex();											// +Mw +	worker->lockWorkMutex(); +  	res = worker->insertPacket(packet_num, data, data_size); diff --git a/indra/newview/lltexturefetch.h b/indra/newview/lltexturefetch.h index 1db16666a8..1e58ba35d4 100644 --- a/indra/newview/lltexturefetch.h +++ b/indra/newview/lltexturefetch.h @@ -37,6 +37,7 @@  #include "lltextureinfo.h"  #include "llapr.h"  #include "llimageworker.h" +#include "llstat.h"  #include "llcurl.h"  #include "llstat.h"  #include "httprequest.h" diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index d69acbbd07..93e4f4428a 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -83,6 +83,7 @@  #include "llinventoryfunctions.h"  #include "llpanellogin.h"  #include "llpanelblockedlist.h" +#include "llmenuoptionpathfindingrebakenavmesh.h"  #include "llmoveview.h"  #include "llparcel.h"  #include "llrootview.h" @@ -4913,6 +4914,37 @@ class LLToolsEnablePathfindingView : public view_listener_t  	}  }; +class LLToolsDoPathfindingRebakeRegion : public view_listener_t +{ +	bool handleEvent(const LLSD& userdata) +	{ +		bool hasPathfinding = (LLPathfindingManager::getInstance() != NULL); + +		if (hasPathfinding) +		{ +			LLMenuOptionPathfindingRebakeNavmesh::getInstance()->sendRequestRebakeNavmesh(); +		} + +		return hasPathfinding; +	} +}; + +class LLToolsEnablePathfindingRebakeRegion : public view_listener_t +{ +	bool handleEvent(const LLSD& userdata) +	{ +		bool returnValue = false; + +		if (LLPathfindingManager::getInstance() != NULL) +		{ +			LLMenuOptionPathfindingRebakeNavmesh *rebakeInstance = LLMenuOptionPathfindingRebakeNavmesh::getInstance(); +			returnValue = (rebakeInstance->canRebakeRegion() && +				(rebakeInstance->getMode() == LLMenuOptionPathfindingRebakeNavmesh::kRebakeNavMesh_Available)); +		} +		return returnValue; +	} +}; +  // Round the position of all root objects to the grid  class LLToolsSnapObjectXY : public view_listener_t  { @@ -8351,6 +8383,8 @@ void initialize_menus()  	view_listener_t::addMenu(new LLToolsEnablePathfinding(), "Tools.EnablePathfinding");  	view_listener_t::addMenu(new LLToolsEnablePathfindingView(), "Tools.EnablePathfindingView"); +	view_listener_t::addMenu(new LLToolsDoPathfindingRebakeRegion(), "Tools.DoPathfindingRebakeRegion"); +	view_listener_t::addMenu(new LLToolsEnablePathfindingRebakeRegion(), "Tools.EnablePathfindingRebakeRegion");  	// Help menu  	// most items use the ShowFloater method diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 3a84664fa5..204215f60f 100755 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -123,11 +123,11 @@  #include "llkeyboard.h"  #include "lllineeditor.h"  #include "llmenugl.h" +#include "llmenuoptionpathfindingrebakenavmesh.h"  #include "llmodaldialog.h"  #include "llmorphview.h"  #include "llmoveview.h"  #include "llnavigationbar.h" -#include "llpanelpathfindingrebakenavmesh.h"  #include "llpaneltopinfobar.h"  #include "llpopupview.h"  #include "llpreviewtexture.h" @@ -1932,11 +1932,10 @@ void LLViewerWindow::initWorldUI()  	LLPanelStandStopFlying* panel_stand_stop_flying	= LLPanelStandStopFlying::getInstance();  	panel_ssf_container->addChild(panel_stand_stop_flying); -	LLPanelPathfindingRebakeNavmesh *panel_rebake_navmesh = LLPanelPathfindingRebakeNavmesh::getInstance(); -	panel_ssf_container->addChild(panel_rebake_navmesh); -  	panel_ssf_container->setVisible(TRUE); +	LLMenuOptionPathfindingRebakeNavmesh::getInstance()->initialize(); +  	// Load and make the toolbars visible  	// Note: we need to load the toolbars only *after* the user is logged in and IW  	if (gToolBarView) @@ -2006,6 +2005,8 @@ void LLViewerWindow::shutdownViews()  	mRootView = NULL;  	llinfos << "RootView deleted." << llendl ; +	LLMenuOptionPathfindingRebakeNavmesh::getInstance()->quit(); +  	// Automatically deleted as children of mRootView.  Fix the globals.  	gStatusBar = NULL;  	gIMMgr = NULL; diff --git a/indra/newview/macutil_Prefix.h b/indra/newview/macutil_Prefix.h index fd8e927a08..b54a764a62 100644 --- a/indra/newview/macutil_Prefix.h +++ b/indra/newview/macutil_Prefix.h @@ -33,7 +33,7 @@   */  #include <Carbon/Carbon.h> +#include "fix_macros.h" -#undef check  #undef verify  #undef require diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 2bcbc0b083..579fc6d104 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -861,6 +861,8 @@ bool LLPipeline::doAllocateScreenBuffer(U32 resX, U32 resY)  	}  	return ret; + +	return ret;  }  bool LLPipeline::allocateScreenBuffer(U32 resX, U32 resY, U32 samples) diff --git a/indra/newview/skins/default/xui/de/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/de/panel_navmesh_rebake.xml deleted file mode 100644 index 44be6d67b1..0000000000 --- a/indra/newview/skins/default/xui/de/panel_navmesh_rebake.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_navmesh_rebake"> -	<button label="Region neu formen" name="navmesh_btn" tool_tip="Klicken, um das Navmesh der Region neu zu formen."/> -	<button label="Neuformen wird angefordert" name="navmesh_btn_sending" tool_tip="Anforderung zum Neuformen wird an den Server gesendet."/> -	<button label="Region wird neu geformt" name="navmesh_btn_baking" tool_tip="Region wird neu geformt. Nach Abschluss des Vorgangs verschwindet diese Schaltfläche."/> -</panel> diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml index 52b9524b11..f6004621a6 100644 --- a/indra/newview/skins/default/xui/en/menu_object.xml +++ b/indra/newview/skins/default/xui/en/menu_object.xml @@ -30,26 +30,6 @@          function="EnableEdit"/>    </menu_item_call>    <menu_item_call -      label="Show in linksets" -      name="show_in_linksets"> -    <menu_item_call.on_click -        function="Pathfinding.Linksets.Select" /> -    <menu_item_call.on_enable -        function="EnableSelectInPathfindingLinksets"/> -    <menu_item_call.on_visible -        function="EnableSelectInPathfindingLinksets"/> -  </menu_item_call> -  <menu_item_call -      label="Show in characters" -      name="show_in_characters"> -    <menu_item_call.on_click -        function="Pathfinding.Characters.Select" /> -    <menu_item_call.on_enable -        function="EnableSelectInPathfindingCharacters"/> -    <menu_item_call.on_visible -        function="EnableSelectInPathfindingCharacters"/> -  </menu_item_call> -  <menu_item_call        enabled="false"        label="Open"        name="Open"> @@ -90,6 +70,26 @@      <menu_item_call.on_click          function="Object.ZoomIn" />    </menu_item_call> +  <menu_item_call +      label="Show in linksets" +      name="show_in_linksets"> +    <menu_item_call.on_click +        function="Pathfinding.Linksets.Select" /> +    <menu_item_call.on_enable +        function="EnableSelectInPathfindingLinksets"/> +    <menu_item_call.on_visible +        function="EnableSelectInPathfindingLinksets"/> +  </menu_item_call> +  <menu_item_call +      label="Show in characters" +      name="show_in_characters"> +    <menu_item_call.on_click +        function="Pathfinding.Characters.Select" /> +    <menu_item_call.on_enable +        function="EnableSelectInPathfindingCharacters"/> +    <menu_item_call.on_visible +        function="EnableSelectInPathfindingCharacters"/> +  </menu_item_call>    <menu_item_separator layout="topleft" />    <context_menu        label="Put On" diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 0fc1982a86..caa36e7302 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -957,7 +957,7 @@           create_jump_keys="true"           label="Pathfinding"           name="Pathfinding" -         tear_off="false"> +         tear_off="true">          <menu_item_call              label="Linksets..."              name="pathfinding_linksets_menu_item"> @@ -985,6 +985,14 @@            <menu_item_call.on_enable                function="Tools.EnablePathfindingView" />          </menu_item_call> +        <menu_item_call +            label="Rebake region" +            name="pathfinding_rebake_navmesh_item"> +          <menu_item_call.on_click +              function="Tools.DoPathfindingRebakeRegion"/> +          <menu_item_call.on_enable +              function="Tools.EnablePathfindingRebakeRegion" /> +        </menu_item_call>        </menu> diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 648a1895c4..44c18c2cce 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -6115,26 +6115,6 @@ This area has building disabled. You can't build or rez objects here.    <notification     icon="alertmodal.tga" -   name="PathfindingRebakeNavmesh" -   type="alertmodal"> -    <unique/> -    Changing certain objects in this region could cause other moving objects to behave incorrectly.  To make moving objects behave correctly, click the “Rebake region” button.  Choose “Help” for more information. -    <url -      option="1" -      name="url" -      target = "_external"> -      http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer -    </url> -    <usetemplate -     name="okhelpignore" -     ignoretext="Changing certain objects in this region could cause other moving objects to behave incorrectly." -     yestext="OK" -     helptext="Help" -     /> -  </notification> - -  <notification -   icon="alertmodal.tga"     name="PathfindingCannotRebakeNavmesh"     type="alertmodal">      <unique/> @@ -10007,4 +9987,1693 @@ An internal error prevented us from properly updating your viewer.  The L$ balan  Cannot create large prims that intersect other players.  Please re-try when other players have moved.    </notification> + +  <notification +   icon="alertmodal.tga" +   name="AvatarFrozen" +   type="notify"> +   <tag>fail</tag> +[AV_FREEZER] has frozen you. You cannot move or interact with the world. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AvatarFrozenDuration" +   type="notify"> +   <tag>fail</tag> +[AV_FREEZER] has frozen you for [AV_FREEZE_TIME] seconds. You cannot move or interact with the world. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="YouFrozeAvatar" +   type="notify"> +   <tag>fail</tag> +Avatar frozen. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AvatarHasUnFrozenYou" +   type="notify"> +   <tag>fail</tag> +[AV_FREEZER] has unfrozen you. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AvatarUnFrozen" +   type="notify"> +   <tag>fail</tag> +Avatar unfrozen. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AvatarFreezeFailure" +   type="notify"> +   <tag>fail</tag> +Freeze failed because you don't have admin permission for that parcel. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AvatarFreezeThaw" +   type="notify"> +   <tag>fail</tag> +Your freeze expired, go about your business. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AvatarCantFreeze" +   type="notify"> +   <tag>fail</tag> +Sorry, can't freeze that user. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NowOwnObject" +   type="notify"> +   <tag>fail</tag> +You are now the owner of object [OBJECT_NAME] +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantRezOnLand" +   type="notify"> +   <tag>fail</tag> +Can't rez object at [OBJECT_POS] because the owner of this land does not allow it.  Use the land tool to see land ownership. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="RezFailTooManyRequests" +   type="notify"> +   <tag>fail</tag> +Object can not be rezzed because there are too many requests. +  </notification> +  +  <notification +   icon="alertmodal.tga" +   name="SitFailCantMove" +   type="notify"> +   <tag>fail</tag> +You cannot sit because you cannot move at this time. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="SitFailNotAllowedOnLand" +   type="notify"> +   <tag>fail</tag> +You cannot sit because you are not allowed on that land. +  </notification> +  +  <notification +   icon="alertmodal.tga" +   name="SitFailNotSameRegion" +   type="notify"> +   <tag>fail</tag> +Try moving closer.  Can't sit on object because +it is not in the same region as you. +  </notification> +   +  <notification +   icon="alertmodal.tga" +   name="NoNewObjectRegionFull" +   type="notify"> +   <tag>fail</tag> +Unable to create new object. The region is full. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="FailedToPlaceObject" +   type="notify"> +   <tag>fail</tag> +Failed to place object at specified location.  Please try again. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoOwnNoGardening" +   type="notify"> +   <tag>fail</tag> +You Can't create trees and grass on land you don't own. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoCopyPermsNoObject" +   type="notify"> +   <tag>fail</tag> +Copy failed because you lack permission to copy the object '[OBJ_NAME]'. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoTransPermsNoObject" +   type="notify"> +   <tag>fail</tag> +Copy failed because the object '[OBJ_NAME]' cannot be transferred to you. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AddToNavMeshNoCopy" +   type="notify"> +   <tag>fail</tag> +Copy failed because the object '[OBJ_NAME]' contributes to navmesh. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="DupeWithNoRootsSelected" +   type="notify"> +   <tag>fail</tag> +Duplicate with no root objects selected. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDupeCuzRegionIsFull" +   type="notify"> +   <tag>fail</tag> +Can't duplicate objects because the region is full. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDupeCuzParcelNotFound" +   type="notify"> +   <tag>fail</tag> +Can't duplicate objects - Can't find the parcel they are on. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateCuzParcelFull" +   type="notify"> +   <tag>fail</tag> +Can't create object because  +the parcel is full. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="RezAttemptFailed" +   type="notify"> +   <tag>fail</tag> +Attempt to rez an object failed. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="ToxicInvRezAttemptFailed" +   type="notify"> +   <tag>fail</tag> +Unable to create item that has caused problems on this region. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="InvItemIsBlacklisted" +   type="notify"> +   <tag>fail</tag> +That inventory item has been blacklisted. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoCanRezObjects" +   type="notify"> +   <tag>fail</tag> +You are not currently allowed to create objects. +  </notification> +  +  <notification +   icon="alertmodal.tga" +   name="LandSearchBlocked" +   type="notify"> +   <tag>fail</tag> +Land Search Blocked. +You have performed too many land searches too quickly. +Please try again in a minute. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NotEnoughResourcesToAttach" +   type="notify"> +   <tag>fail</tag> +Not enough script resources available to attach object! +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="YouDiedAndGotTPHome" +   type="notify"> +   <tag>fail</tag> +You died and have been teleported to your home location +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="EjectComingSoon" +   type="notify"> +   <tag>fail</tag> +You are no longer allowed here and have [EJECT_TIME] seconds to leave. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoEnterServerFull" +   type="notify"> +   <tag>fail</tag> +You can't enter this region because  +the server is full. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="SaveBackToInvDisabled" +   type="notify"> +   <tag>fail</tag> +Save Back To Inventory has been disabled. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoExistNoSaveToContents" +   type="notify"> +   <tag>fail</tag> +Cannot save '[OBJ_NAME]' to object contents because the object it was rezzed from no longer exists. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoModNoSaveToContents" +   type="notify"> +   <tag>fail</tag> +Cannot save '[OBJ_NAME]' to object contents because you do not have permission to modify the object '[DEST_NAME]'. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoSaveBackToInvDisabled" +   type="notify"> +   <tag>fail</tag> +Cannot save '[OBJ_NAME]' back to inventory -- this operation has been disabled. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoCopyNoSelCopy" +   type="notify"> +   <tag>fail</tag> +You cannot copy your selection because you do not have permission to copy the object '[OBJ_NAME]'. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoTransNoSelCopy" +   type="notify"> +   <tag>fail</tag> +You cannot copy your selection because the object '[OBJ_NAME]' is not transferrable. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoTransNoCopy" +   type="notify"> +   <tag>fail</tag> +You cannot copy your selection because the object '[OBJ_NAME]' is not transferrable. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoPermsNoRemoval" +   type="notify"> +   <tag>fail</tag> +Removal of the object '[OBJ_NAME]' from the simulator is disallowed by the permissions system. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoModNoSaveSelection" +   type="notify"> +   <tag>fail</tag> +Cannot save your selection because you do not have permission to modify the object '[OBJ_NAME]'. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoCopyNoSaveSelection" +   type="notify"> +   <tag>fail</tag> +Cannot save your selection because the object '[OBJ_NAME]' is not copyable. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoModNoTaking" +   type="notify"> +   <tag>fail</tag> +You cannot take your selection because you do not have permission to modify the object '[OBJ_NAME]'. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="RezDestInternalError" +   type="notify"> +   <tag>fail</tag> +Internal Error: Unknown destination type. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="DeleteFailObjNotFound" +   type="notify"> +   <tag>fail</tag> +Delete failed because object not found +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="SorryCantEjectUser" +   type="notify"> +   <tag>fail</tag> +Sorry, can't eject that user. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="RegionSezNotAHome" +   type="notify"> +   <tag>fail</tag> +This region does not allow you to set your home location here. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="HomeLocationLimits" +   type="notify"> +   <tag>fail</tag> +You can only set your 'Home Location' on your land or at a mainland Infohub. +   </notification> + +  <notification +   icon="alertmodal.tga" +   name="HomePositionSet" +   type="notify"> +   <tag>fail</tag> +Home position set. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AvatarEjected" +   type="notify"> +   <tag>fail</tag> +Avatar ejected. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AvatarEjectFailed" +   type="notify"> +   <tag>fail</tag> +Eject failed because you don't have admin permission for that parcel. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantMoveObjectParcelFull" +   type="notify"> +   <tag>fail</tag> +Can't move object '[OBJECT_NAME]' to +[OBJ_POSITION] in region [REGION_NAME] because the parcel is full. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantMoveObjectParcelPerms" +   type="notify"> +   <tag>fail</tag> +Can't move object '[OBJECT_NAME]' to +[OBJ_POSITION] in region [REGION_NAME] because your objects are not allowed on this parcel. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantMoveObjectParcelResources" +   type="notify"> +   <tag>fail</tag> +Can't move object '[OBJECT_NAME]' to +[OBJ_POSITION] in region [REGION_NAME] because there are not enough resources for this object on this parcel. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantMoveObjectRegionVersion" +   type="notify"> +   <tag>fail</tag> +Can't move object '[OBJECT_NAME]' to +[OBJ_POSITION] in region [REGION_NAME] because the other region is running an older version which does not support receiving this object via region crossing. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantMoveObjectNavMesh" +   type="notify"> +   <tag>fail</tag> +Can't move object '[OBJECT_NAME]' to +[OBJ_POSITION] in region [REGION_NAME] because you cannot modify the navmesh across region boundaries. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantMoveObjectWTF" +   type="notify"> +   <tag>fail</tag> +Can't move object '[OBJECT_NAME]' to +[OBJ_POSITION] in region [REGION_NAME] because of an unknown reason. ([FAILURE_TYPE]) +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoPermModifyObject" +   type="notify"> +   <tag>fail</tag> +You don't have permission to modify that object +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantEnablePhysObjContributesToNav" +   type="notify"> +   <tag>fail</tag> +Can't enable physics for an object that contributes to the navmesh. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantEnablePhysKeyframedObj" +   type="notify"> +   <tag>fail</tag> +Can't enable physics for keyframed objects. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantEnablePhysNotEnoughLandResources" +   type="notify"> +   <tag>fail</tag> +Can't enable physics for object -- insufficient land resources. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantEnablePhysCostTooGreat" +   persist="true" +   type="notify"> +   <tag>fail</tag> +Can't enable physics for object with physics resource cost greater than [MAX_OBJECTS] +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="PhantomWithConcavePiece" +   type="notify"> +   <tag>fail</tag> +This object cannot have a concave piece because it is phantom and contributes to the navmesh. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="UnableAddItem" +   type="notify"> +   <tag>fail</tag> +Unable to add item! +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="UnableEditItem" +   type="notify"> +   <tag>fail</tag> +Unable to edit this! +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoPermToEdit" +   type="notify"> +   <tag>fail</tag> +Not permitted to edit this. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoPermToCopyInventory" +   type="notify"> +   <tag>fail</tag> +Not permitted to copy that inventory. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantSaveItemDoesntExist" +   type="notify"> +   <tag>fail</tag> +Cannot save to object contents: Item no longer exists. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantSaveItemAlreadyExists" +   type="notify"> +   <tag>fail</tag> +Cannot save to object contents: Item with that name already exists in inventory +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantSaveModifyAttachment" +   type="notify"> +   <tag>fail</tag> +Cannot save to object contents: This would modify the attachment permissions. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoPermToEdit" +   type="notify"> +   <tag>fail</tag> +Not permitted to edit this! +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TooManyScripts" +   type="notify"> +   <tag>fail</tag> +Too many scripts. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="UnableAddScript" +   type="notify"> +   <tag>fail</tag> +Unable to add script! +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AssetServerTimeoutObjReturn" +   type="notify"> +   <tag>fail</tag> +Asset server didn't respond in a timely fashion.  Object returned to sim. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="RegionDisablePhysicsShapes" +   type="notify"> +   <tag>fail</tag> +This region does not have physics shapes enabled. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoModNavmeshAcrossRegions" +   type="notify"> +   <tag>fail</tag> +You cannot modify the navmesh across region boundaries. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoPermModifyObject" +   type="notify"> +   <tag>fail</tag> +You don't have permission to modify that object. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantEnablePhysObjContributesToNav" +   type="notify"> +   <tag>fail</tag> +Can't enable physics for an object that contributes to the navmesh. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantEnablePhysKeyframedObj" +   type="notify"> +   <tag>fail</tag> +Can't enable physics for keyframed objects. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantEnablePhysNotEnoughLandResources" +   type="notify"> +   <tag>fail</tag> +Can't enable physics for object -- insufficient land resources. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantEnablePhysCostTooGreat" +   persist="true" +   type="notify"> +   <tag>fail</tag> +Can't enable physics for object with physics resource cost greater than [MAX_OBJECTS] +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoSetPhysicsPropertiesOnObjectType" +   type="notify"> +   <tag>fail</tag> +Cannot set physics properties on that object type. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoSetRootPrimWithNoShape" +   type="notify"> +   <tag>fail</tag> +Cannot set root prim to have no shape. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoRegionSupportPhysMats" +   type="notify"> +   <tag>fail</tag> +This region does not have physics materials enabled. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="OnlyRootPrimPhysMats" +   type="notify"> +   <tag>fail</tag> +Only root prims may have their physics materials adjusted. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoSupportCharacterPhysMats" +   type="notify"> +   <tag>fail</tag> +Setting physics materials on characters is not yet supported. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="InvalidPhysMatProperty" +   type="notify"> +   <tag>fail</tag> +One or more of the specified physics material properties was invalid. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoPermsAlterStitchingMeshObj" +   type="notify"> +   <tag>fail</tag> +You may not alter the stitching type of a mesh object. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoPermsAlterShapeMeshObj" +   type="notify"> +   <tag>fail</tag> +You may not alter the shape of a mesh object +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="FullRegionCantEnter" +   type="notify"> +   <tag>fail</tag> +You can't enter this region because \nthe region is full. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LinkFailedOwnersDiffer" +   type="notify"> +   <tag>fail</tag> +Link failed -- owners differ +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LinkFailedNoModNavmeshAcrossRegions" +   type="notify"> +   <tag>fail</tag> +Link failed -- cannot modify the navmesh across region boundaries. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LinkFailedNoPermToEdit" +   type="notify"> +   <tag>fail</tag> +Link failed because you do not have edit permission. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LinkFailedTooManyPrims" +   type="notify"> +   <tag>fail</tag> +Link failed -- too many primitives +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LinkFailedCantLinkNoCopyNoTrans" +   type="notify"> +   <tag>fail</tag> +Link failed -- cannot link no-copy with no-transfer +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LinkFailedNothingLinkable" +   type="notify"> +   <tag>fail</tag> +Link failed -- nothing linkable. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LinkFailedTooManyPathfindingChars" +   type="notify"> +   <tag>fail</tag> +Link failed -- too many pathfinding characters +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LinkFailedInsufficientLand" +   type="notify"> +   <tag>fail</tag> +Link failed -- insufficient land resources +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LinkFailedTooMuchPhysics" +   type="notify"> +   <tag>fail</tag> +Object uses too many physics resources -- its dynamics have been disabled. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TeleportedHomeByObjectOnParcel" +   persist="true" +   type="notify"> +   <tag>fail</tag> +You have been teleported home by the object '[OBJECT_NAME]' on the parcel '[PARCEL_NAME]' +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TeleportedHomeByObject" +   persist="true" +   type="notify"> +   <tag>fail</tag> +You have been teleported home by the object '[OBJECT_NAME]' +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TeleportedByAttachment" +   type="notify"> +   <tag>fail</tag> +You have been teleported by an attachment on [ITEM_ID] +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TeleportedByObjectOnParcel" +   type="notify"> +   <tag>fail</tag> +You have been teleported by the object '[OBJECT_NAME]' on the parcel '[PARCEL_NAME]' +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TeleportedByObjectOwnedBy" +   type="notify"> +   <tag>fail</tag> +You have been teleported by the object '[OBJECT_NAME]' owned by [OWNER_ID] +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TeleportedByObjectUnknownUser" +   type="notify"> +   <tag>fail</tag> +You have been teleported by the object '[OBJECT_NAME]' owned by an unknown user. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateObjectRegionFull" +   type="notify"> +   <tag>fail</tag> +Unable to create requested object. The region is full. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantAttackMultipleObjOneSpot" +   type="notify"> +   <tag>fail</tag> +You can't attach multiple objects to one spot. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateMultipleObjAtLoc" +   type="notify"> +   <tag>fail</tag> +You can't create multiple objects here. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="UnableToCreateObjTimeOut" +   type="notify"> +   <tag>fail</tag> +Unable to create requested object. Object is missing from database. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="UnableToCreateObjUnknown" +   type="notify"> +   <tag>fail</tag> +Unable to create requested object. The request timed out. Please try again. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="UnableToCreateObjMissingFromDB" +   type="notify"> +   <tag>fail</tag> +Unable to create requested object. Please try again. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="RezFailureTookTooLong" +   type="notify"> +   <tag>fail</tag> +Rez failed, requested object took too long to load. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="FailedToPlaceObjAtLoc" +   type="notify"> +   <tag>fail</tag> +Failed to place object at specified location.  Please try again. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreatePlantsOnLand" +   type="notify"> +   <tag>fail</tag> +You cannot create plants on this land. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantRestoreObjectNoWorldPos" +   type="notify"> +   <tag>fail</tag> +Cannot restore object. No world position found. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantRezObjectInvalidMeshData" +   type="notify"> +   <tag>fail</tag> +Unable to rez object because its mesh data is invalid. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantRezObjectTooManyScripts" +   type="notify"> +   <tag>fail</tag> +Unable to rez object because there are already too many scripts in this region. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateObjectNoAccess" +   type="notify"> +   <tag>fail</tag> +Your access privileges don't allow you to create objects there. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateObject" +   type="notify"> +   <tag>fail</tag> +You are not currently allowed to create objects. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="InvalidObjectParams" +   type="notify"> +   <tag>fail</tag> +Invalid object parameters +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDuplicateObjectNoAcess" +   type="notify"> +   <tag>fail</tag> +Your access privileges don't allow you to duplicate objects here. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantChangeShape" +   type="notify"> +   <tag>fail</tag> +You are not allowed to change this shape. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoAccessToClaimObjects" +   type="notify"> +   <tag>fail</tag> +Your access privileges don't allow you to claim objects here. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="DeedFailedNoPermToDeedForGroup" +   type="notify"> +   <tag>fail</tag> +Deed failed because you do not have permission to deed objects for your group. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="NoPrivsToBuyObject" +   type="notify"> +   <tag>fail</tag> +Your access privileges don't allow you to buy objects here. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantAttachObjectAvatarSittingOnIt" +   type="notify"> +   <tag>fail</tag> +Cannot attach object because an avatar is sitting on it. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="WhyAreYouTryingToWearShrubbery" +   type="notify"> +   <tag>fail</tag> +Trees and grasses cannot be worn as attachments. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantAttachGroupOwnedObjs" +   type="notify"> +   <tag>fail</tag> +Cannot attach group-owned objects. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantAttachObjectsNotOwned" +   type="notify"> +   <tag>fail</tag> +Cannot attach objects that you don't own. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantAttachNavmeshObjects" +   type="notify"> +   <tag>fail</tag> +Cannot attach objects that contribute to navmesh. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantAttachObjectNoMovePermissions" +   type="notify"> +   <tag>fail</tag> +Cannot attach object because you do not have permission to move it. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantAttachNotEnoughScriptResources" +   type="notify"> +   <tag>fail</tag> +Not enough script resources available to attach object! +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDropItemTrialUser" +   type="notify"> +   <tag>fail</tag> +You can't drop objects here; try the Free Trial area. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDropMeshAttachment" +   type="notify"> +   <tag>fail</tag> +You can't drop mesh attachments. Detach to inventory and then rez in world. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDropAttachmentNoPermission" +   type="notify"> +   <tag>fail</tag> +Failed to drop attachment: you don't have permission to drop there. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDropAttachmentInsufficientLandResources" +   type="notify"> +   <tag>fail</tag> +Failed to drop attachment: insufficient available land resource. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDropAttachmentInsufficientResources" +   type="notify"> +   <tag>fail</tag> +Failed to drop attachments: insufficient available resources. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDropObjectFullParcel" +   type="notify"> +   <tag>fail</tag> +Cannot drop object here.  Parcel is full. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantTouchObjectBannedFromParcel" +   type="notify"> +   <tag>fail</tag> +Can't touch/grab this object because you are banned from the land parcel. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="PlzNarrowDeleteParams" +   type="notify"> +   <tag>fail</tag> +Please narrow your delete parameters. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="UnableToUploadAsset" +   type="notify"> +   <tag>fail</tag> +Unable to upload asset. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantTeleportCouldNotFindUser" +   type="notify"> +   <tag>fail</tag> +Could not find user to teleport home +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="GodlikeRequestFailed" +   type="notify"> +   <tag>fail</tag> +godlike request failed +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="GenericRequestFailed" +   type="notify"> +   <tag>fail</tag> +generic request failed +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantUploadPostcard" +   type="notify"> +   <tag>fail</tag> +Unable to upload postcard.  Try again later. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantFetchInventoryForGroupNotice" +   type="notify"> +   <tag>fail</tag> +Unable to fetch inventory details for the group notice. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantSendGroupNoticeNotPermitted" +   type="notify"> +   <tag>fail</tag> +Unable to send group notice -- not permitted. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantSendGroupNoticeCantConstructInventory" +   type="notify"> +   <tag>fail</tag> +Unable to send group notice -- could not construct inventory. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantParceInventoryInNotice" +   type="notify"> +   <tag>fail</tag> +Unable to parse inventory in notice. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TerrainUploadFailed" +   type="notify"> +   <tag>fail</tag> +Terrain upload failed. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TerrainFileWritten" +   type="notify"> +   <tag>fail</tag> +Terrain file written. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TerrainFileWrittenStartingDownload" +   type="notify"> +   <tag>fail</tag> +Terrain file written, starting download... +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TerrainBaked" +   type="notify"> +   <tag>fail</tag> +Terrain baked. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="TenObjectsDisabledPlzRefresh" +   type="notify"> +   <tag>fail</tag> +Only the first 10 selected objects have been disabled. Refresh and make additional selections if required. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="UpdateViewerBuyParcel" +   type="notify"> +   <tag>fail</tag> +You need to update your viewer to buy this parcel. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LandBuyAccessBlocked" +   type="notify"> +   <tag>fail</tag> +You can't buy this land due to your maturity Rating. You may need to validate your age and/or install the latest Viewer. Please go to the Knowledge Base for details on accessing areas with this maturity Rating. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantBuyParcelNotForSale" +   type="notify"> +   <tag>fail</tag> +Unable to buy, this parcel is not for sale. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantBuySalePriceOrLandAreaChanged" +   type="notify"> +   <tag>fail</tag> +Unable to buy, the sale price or land area has changed. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantBuyParcelNotAuthorized" +   type="notify"> +   <tag>fail</tag> +You are not the authorized buyer for this parcel. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantBuyParcelAwaitingPurchaseAuth" +   type="notify"> +   <tag>fail</tag> +You cannot purchase this parcel because it is already awaiting purchase aut +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantBuildOverflowParcel" +   type="notify"> +   <tag>fail</tag> +You cannot build objects here because doing so would overflow the parcel. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="SelectedMultipleOwnedLand" +   type="notify"> +   <tag>fail</tag> +You selected land with different owners. Please select a smaller area and try again. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantJoinTooFewLeasedParcels" +   type="notify"> +   <tag>fail</tag> +Not enough leased parcels in selection to join. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDivideLandMultipleParcelsSelected" +   type="notify"> +   <tag>fail</tag> +Can't divide land.\nThere is more than one parcel selected.\nTry selecting a smaller piece of land. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDivideLandCantFindParcel" +   type="notify"> +   <tag>fail</tag> +Can't divide land.\nCan't find the parcel.\nPlease report with Help -> Reprt Bug... +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDivideLandWholeParcelSelected" +   type="notify"> +   <tag>fail</tag> +Can't divide land. Whole parcel is selected.\nTry selecting a smaller piece of land. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LandHasBeenDivided" +   type="notify"> +   <tag>fail</tag> +Land has been divided. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="PassPurchased" +   type="notify"> +   <tag>fail</tag> +You purchased a pass. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="RegionDisallowsClassifieds" +   type="notify"> +   <tag>fail</tag> +Region does not allow classified advertisements. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="LandPassExpireSoon" +   type="notify"> +   <tag>fail</tag> +Your pass to this land is about to expire. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantSitNoSuitableSurface" +   type="notify"> +   <tag>fail</tag> +There is no suitable surface to sit on, try another spot. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantSitNoRoom" +   type="notify"> +   <tag>fail</tag> +No room to sit here, try another spot. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AutopilotCanceled" +   type="notify"> +   <tag>fail</tag> +Autopilot canceled +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="ClaimObjectFailedNoPermission" +   type="notify"> +   <tag>fail</tag> +Claim object failed because you don't have permission +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="ClaimObjectFailedNoMoney" +   type="notify"> +   <tag>fail</tag> +Claim object failed because you don't have enough L$. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDeedGroupLand" +   type="notify"> +   <tag>fail</tag> +Cannot deed group-owned land. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="BuyObjectFailedNoMoney" +   type="notify"> +   <tag>fail</tag> +Buy object failed because you don't have enough L$. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="BuyInventoryFailedNoMoney" +   type="notify"> +   <tag>fail</tag> +Buy inventory failed because you do not have enough L$ +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="BuyPassFailedNoMoney" +   type="notify"> +   <tag>fail</tag> +You don't have enough L$ to buy a pass to this land. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantBuyPassTryAgain" +   type="notify"> +   <tag>fail</tag> +Unable to buy pass right now.  Try again later. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateObjectParcelFull" +   type="notify"> +   <tag>fail</tag> +Can't create object because \nthe parcel is full. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="FailedPlacingObject" +   type="notify"> +   <tag>fail</tag> +Failed to place object at specified location.  Please try again. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateLandmarkForEvent" +   type="notify"> +   <tag>fail</tag> +Unable to create landmark for event. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="GodBeatsFreeze" +   type="notify"> +   <tag>fail</tag> +Your godlike powers break the freeze! +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="SpecialPowersRequestFailedLogged" +   type="notify"> +   <tag>fail</tag> +Request for special powers failed. This request has been logged. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="ExpireExplanation" +   type="notify"> +   <tag>fail</tag> +The system is currently unable to process your request. The request timed out. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="DieExplanation" +   type="notify"> +   <tag>fail</tag> +The system is unable to process your request. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="AddPrimitiveFailure" +   type="notify"> +   <tag>fail</tag> +Insufficient funds to create primitve. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="RezObjectFailure" +   type="notify"> +   <tag>fail</tag> +Insufficient funds to create object. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="ResetHomePositionNotLegal" +   type="notify"> +   <tag>fail</tag> +Reset Home position since Home wasn't legal. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantInviteRegionFull" +   type="notify"> +   <tag>fail</tag> +You cannot currently invite anyone to your location because the region is full. Try again later. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantSetHomeAtRegion" +   type="notify"> +   <tag>fail</tag> +This region does not allow you to set your home location here. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="ListValidHomeLocations" +   type="notify"> +   <tag>fail</tag> +You can only set your 'Home Location' on your land or at a mainland Infohub. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="SetHomePosition" +   type="notify"> +   <tag>fail</tag> +Home position set. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDerezInventoryError" +   type="notify"> +   <tag>fail</tag> +Cannot derez object due to inventory fault. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateRequestedInv" +   type="notify"> +   <tag>fail</tag> +Cannot create requested inventory. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateRequestedInvFolder" +   type="notify"> +   <tag>fail</tag> +Cannot create requested inventory folder. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateInventory" +   type="notify"> +   <tag>fail</tag> +Cannot create that inventory. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateLandmark" +   type="notify"> +   <tag>fail</tag> +Cannot create landmark. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantCreateOutfit" +   type="notify"> +   <tag>fail</tag> +Cannot create outfit right now. Try again in a minute. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="InventoryNotForSale" +   type="notify"> +   <tag>fail</tag> +Inventory is not for sale. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantFindInvItem" +   type="notify"> +   <tag>fail</tag> +Unable to find inventory item. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantFindObject" +   type="notify"> +   <tag>fail</tag> +Unable to find object. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantTransfterMoneyRegionDisabled" +   type="notify"> +   <tag>fail</tag> +Money transfers to objects are currently disabled in this region. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantPayNoAgent" +   type="notify"> +   <tag>fail</tag> +Could not figure out who to pay. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="CantDonateToPublicObjects" +   type="notify"> +   <tag>fail</tag> +You cannot give L$ to public objects. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="InventoryCreationInWorldObjectFailed" +   type="notify"> +   <tag>fail</tag> +Inventory creation on in-world object failed. +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="UserBalanceOrLandUsageError" +   type="notify"> +   <tag>fail</tag> +An internal error prevented us from properly updating your viewer.  The L$ balance or parcel holdings displayed in your viewer may not reflect your actual balance on the servers. +  </notification> + +  </notifications> diff --git a/indra/newview/skins/default/xui/en/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/en/panel_navmesh_rebake.xml deleted file mode 100644 index 90308a2ca9..0000000000 --- a/indra/newview/skins/default/xui/en/panel_navmesh_rebake.xml +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel -    height="25" -    layout="topleft" -    name="panel_navmesh_rebake" -    mouse_opaque="false" -    visible="true" -    width="133"> -  <button -      follows="left|bottom" -      height="19" -      label="Rebake region" -      layout="topleft" -      left="10" -      name="navmesh_btn" -      tool_tip="Click to rebake the region's navmesh." -      top="2" -      visible="false" -      enabled="true" -      width="120" /> -  <button -      follows="left|bottom" -      height="19" -      label="Requesting rebake" -      layout="topleft" -      left="10" -      name="navmesh_btn_sending" -      tool_tip="Sending rebake request to the server." -      top="2" -      visible="false" -      enabled="false" -      width="120" /> -  <button -      follows="left|bottom" -      height="19" -      label="Region is rebaking" -      layout="topleft" -      left="10" -      name="navmesh_btn_baking" -      tool_tip="Region is being rebaked.  When completed, this button will disappear." -      top="2" -      visible="false" -      enabled="false" -      width="120" /> -</panel> diff --git a/indra/newview/skins/default/xui/es/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/es/panel_navmesh_rebake.xml deleted file mode 100644 index 96df844512..0000000000 --- a/indra/newview/skins/default/xui/es/panel_navmesh_rebake.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_navmesh_rebake"> -	<button label="Recargar la región" name="navmesh_btn" tool_tip="Pulsa para recargar el navmesh de la región."/> -	<button label="Solicitando recarga" name="navmesh_btn_sending" tool_tip="Enviando la solicitud de recarga al servidor."/> -	<button label="La región se está recargando" name="navmesh_btn_baking" tool_tip="La región se está recargando.  Este botón desaparecerá cuando finalice la recarga."/> -</panel> diff --git a/indra/newview/skins/default/xui/fr/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/fr/panel_navmesh_rebake.xml deleted file mode 100644 index 7acf092257..0000000000 --- a/indra/newview/skins/default/xui/fr/panel_navmesh_rebake.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_navmesh_rebake"> -	<button label="Refiger la région" name="navmesh_btn" tool_tip="Cliquer pour refiger le maillage de navigation de la région."/> -	<button label="Demande consistant à refiger la région en cours..." name="navmesh_btn_sending" tool_tip="Envoi de la demande consistant à refiger la région au serveur..."/> -	<button label="La région se refige..." name="navmesh_btn_baking" tool_tip="La région se refige. Ce bouton disparaîtra lorsque le processus sera terminé."/> -</panel> diff --git a/indra/newview/skins/default/xui/it/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/it/panel_navmesh_rebake.xml deleted file mode 100644 index 432754076a..0000000000 --- a/indra/newview/skins/default/xui/it/panel_navmesh_rebake.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_navmesh_rebake"> -	<button label="Rebake regione" name="navmesh_btn" tool_tip="Fai clic per eseguire rebake sul navmesh della regione"/> -	<button label="Richiesta rebake" name="navmesh_btn_sending" tool_tip="Invio richiesta rebake al server."/> -	<button label="Rebake regione in corso" name="navmesh_btn_baking" tool_tip="Rebake della regione in corso.  Al termine, questo pulsante non sarà più visibile."/> -</panel> diff --git a/indra/newview/skins/default/xui/ja/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/ja/panel_navmesh_rebake.xml deleted file mode 100644 index ea3ec32424..0000000000 --- a/indra/newview/skins/default/xui/ja/panel_navmesh_rebake.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_navmesh_rebake"> -	<button label="地域の再構築" name="navmesh_btn" tool_tip="クリックしてこの地域のナビメッシュを再構築します。"/> -	<button label="再構築をリクエスト中" name="navmesh_btn_sending" tool_tip="再構築リクエストをサーバーに送信しています。"/> -	<button label="地域(リージョン)を再構築中" name="navmesh_btn_baking" tool_tip="地域を再構築しています。完了すると、このボタンは消えます。"/> -</panel> diff --git a/indra/newview/skins/default/xui/pt/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/pt/panel_navmesh_rebake.xml deleted file mode 100644 index aa885ae031..0000000000 --- a/indra/newview/skins/default/xui/pt/panel_navmesh_rebake.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_navmesh_rebake"> -	<button label="Recarregar região" name="navmesh_btn" tool_tip="Clique para recarregar o navmesh da região."/> -	<button label="Solicitando recarregamento" name="navmesh_btn_sending" tool_tip="Enviando solicitação de recarregamento para o servidor."/> -	<button label="A região está recarregando" name="navmesh_btn_baking" tool_tip="A região está sendo recarregada.  Este botão desaparecerá após a conclusão."/> -</panel> diff --git a/indra/newview/skins/default/xui/ru/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/ru/panel_navmesh_rebake.xml deleted file mode 100644 index fdc374a024..0000000000 --- a/indra/newview/skins/default/xui/ru/panel_navmesh_rebake.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_navmesh_rebake"> -	<button label="Восстановить регион" name="navmesh_btn" tool_tip="Восстановить навигационную сетку региона."/> -	<button label="Запрос на восстановление" name="navmesh_btn_sending" tool_tip="Отправка запроса на восстановление на сервер."/> -	<button label="Идет восстановление региона" name="navmesh_btn_baking" tool_tip="Идет восстановление региона.  Когда оно завершится, эта кнопка исчезнет."/> -</panel> diff --git a/indra/newview/skins/default/xui/tr/panel_navmesh_rebake.xml b/indra/newview/skins/default/xui/tr/panel_navmesh_rebake.xml deleted file mode 100644 index 78cb8bcc02..0000000000 --- a/indra/newview/skins/default/xui/tr/panel_navmesh_rebake.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<panel name="panel_navmesh_rebake"> -	<button label="Bölgeyi yeniden kaydet" name="navmesh_btn" tool_tip="Bölgenin navigasyon örgüsünü tekrar kaydetmek için tıkla."/> -	<button label="Yeniden kaydetme talep ediliyor" name="navmesh_btn_sending" tool_tip="Yeniden kaydetme talebi sunucuya gönderiliyor."/> -	<button label="Bölge yeniden kaydediliyor" name="navmesh_btn_baking" tool_tip="Bölge yeniden kaydediliyor.  Tamamlandığında bu düğme kaybolacak."/> -</panel> diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 86f978faf1..ea75d4f4f6 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1065,12 +1065,12 @@ class Linux_i686Manifest(LinuxManifest):              self.path("libaprutil-1.so")              self.path("libaprutil-1.so.0")              self.path("libaprutil-1.so.0.4.1") -            self.path("libboost_program_options-mt.so.1.48.0") -            self.path("libboost_regex-mt.so.1.48.0") -            self.path("libboost_thread-mt.so.1.48.0") -            self.path("libboost_filesystem-mt.so.1.48.0") -            self.path("libboost_signals-mt.so.1.48.0") -            self.path("libboost_system-mt.so.1.48.0") +            self.path("libboost_program_options-mt.so.*") +            self.path("libboost_regex-mt.so.*") +            self.path("libboost_thread-mt.so.*") +            self.path("libboost_filesystem-mt.so.*") +            self.path("libboost_signals-mt.so.*") +            self.path("libboost_system-mt.so.*")              self.path("libbreakpad_client.so.0.0.0")              self.path("libbreakpad_client.so.0")              self.path("libbreakpad_client.so") | 
