diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/cmake/Havok.cmake | 2 | ||||
| -rw-r--r-- | indra/newview/llfloaterpathfindinglinksets.cpp | 20 | ||||
| -rw-r--r-- | indra/newview/llfloaterpathfindinglinksets.h | 4 | ||||
| -rw-r--r-- | indra/newview/llpanelpathfindingrebakenavmesh.cpp | 15 | ||||
| -rw-r--r-- | indra/newview/llpanelpathfindingrebakenavmesh.h | 3 | ||||
| -rw-r--r-- | indra/newview/llselectmgr.cpp | 30 | ||||
| -rw-r--r-- | indra/newview/llselectmgr.h | 2 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml | 69 | 
9 files changed, 136 insertions, 11 deletions
| diff --git a/indra/cmake/Havok.cmake b/indra/cmake/Havok.cmake index 7e65efda68..3d63459f02 100644 --- a/indra/cmake/Havok.cmake +++ b/indra/cmake/Havok.cmake @@ -68,7 +68,7 @@ foreach(HAVOK_LIB ${HAVOK_LIBS})              file(GLOB extracted_debug "${debug_dir}/*.o")              file(GLOB extracted_release "${release_dir}/*.o") -            file(GLOB extracted_relwithdebinfo "${release_dir}/*.o") +            file(GLOB extracted_relwithdebinfo "${relwithdebinfo_dir}/*.o")              list(APPEND HK_DEBUG_LIBRARIES ${extracted_debug})              list(APPEND HK_RELEASE_LIBRARIES ${extracted_release})              list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${extracted_relwithdebinfo}) diff --git a/indra/newview/llfloaterpathfindinglinksets.cpp b/indra/newview/llfloaterpathfindinglinksets.cpp index 9516b4b0c1..bb0ac8f4b9 100644 --- a/indra/newview/llfloaterpathfindinglinksets.cpp +++ b/indra/newview/llfloaterpathfindinglinksets.cpp @@ -86,12 +86,16 @@ LLFloaterPathfindingLinksets::LLFloaterPathfindingLinksets(const LLSD& pSeed)  	mEditLinksetUseDynamicPhantom(NULL),  	mLabelWalkabilityCoefficients(NULL),  	mLabelEditA(NULL), +	mLabelSuggestedUseA(NULL),  	mEditA(NULL),  	mLabelEditB(NULL), +	mLabelSuggestedUseB(NULL),  	mEditB(NULL),  	mLabelEditC(NULL), +	mLabelSuggestedUseC(NULL),  	mEditC(NULL),  	mLabelEditD(NULL), +	mLabelSuggestedUseD(NULL),  	mEditD(NULL),  	mApplyEditsButton(NULL),  	mBeaconColor() @@ -158,6 +162,9 @@ BOOL LLFloaterPathfindingLinksets::postBuild()  	mLabelEditA = findChild<LLTextBase>("edit_a_label");  	llassert(mLabelEditA != NULL); +	mLabelSuggestedUseA = findChild<LLTextBase>("suggested_use_a_label"); +	llassert(mLabelSuggestedUseA != NULL); +  	mEditA = findChild<LLLineEditor>("edit_a_value");  	llassert(mEditA != NULL);  	mEditA->setPrevalidate(LLTextValidate::validateNonNegativeS32); @@ -166,6 +173,9 @@ BOOL LLFloaterPathfindingLinksets::postBuild()  	mLabelEditB = findChild<LLTextBase>("edit_b_label");  	llassert(mLabelEditB != NULL); +	mLabelSuggestedUseB = findChild<LLTextBase>("suggested_use_b_label"); +	llassert(mLabelSuggestedUseB != NULL); +  	mEditB = findChild<LLLineEditor>("edit_b_value");  	llassert(mEditB != NULL);  	mEditB->setPrevalidate(LLTextValidate::validateNonNegativeS32); @@ -174,6 +184,9 @@ BOOL LLFloaterPathfindingLinksets::postBuild()  	mLabelEditC = findChild<LLTextBase>("edit_c_label");  	llassert(mLabelEditC != NULL); +	mLabelSuggestedUseC = findChild<LLTextBase>("suggested_use_c_label"); +	llassert(mLabelSuggestedUseC != NULL); +  	mEditC = findChild<LLLineEditor>("edit_c_value");  	llassert(mEditC != NULL);  	mEditC->setPrevalidate(LLTextValidate::validateNonNegativeS32); @@ -182,6 +195,9 @@ BOOL LLFloaterPathfindingLinksets::postBuild()  	mLabelEditD = findChild<LLTextBase>("edit_d_label");  	llassert(mLabelEditD != NULL); +	mLabelSuggestedUseD = findChild<LLTextBase>("suggested_use_d_label"); +	llassert(mLabelSuggestedUseD != NULL); +  	mEditD = findChild<LLLineEditor>("edit_d_value");  	llassert(mEditD != NULL);  	mEditD->setPrevalidate(LLTextValidate::validateNonNegativeS32); @@ -500,6 +516,10 @@ void LLFloaterPathfindingLinksets::updateStateOnEditFields()  	mLabelEditB->setEnabled(isEditEnabled);  	mLabelEditC->setEnabled(isEditEnabled);  	mLabelEditD->setEnabled(isEditEnabled); +	mLabelSuggestedUseA->setEnabled(isEditEnabled); +	mLabelSuggestedUseB->setEnabled(isEditEnabled); +	mLabelSuggestedUseC->setEnabled(isEditEnabled); +	mLabelSuggestedUseD->setEnabled(isEditEnabled);  	mEditA->setEnabled(isEditEnabled);  	mEditB->setEnabled(isEditEnabled);  	mEditC->setEnabled(isEditEnabled); diff --git a/indra/newview/llfloaterpathfindinglinksets.h b/indra/newview/llfloaterpathfindinglinksets.h index a4631ffeb7..342a64fc77 100644 --- a/indra/newview/llfloaterpathfindinglinksets.h +++ b/indra/newview/llfloaterpathfindinglinksets.h @@ -115,12 +115,16 @@ private:  	LLScrollListItem *mEditLinksetUseDynamicPhantom;  	LLTextBase       *mLabelWalkabilityCoefficients;  	LLTextBase       *mLabelEditA; +	LLTextBase       *mLabelSuggestedUseA;  	LLLineEditor     *mEditA;  	LLTextBase       *mLabelEditB; +	LLTextBase       *mLabelSuggestedUseB;  	LLLineEditor     *mEditB;  	LLTextBase       *mLabelEditC; +	LLTextBase       *mLabelSuggestedUseC;  	LLLineEditor     *mEditC;  	LLTextBase       *mLabelEditD; +	LLTextBase       *mLabelSuggestedUseD;  	LLLineEditor     *mEditD;  	LLButton         *mApplyEditsButton; diff --git a/indra/newview/llpanelpathfindingrebakenavmesh.cpp b/indra/newview/llpanelpathfindingrebakenavmesh.cpp index 2c8c46c7bc..8df041f578 100644 --- a/indra/newview/llpanelpathfindingrebakenavmesh.cpp +++ b/indra/newview/llpanelpathfindingrebakenavmesh.cpp @@ -159,6 +159,11 @@ void LLPanelPathfindingRebakeNavmesh::setMode(ERebakeNavMeshMode pRebakeNavMeshM  	mRebakeNavMeshMode = pRebakeNavMeshMode;  } +LLPanelPathfindingRebakeNavmesh::ERebakeNavMeshMode LLPanelPathfindingRebakeNavmesh::getMode() const +{ +	return mRebakeNavMeshMode; +} +  void LLPanelPathfindingRebakeNavmesh::onNavMeshRebakeClick()  {  	setMode(kRebakeNavMesh_RequestSent); @@ -172,16 +177,14 @@ void LLPanelPathfindingRebakeNavmesh::handleAgentState(BOOL pCanRebakeRegion)  void LLPanelPathfindingRebakeNavmesh::handleRebakeNavMeshResponse(bool pResponseStatus)  { -	setMode(pResponseStatus ? kRebakeNavMesh_InProgress : kRebakeNavMesh_Default); -	if (!pResponseStatus) +	if (getMode() == kRebakeNavMesh_RequestSent)  	{ -		LLNotificationsUtil::add("PathfindingCannotRebakeNavmesh"); +		setMode(pResponseStatus ? kRebakeNavMesh_InProgress : kRebakeNavMesh_Default);  	} -	LLViewerRegion *currentRegion = gAgent.getRegion(); -	if (currentRegion != NULL) +	if (!pResponseStatus)  	{ -		LLPathfindingManager::getInstance()->requestGetNavMeshForRegion(currentRegion, true); +		LLNotificationsUtil::add("PathfindingCannotRebakeNavmesh");  	}  } diff --git a/indra/newview/llpanelpathfindingrebakenavmesh.h b/indra/newview/llpanelpathfindingrebakenavmesh.h index 5fe581ec2f..48764f2aa7 100644 --- a/indra/newview/llpanelpathfindingrebakenavmesh.h +++ b/indra/newview/llpanelpathfindingrebakenavmesh.h @@ -66,7 +66,8 @@ private:  	static LLPanelPathfindingRebakeNavmesh* getPanel(); -	void setMode(ERebakeNavMeshMode pRebakeNavMeshMode); +	void               setMode(ERebakeNavMeshMode pRebakeNavMeshMode); +	ERebakeNavMeshMode getMode() const;  	void onNavMeshRebakeClick(); diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 71ea5d80a9..b9449e806f 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -2787,6 +2787,36 @@ BOOL LLSelectMgr::selectGetRootsNonCharacter()  //----------------------------------------------------------------------------- +// selectGetEditableLinksets() - return TRUE if all objects are editable +//                               pathfinding linksets +//----------------------------------------------------------------------------- +BOOL LLSelectMgr::selectGetEditableLinksets() +{ +	for (LLObjectSelection::iterator iter = getSelection()->begin(); +		 iter != getSelection()->end(); iter++ ) +	{ +		LLSelectNode* node = *iter; +		LLViewerObject* object = node->getObject(); +		if( !object || !node->mValid ) +		{ +			return FALSE; +		} +		if (object->flagUsePhysics() || +			object->flagTemporaryOnRez() || +			object->flagCharacter() || +			object->flagAnimSource() || +			(!gAgent.isGodlike() &&  +			!gAgent.canManageEstate() && +			!object->permYouOwner() && +			!object->permMove())) +		{ +			return FALSE; +		} +	} +	return TRUE; +} + +//-----------------------------------------------------------------------------  // selectGetRootsTransfer() - return TRUE if current agent can transfer all  // selected root objects.  //----------------------------------------------------------------------------- diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h index bf40ab458f..feab6ebdf8 100644 --- a/indra/newview/llselectmgr.h +++ b/indra/newview/llselectmgr.h @@ -584,6 +584,8 @@ public:  	BOOL selectGetRootsNonCharacter();  	BOOL selectGetNonCharacter(); +	BOOL selectGetEditableLinksets(); +  	// returns TRUE if selected objects can be transferred.  	BOOL selectGetRootsTransfer(); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 06ffd2df92..3eb0538328 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -2804,7 +2804,7 @@ bool enable_object_build()  bool enable_object_select_in_pathfinding_linksets()  { -	return LLPathfindingManager::getInstance()->isPathfindingEnabledForCurrentRegion() &&  LLSelectMgr::getInstance()->selectGetNonCharacter(); +	return LLPathfindingManager::getInstance()->isPathfindingEnabledForCurrentRegion() && LLSelectMgr::getInstance()->selectGetEditableLinksets();  }  bool enable_object_select_in_pathfinding_characters() 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 833e5489ba..cd0f57be99 100644 --- a/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml @@ -3,9 +3,9 @@      open_positioning="cascading"      can_resize="true"      can_tear_off="false" -    height="382" +    height="395"      width="1015" -    min_height="382" +    min_height="395"      min_width="1015"      layout="topleft"      name="floater_pathfinding_linksets" @@ -428,6 +428,7 @@          top_pad="-19"          max_length_chars="3"          name="edit_a_value" +        tool_tip="Walkability for characters of type A.  Example character type is humanoid."          width="45" />      <text          height="13" @@ -455,6 +456,7 @@          top_pad="-19"          max_length_chars="3"          name="edit_b_value" +        tool_tip="Walkability for characters of type B.  Example character type is creature."          width="45" />      <text          height="13" @@ -482,6 +484,7 @@          top_pad="-19"          max_length_chars="3"          name="edit_c_value" +        tool_tip="Walkability for characters of type C.  Example character type is mechanical."          width="45" />      <text          height="13" @@ -509,6 +512,7 @@          top_pad="-19"          max_length_chars="3"          name="edit_d_value" +        tool_tip="Walkability for characters of type D.  Example character type is other."          width="45" />      <button          follows="right|bottom" @@ -519,5 +523,66 @@          top_pad="-21"          left_pad="40"          width="140"/> +    <text +        height="13" +        word_wrap="false" +        use_ellipses="false" +        type="string" +        text_color="LabelTextColor" +        text_readonly_color="LabelDisabledColor" +        name="suggested_use_a_label" +        length="1" +        follows="left|bottom" +        layout="topleft" +        left="363" +        top_pad="5" +        width="107"> +      (Humanoid) +    </text> +    <text +        height="13" +        word_wrap="false" +        use_ellipses="false" +        type="string" +        text_color="LabelTextColor" +        text_readonly_color="LabelDisabledColor" +        name="suggested_use_b_label" +        length="1" +        follows="left|bottom" +        layout="topleft" +        left_pad="0" +        width="107"> +      (Creature) +    </text> +    <text +        height="13" +        word_wrap="false" +        use_ellipses="false" +        type="string" +        text_color="LabelTextColor" +        text_readonly_color="LabelDisabledColor" +        name="suggested_use_c_label" +        length="1" +        follows="left|bottom" +        layout="topleft" +        left_pad="0" +        width="107"> +      (Mechanical) +    </text> +    <text +        height="13" +        word_wrap="false" +        use_ellipses="false" +        type="string" +        text_color="LabelTextColor" +        text_readonly_color="LabelDisabledColor" +        name="suggested_use_d_label" +        length="1" +        follows="left|bottom" +        layout="topleft" +        left_pad="0" +        width="107"> +      (Other) +    </text>    </panel>  </floater> | 
