BUGFIX: Correcting a crash issue that was caused by the rebake navmesh callback handler unexpectedly changing the navmesh state.

meow-7.2.2
Todd Stinson 2012-07-09 13:29:50 -07:00
parent 7a61717d87
commit d7f372d6be
3 changed files with 13 additions and 9 deletions

View File

@ -22,7 +22,7 @@ find_library(LL_PHYSICS_RELWITHDEBINFO_LIB ${LLPHYSICS_EXTENSIONS_LIB_NAME} PATH
set(LLPHYSICS_LIBRARIES
debug ${LL_PHYSICS_DEBUG_LIB}
optimized ${LL_PHYSICS_RELEASE_LIB}
optimized ${LL_PHYSICS_RELWITHDEBINFO_LIB}
)
if (LINUX)

View File

@ -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,17 +177,15 @@ void LLPanelPathfindingRebakeNavmesh::handleAgentState(BOOL pCanRebakeRegion)
void LLPanelPathfindingRebakeNavmesh::handleRebakeNavMeshResponse(bool pResponseStatus)
{
setMode(pResponseStatus ? kRebakeNavMesh_InProgress : kRebakeNavMesh_Default);
if (getMode() == kRebakeNavMesh_RequestSent)
{
setMode(pResponseStatus ? kRebakeNavMesh_InProgress : kRebakeNavMesh_Default);
}
if (!pResponseStatus)
{
LLNotificationsUtil::add("PathfindingCannotRebakeNavmesh");
}
LLViewerRegion *currentRegion = gAgent.getRegion();
if (currentRegion != NULL)
{
LLPathfindingManager::getInstance()->requestGetNavMeshForRegion(currentRegion, true);
}
}
void LLPanelPathfindingRebakeNavmesh::handleNavMeshStatus(const LLPathfindingNavMeshStatus &pNavMeshStatus)

View File

@ -66,7 +66,8 @@ private:
static LLPanelPathfindingRebakeNavmesh* getPanel();
void setMode(ERebakeNavMeshMode pRebakeNavMeshMode);
void setMode(ERebakeNavMeshMode pRebakeNavMeshMode);
ERebakeNavMeshMode getMode() const;
void onNavMeshRebakeClick();