From 518bc51e668570beeec5f13fd2f3cc4d28f66551 Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Mon, 27 Feb 2012 15:43:58 -0800 Subject: PATH-292: Adding better usability and warning notifications for the handling of locked linksets. --- indra/newview/llpathfindinglinkset.cpp | 66 ++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 26 deletions(-) (limited to 'indra/newview/llpathfindinglinkset.cpp') diff --git a/indra/newview/llpathfindinglinkset.cpp b/indra/newview/llpathfindinglinkset.cpp index 5f4389ffe1..33c66ff764 100644 --- a/indra/newview/llpathfindinglinkset.cpp +++ b/indra/newview/llpathfindinglinkset.cpp @@ -122,6 +122,46 @@ LLPathfindingLinkset& LLPathfindingLinkset::operator =(const LLPathfindingLinkse return *this; } +BOOL LLPathfindingLinkset::isPhantom() const +{ + return isPhantom(getLinksetUse()); +} + +BOOL LLPathfindingLinkset::isPhantom(ELinksetUse pLinksetUse) +{ + BOOL retVal; + + switch (pLinksetUse) + { + case kWalkable : + case kStaticObstacle : + case kDynamicObstacle : + retVal = false; + break; + case kMaterialVolume : + case kExclusionVolume : + case kDynamicPhantom : + retVal = true; + break; + case kUnknown : + default : + retVal = false; + llassert(0); + break; + } + + return retVal; +} + +LLPathfindingLinkset::ELinksetUse LLPathfindingLinkset::getLinksetUseWithToggledPhantom(ELinksetUse pLinksetUse) +{ + BOOL isPhantom = LLPathfindingLinkset::isPhantom(pLinksetUse); + BOOL isPermanent = LLPathfindingLinkset::isPermanent(pLinksetUse); + BOOL isWalkable = LLPathfindingLinkset::isWalkable(pLinksetUse); + + return getLinksetUse(!isPhantom, isPermanent, isWalkable); +} + LLSD LLPathfindingLinkset::encodeAlteredFields(ELinksetUse pLinksetUse, S32 pA, S32 pB, S32 pC, S32 pD) const { LLSD itemData; @@ -233,32 +273,6 @@ LLPathfindingLinkset::ELinksetUse LLPathfindingLinkset::getLinksetUse(bool pIsPh (pIsPermanent ? (pIsWalkable ? kWalkable : kStaticObstacle) : kDynamicObstacle)); } -BOOL LLPathfindingLinkset::isPhantom(ELinksetUse pLinksetUse) -{ - BOOL retVal; - - switch (pLinksetUse) - { - case kWalkable : - case kStaticObstacle : - case kDynamicObstacle : - retVal = false; - break; - case kMaterialVolume : - case kExclusionVolume : - case kDynamicPhantom : - retVal = true; - break; - case kUnknown : - default : - retVal = false; - llassert(0); - break; - } - - return retVal; -} - BOOL LLPathfindingLinkset::isPermanent(ELinksetUse pLinksetUse) { BOOL retVal; -- cgit v1.2.3