diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llfloaterpathfindingconsole.cpp | 43 | ||||
-rw-r--r-- | indra/newview/llfloaterpathfindingconsole.h | 4 |
2 files changed, 34 insertions, 13 deletions
diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp index f6eb40abdc..54e60ce0f4 100644 --- a/indra/newview/llfloaterpathfindingconsole.cpp +++ b/indra/newview/llfloaterpathfindingconsole.cpp @@ -50,6 +50,7 @@ #include "lltoolfocus.h" #include "pipeline.h" #include "llpathinglib.h" +#include "llviewerparcelmgr.h" #define XUI_RENDER_HEATMAP_NONE 0 #define XUI_RENDER_HEATMAP_A 1 @@ -101,8 +102,8 @@ BOOL LLFloaterPathfindingConsole::postBuild() mShowWorldCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowWorldSet, this)); mShowWorldMovablesOnlyCheckBox = findChild<LLCheckBoxCtrl>("show_world_movables_only"); - mShowWorldMovablesOnlyCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onRenderWorldMovablesOnly, this)); llassert(mShowWorldMovablesOnlyCheckBox != NULL); + mShowWorldMovablesOnlyCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowWorldMovablesOnlySet, this)); mShowNavMeshCheckBox = findChild<LLCheckBoxCtrl>("show_navmesh"); llassert(mShowNavMeshCheckBox != NULL); @@ -255,6 +256,11 @@ void LLFloaterPathfindingConsole::onOpen(const LLSD& pKey) mRegionBoundarySlot = LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLFloaterPathfindingConsole::onRegionBoundaryCross, this)); } + if (!mTeleportFailedSlot.connected()) + { + mTeleportFailedSlot = LLViewerParcelMgr::getInstance()->setTeleportFailedCallback(boost::bind(&LLFloaterPathfindingConsole::onRegionBoundaryCross, this)); + } + if (!mPathEventSlot.connected()) { mPathEventSlot = LLPathfindingPathTool::getInstance()->registerPathEventListener(boost::bind(&LLFloaterPathfindingConsole::onPathEvent, this)); @@ -279,6 +285,11 @@ void LLFloaterPathfindingConsole::onClose(bool pIsAppQuitting) mPathEventSlot.disconnect(); } + if (mTeleportFailedSlot.connected()) + { + mTeleportFailedSlot.disconnect(); + } + if (mRegionBoundarySlot.connected()) { mRegionBoundarySlot.disconnect(); @@ -513,6 +524,7 @@ LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed) mIsNavMeshUpdating(false), mAgentStateSlot(), mRegionBoundarySlot(), + mTeleportFailedSlot(), mPathEventSlot(), mPathfindingToolset(NULL), mSavedToolset(NULL), @@ -542,6 +554,12 @@ LLFloaterPathfindingConsole::~LLFloaterPathfindingConsole() void LLFloaterPathfindingConsole::onShowWorldSet() { setWorldRenderState(); + updateRenderablesObjects(); +} + +void LLFloaterPathfindingConsole::onShowWorldMovablesOnlySet() +{ + updateRenderablesObjects(); } void LLFloaterPathfindingConsole::onShowNavMeshSet() @@ -603,17 +621,6 @@ void LLFloaterPathfindingConsole::onClearPathClicked() clearPath(); } -void LLFloaterPathfindingConsole::onRenderWorldMovablesOnly() -{ - if ( mShowWorldMovablesOnlyCheckBox->get() ) - { - gPipeline.hidePermanentObjects( mRenderableRestoreList ); - } - else - { - cleanupRenderableRestoreItems(); - } -} void LLFloaterPathfindingConsole::onNavMeshZoneCB(LLPathfindingNavMeshZone::ENavMeshZoneRequestStatus pNavMeshZoneRequestStatus) { switch (pNavMeshZoneRequestStatus) @@ -737,6 +744,18 @@ void LLFloaterPathfindingConsole::setNavMeshRenderState() mShowNavMeshWalkabilityComboBox->setEnabled(renderNavMesh); } +void LLFloaterPathfindingConsole::updateRenderablesObjects() +{ + if ( isRenderWorldMovablesOnly() ) + { + gPipeline.hidePermanentObjects( mRenderableRestoreList ); + } + else + { + cleanupRenderableRestoreItems(); + } +} + void LLFloaterPathfindingConsole::updateControlsOnConsoleState() { switch (mConsoleState) diff --git a/indra/newview/llfloaterpathfindingconsole.h b/indra/newview/llfloaterpathfindingconsole.h index 348deeed00..edbeae2012 100644 --- a/indra/newview/llfloaterpathfindingconsole.h +++ b/indra/newview/llfloaterpathfindingconsole.h @@ -116,6 +116,7 @@ private: virtual ~LLFloaterPathfindingConsole(); void onShowWorldSet(); + void onShowWorldMovablesOnlySet(); void onShowNavMeshSet(); void onShowWalkabilitySet(); void onViewCharactersClicked(); @@ -126,7 +127,6 @@ private: void onCharacterWidthSet(); void onCharacterTypeSwitch(); void onClearPathClicked(); - void onRenderWorldMovablesOnly(); void onNavMeshZoneCB(LLPathfindingNavMeshZone::ENavMeshZoneRequestStatus pNavMeshZoneRequestStatus); void onAgentStateCB(LLPathfindingManager::EAgentState pAgentState); @@ -137,6 +137,7 @@ private: void setConsoleState(EConsoleState pConsoleState); void setWorldRenderState(); void setNavMeshRenderState(); + void updateRenderablesObjects(); void updateControlsOnConsoleState(); void updateStatusOnConsoleState(); @@ -201,6 +202,7 @@ private: LLPathfindingManager::agent_state_slot_t mAgentStateSlot; boost::signals2::connection mRegionBoundarySlot; + boost::signals2::connection mTeleportFailedSlot; LLPathfindingPathTool::path_event_slot_t mPathEventSlot; LLToolset *mPathfindingToolset; |