diff options
| author | Todd Stinson <stinson@lindenlab.com> | 2012-02-27 17:43:16 -0800 | 
|---|---|---|
| committer | Todd Stinson <stinson@lindenlab.com> | 2012-02-27 17:43:16 -0800 | 
| commit | 10ab7acd3a9f62c0dfd2c91990f528ae3598010a (patch) | |
| tree | 13bd5899d54d6be5745d88cc7b48c5644bd720ba | |
| parent | e86547d6248c50bdf3e962c82c38dc3612b31d54 (diff) | |
PATH-292: Ensuring that the terrain linkset use is clearly called out as unmodifiable.
| -rw-r--r-- | indra/newview/llfloaterpathfindinglinksets.cpp | 39 | ||||
| -rw-r--r-- | indra/newview/llfloaterpathfindinglinksets.h | 3 | ||||
| -rw-r--r-- | indra/newview/llpathfindinglinkset.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llpathfindinglinkset.h | 4 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml | 3 | 
5 files changed, 42 insertions, 19 deletions
diff --git a/indra/newview/llfloaterpathfindinglinksets.cpp b/indra/newview/llfloaterpathfindinglinksets.cpp index 17ac1bd052..9b86ecd66a 100644 --- a/indra/newview/llfloaterpathfindinglinksets.cpp +++ b/indra/newview/llfloaterpathfindinglinksets.cpp @@ -642,6 +642,14 @@ void LLFloaterPathfindingLinksets::updateEditFieldValues()  			mEditLinksetUseExclusionVolume->setEnabled(TRUE);
  			mEditLinksetUseDynamicPhantom->setEnabled(TRUE);
  			break;
 +		case kAllowLinksetUseOnlyTerrain :
 +			mEditLinksetUseWalkable->setEnabled(TRUE);
 +			mEditLinksetUseStaticObstacle->setEnabled(FALSE);
 +			mEditLinksetUseDynamicObstacle->setEnabled(FALSE);
 +			mEditLinksetUseMaterialVolume->setEnabled(FALSE);
 +			mEditLinksetUseExclusionVolume->setEnabled(FALSE);
 +			mEditLinksetUseDynamicPhantom->setEnabled(FALSE);
 +			break;
  		default : 
  			llassert(0);
  			break;
 @@ -759,9 +767,13 @@ LLSD LLFloaterPathfindingLinksets::buildLinksetScrollListElement(const LLPathfin  	columns[4]["column"] = "linkset_use";
  	std::string linksetUse = getLinksetUseString(pLinksetPtr->getLinksetUse());
 -	if (pLinksetPtr->isLocked())
 +	if (pLinksetPtr->isTerrain())
  	{
 -		linksetUse += (" " + getString("linkset_is_locked_state"));
 +		linksetUse += (" " + getString("linkset_is_terrain"));
 +	}
 +	else if (!pLinksetPtr->isModifiable())
 +	{
 +		linksetUse += (" " + getString("linkset_is_restricted_state"));
  	}
  	columns[4]["value"] = linksetUse;
  	columns[4]["font"] = "SANSSERIF";
 @@ -815,6 +827,7 @@ LLFloaterPathfindingLinksets::EAllowLinksetsUse LLFloaterPathfindingLinksets::ge  		bool isAllLocked = true;
  		bool isAllPhantom = true;
  		bool isAllNonPhantom = true;
 +		bool isAllTerrain = true;
  		for (std::vector<LLScrollListItem*>::const_iterator selectedItemIter = selectedItems.begin();
  			(isAllLocked || isAllPhantom || isAllNonPhantom) && (selectedItemIter != selectedItems.end()); ++selectedItemIter)
 @@ -824,7 +837,11 @@ LLFloaterPathfindingLinksets::EAllowLinksetsUse LLFloaterPathfindingLinksets::ge  			LLPathfindingLinksetList::const_iterator linksetIter = mLinksetsListPtr->find(selectedItem->getUUID().asString());
  			llassert(linksetIter != mLinksetsListPtr->end());
  			const LLPathfindingLinksetPtr linksetPtr = linksetIter->second;
 -			if (linksetPtr->isLocked())
 +			if (!linksetPtr->isTerrain())
 +			{
 +				isAllTerrain = false;
 +			}
 +			if (!linksetPtr->isModifiable())
  			{
  				if (linksetPtr->isPhantom())
  				{
 @@ -841,7 +858,11 @@ LLFloaterPathfindingLinksets::EAllowLinksetsUse LLFloaterPathfindingLinksets::ge  			}
  		}
 -		if (isAllLocked)
 +		if (isAllTerrain)
 +		{
 +			allowLinksetUse = kAllowLinksetUseOnlyTerrain;
 +		}
 +		else if (isAllLocked)
  		{
  			if (isAllPhantom && !isAllNonPhantom)
  			{
 @@ -874,7 +895,7 @@ bool LLFloaterPathfindingLinksets::doShowLinksetUseSetWarning(LLPathfindingLinks  				LLPathfindingLinksetList::const_iterator linksetIter = mLinksetsListPtr->find(selectedItem->getUUID().asString());
  				llassert(linksetIter != mLinksetsListPtr->end());
  				const LLPathfindingLinksetPtr linksetPtr = linksetIter->second;
 -				showWarning = (linksetPtr->isLocked() && (linksetPtr->isPhantom() != LLPathfindingLinkset::isPhantom(linksetUse)));
 +				showWarning = (!linksetPtr->isModifiable() && (linksetPtr->isPhantom() != LLPathfindingLinkset::isPhantom(linksetUse)));
  			}
  		}
  	}
 @@ -1024,10 +1045,10 @@ void LLFloaterPathfindingLinksets::applyEdit()  void LLFloaterPathfindingLinksets::handleApplyEdit(const LLSD &pNotification, const LLSD &pResponse)
  {
 -	if (LLNotificationsUtil::getSelectedOption(pNotification, pResponse) == 0) -	{ -		doApplyEdit(); -	} +	if (LLNotificationsUtil::getSelectedOption(pNotification, pResponse) == 0)
 +	{
 +		doApplyEdit();
 +	}
  }
  void LLFloaterPathfindingLinksets::doApplyEdit()
 diff --git a/indra/newview/llfloaterpathfindinglinksets.h b/indra/newview/llfloaterpathfindinglinksets.h index b6e5ca8329..6432652568 100644 --- a/indra/newview/llfloaterpathfindinglinksets.h +++ b/indra/newview/llfloaterpathfindinglinksets.h @@ -79,7 +79,8 @@ private:  	{
  		kAllowLinksetUseAll,
  		kAllowLinksetUseOnlyNonPhantom,
 -		kAllowLinksetUseOnlyPhantom
 +		kAllowLinksetUseOnlyPhantom,
 +		kAllowLinksetUseOnlyTerrain
  	} EAllowLinksetsUse;
  	LLLineEditor     *mFilterByName;
 diff --git a/indra/newview/llpathfindinglinkset.cpp b/indra/newview/llpathfindinglinkset.cpp index 33c66ff764..1578494241 100644 --- a/indra/newview/llpathfindinglinkset.cpp +++ b/indra/newview/llpathfindinglinkset.cpp @@ -58,7 +58,7 @@ LLPathfindingLinkset::LLPathfindingLinkset(const LLSD& pTerrainLinksetItem)  	mDescription(),
  	mLandImpact(0U),
  	mLocation(LLVector3::zero),
 -	mIsLocked(TRUE),
 +	mIsModifiable(TRUE),
  	mLinksetUse(kUnknown),
  	mWalkabilityCoefficientA(MIN_WALKABILITY_VALUE),
  	mWalkabilityCoefficientB(MIN_WALKABILITY_VALUE),
 @@ -75,7 +75,7 @@ LLPathfindingLinkset::LLPathfindingLinkset(const std::string &pUUID, const LLSD&  	mDescription(),
  	mLandImpact(0U),
  	mLocation(LLVector3::zero),
 -	mIsLocked(FALSE),
 +	mIsModifiable(TRUE),
  	mLinksetUse(kUnknown),
  	mWalkabilityCoefficientA(MIN_WALKABILITY_VALUE),
  	mWalkabilityCoefficientB(MIN_WALKABILITY_VALUE),
 @@ -92,7 +92,7 @@ LLPathfindingLinkset::LLPathfindingLinkset(const LLPathfindingLinkset& pOther)  	mDescription(pOther.mDescription),
  	mLandImpact(pOther.mLandImpact),
  	mLocation(pOther.mLocation),
 -	mIsLocked(pOther.mIsLocked),
 +	mIsModifiable(pOther.mIsModifiable),
  	mLinksetUse(pOther.mLinksetUse),
  	mWalkabilityCoefficientA(pOther.mWalkabilityCoefficientA),
  	mWalkabilityCoefficientB(pOther.mWalkabilityCoefficientB),
 @@ -112,7 +112,7 @@ LLPathfindingLinkset& LLPathfindingLinkset::operator =(const LLPathfindingLinkse  	mDescription = pOther.mDescription;
  	mLandImpact = pOther.mLandImpact;
  	mLocation = pOther.mLocation;
 -	mIsLocked = pOther.mIsLocked;
 +	mIsModifiable = pOther.mIsModifiable;
  	mLinksetUse = pOther.mLinksetUse;
  	mWalkabilityCoefficientA = pOther.mWalkabilityCoefficientA;
  	mWalkabilityCoefficientB = pOther.mWalkabilityCoefficientB;
 @@ -168,7 +168,7 @@ LLSD LLPathfindingLinkset::encodeAlteredFields(ELinksetUse pLinksetUse, S32 pA,  	if (!isTerrain() && (pLinksetUse != kUnknown) && (mLinksetUse != pLinksetUse))
  	{
 -		if (!mIsLocked)
 +		if (mIsModifiable)
  		{
  			itemData[LINKSET_PHANTOM_FIELD] = static_cast<bool>(LLPathfindingLinkset::isPhantom(pLinksetUse));
  		}
 @@ -216,7 +216,7 @@ void LLPathfindingLinkset::parseObjectData(const LLSD &pLinksetItem)  	llassert(pLinksetItem.has(LINKSET_MODIFIABLE_FIELD));
  	llassert(pLinksetItem.get(LINKSET_MODIFIABLE_FIELD).isBoolean());
 -	mIsLocked = !pLinksetItem.get(LINKSET_MODIFIABLE_FIELD).asBoolean();
 +	mIsModifiable = pLinksetItem.get(LINKSET_MODIFIABLE_FIELD).asBoolean();
  	llassert(pLinksetItem.has(LINKSET_POSITION_FIELD));
  	llassert(pLinksetItem.get(LINKSET_POSITION_FIELD).isArray());
 diff --git a/indra/newview/llpathfindinglinkset.h b/indra/newview/llpathfindinglinkset.h index a9b389b484..81acad7d4d 100644 --- a/indra/newview/llpathfindinglinkset.h +++ b/indra/newview/llpathfindinglinkset.h @@ -65,7 +65,7 @@ public:  	inline const std::string& getDescription() const              {return mDescription;};
  	inline U32                getLandImpact() const               {return mLandImpact;};
  	inline const LLVector3&   getLocation() const                 {return mLocation;};
 -	BOOL                      isLocked() const                    {return mIsLocked;};
 +	BOOL                      isModifiable() const                {return mIsModifiable;};
  	BOOL                      isPhantom() const;
  	static BOOL               isPhantom(ELinksetUse pLinksetUse);
  	static ELinksetUse        getLinksetUseWithToggledPhantom(ELinksetUse pLinksetUse);
 @@ -97,7 +97,7 @@ private:  	std::string  mDescription;
  	U32          mLandImpact;
  	LLVector3    mLocation;
 -	BOOL         mIsLocked;
 +	BOOL         mIsModifiable;
  	ELinksetUse  mLinksetUse;
  	S32          mWalkabilityCoefficientA;
  	S32          mWalkabilityCoefficientB;
 diff --git a/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml index e8cfcd30a6..15583ea0c3 100644 --- a/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml @@ -32,7 +32,8 @@    <floater.string name="linkset_use_material_volume">Material volume</floater.string>    <floater.string name="linkset_use_exclusion_volume">Exclusion volume</floater.string>    <floater.string name="linkset_use_dynamic_phantom">Dynamic phantom</floater.string> -  <floater.string name="linkset_is_locked_state">[restricted]</floater.string> +  <floater.string name="linkset_is_terrain">[unmodifiable]</floater.string> +  <floater.string name="linkset_is_restricted_state">[restricted]</floater.string>    <floater.string name="linkset_choose_use">Choose linkset use...</floater.string>    <panel        border="false"  | 
