summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelnavmeshrebake.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpanelnavmeshrebake.cpp')
-rw-r--r--indra/newview/llpanelnavmeshrebake.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/indra/newview/llpanelnavmeshrebake.cpp b/indra/newview/llpanelnavmeshrebake.cpp
index 608bfbf776..0cc0d6c50a 100644
--- a/indra/newview/llpanelnavmeshrebake.cpp
+++ b/indra/newview/llpanelnavmeshrebake.cpp
@@ -57,12 +57,14 @@ LLPanelNavMeshRebake* LLPanelNavMeshRebake::getInstance()
BOOL LLPanelNavMeshRebake::postBuild()
{
//Rebake initiated
- mNavMeshRebakeButton = getChild<LLButton>("navmesh_btn");
+ mNavMeshRebakeButton = findChild<LLButton>("navmesh_btn");
+ llassert(mNavMeshRebakeButton != NULL);
mNavMeshRebakeButton->setCommitCallback(boost::bind(&LLPanelNavMeshRebake::onNavMeshRebakeClick, this));
LLHints::registerHintTarget("navmesh_btn", mNavMeshRebakeButton->getHandle());
//Baking...
- mNavMeshBakingButton = getChild<LLButton>("navmesh_btn_baking");
+ mNavMeshBakingButton = findChild<LLButton>("navmesh_btn_baking");
+ llassert(mNavMeshBakingButton != NULL);
LLHints::registerHintTarget("navmesh_btn_baking", mNavMeshBakingButton->getHandle());
setMode(kRebakeNavMesh_Default);
@@ -133,7 +135,13 @@ void LLPanelNavMeshRebake::onNavMeshRebakeClick()
mNavMeshBakingButton->setVisible( TRUE );
mNavMeshBakingButton->setForcePressedState( TRUE );
#endif
- LLPathfindingManager::getInstance()->triggerNavMeshRebuild();
+ setMode(kRebakeNavMesh_RequestSent);
+ LLPathfindingManager::getInstance()->requestRebakeNavMesh(boost::bind(&LLPanelNavMeshRebake::handleRebakeNavMeshResponse, this, _1));
+}
+
+void LLPanelNavMeshRebake::handleRebakeNavMeshResponse(bool pResponseStatus)
+{
+ setMode(pResponseStatus ? kRebakeNavMesh_NotAvailable : kRebakeNavMesh_Available);
}
void LLPanelNavMeshRebake::handleNavMeshStatus(const LLPathfindingNavMeshStatus &pNavMeshStatus)