summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterpathfindingconsole.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloaterpathfindingconsole.cpp')
-rw-r--r--indra/newview/llfloaterpathfindingconsole.cpp372
1 files changed, 126 insertions, 246 deletions
diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp
index 54e60ce0f4..298454724b 100644
--- a/indra/newview/llfloaterpathfindingconsole.cpp
+++ b/indra/newview/llfloaterpathfindingconsole.cpp
@@ -1,56 +1,61 @@
/**
* @file llfloaterpathfindingconsole.cpp
-* @author William Todd Stinson
-* @brief "Pathfinding console" floater, allowing manipulation of the Havok AI pathfinding settings.
+* @brief "Pathfinding console" floater, allowing for viewing and testing of the pathfinding navmesh through Havok AI utilities.
+* @author Stinson@lindenlab.com
*
-* $LicenseInfo:firstyear=2002&license=viewerlgpl$
+* $LicenseInfo:firstyear=2012&license=viewerlgpl$
* Second Life Viewer Source Code
-* Copyright (C) 2010, Linden Research, Inc.
-*
+* Copyright (C) 2012, Linden Research, Inc.
+*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
-*
+*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
-*
+*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-*
+*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
+
#include "llviewerprecompiledheaders.h"
+
#include "llfloaterpathfindingconsole.h"
-#include "llfloaterpathfindinglinksets.h"
-#include "llfloaterpathfindingcharacters.h"
-#include "llsd.h"
-#include "llhandle.h"
-#include "llcontrol.h"
-#include "llpanel.h"
+#include <vector>
+
+#include <boost/signals2.hpp>
+
#include "llbutton.h"
#include "llcheckboxctrl.h"
-#include "llsliderctrl.h"
-#include "lllineeditor.h"
-#include "lltextbase.h"
-#include "lltabcontainer.h"
#include "llcombobox.h"
+#include "llcontrol.h"
+#include "llenvmanager.h"
+#include "llfloaterpathfindingcharacters.h"
+#include "llfloaterpathfindinglinksets.h"
#include "llfloaterreg.h"
+#include "llhandle.h"
+#include "llpanel.h"
#include "llpathfindingnavmeshzone.h"
-#include "llpathfindingmanager.h"
-#include "llenvmanager.h"
#include "llpathfindingpathtool.h"
+#include "llpathinglib.h"
+#include "llsliderctrl.h"
+#include "llsd.h"
+#include "lltabcontainer.h"
+#include "lltextbase.h"
#include "lltoolmgr.h"
#include "lltoolfocus.h"
-#include "pipeline.h"
-#include "llpathinglib.h"
+#include "llviewercontrol.h"
#include "llviewerparcelmgr.h"
+#include "pipeline.h"
#define XUI_RENDER_HEATMAP_NONE 0
#define XUI_RENDER_HEATMAP_A 1
@@ -64,12 +69,12 @@
#define XUI_CHARACTER_TYPE_C 3
#define XUI_CHARACTER_TYPE_D 4
-#define XUI_EDIT_TAB_INDEX 0
+#define XUI_VIEW_TAB_INDEX 0
#define XUI_TEST_TAB_INDEX 1
#define SET_SHAPE_RENDER_FLAG(_flag,_type) _flag |= (1U << _type)
-#define CONTROL_NAME_RETRIEVE_NEIGHBOR "RetrieveNeighboringRegion"
+#define CONTROL_NAME_RETRIEVE_NEIGHBOR "PathfindingRetrieveNeighboringRegion"
#define CONTROL_NAME_WALKABLE_OBJECTS "PathfindingWalkable"
#define CONTROL_NAME_STATIC_OBSTACLE_OBJECTS "PathfindingObstacle"
#define CONTROL_NAME_MATERIAL_VOLUMES "PathfindingMaterial"
@@ -79,21 +84,26 @@
#define CONTROL_NAME_HEATMAP_MIN "PathfindingHeatColorBase"
#define CONTROL_NAME_HEATMAP_MAX "PathfindingHeatColorMax"
#define CONTROL_NAME_NAVMESH_FACE "PathfindingFaceColor"
-#define CONTROL_NAME_TEST_PATH_VALID_END "PathfindingStarValidColor"
-#define CONTROL_NAME_TEST_PATH_INVALID_END "PathfindingStarInvalidColor"
+#define CONTROL_NAME_TEST_PATH_VALID_END "PathfindingTestPathValidEndColor"
+#define CONTROL_NAME_TEST_PATH_INVALID_END "PathfindingTestPathInvalidEndColor"
#define CONTROL_NAME_TEST_PATH "PathfindingTestPathColor"
#define CONTROL_NAME_WATER "PathfindingWaterColor"
LLHandle<LLFloaterPathfindingConsole> LLFloaterPathfindingConsole::sInstanceHandle;
-extern LLPipeline gPipeline;
-
//---------------------------------------------------------------------------
// LLFloaterPathfindingConsole
//---------------------------------------------------------------------------
BOOL LLFloaterPathfindingConsole::postBuild()
{
+ mViewTestTabContainer = findChild<LLTabContainer>("view_test_tab_container");
+ llassert(mViewTestTabContainer != NULL);
+ mViewTestTabContainer->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onTabSwitch, this));
+
+ mViewTab = findChild<LLPanel>("view_panel");
+ llassert(mViewTab != NULL);
+
mShowLabel = findChild<LLTextBase>("show_label");
llassert(mShowLabel != NULL);
@@ -134,41 +144,9 @@ BOOL LLFloaterPathfindingConsole::postBuild()
mShowXRayCheckBox = findChild<LLCheckBoxCtrl>("show_xray");
llassert(mShowXRayCheckBox != NULL);
- mViewCharactersButton = findChild<LLButton>("view_characters_floater");
- llassert(mViewCharactersButton != NULL);
- mViewCharactersButton->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onViewCharactersClicked, this));
-
- mEditTestTabContainer = findChild<LLTabContainer>("edit_test_tab_container");
- llassert(mEditTestTabContainer != NULL);
- mEditTestTabContainer->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onTabSwitch, this));
-
- mEditTab = findChild<LLPanel>("edit_panel");
- llassert(mEditTab != NULL);
-
mTestTab = findChild<LLPanel>("test_panel");
llassert(mTestTab != NULL);
- mUnfreezeLabel = findChild<LLTextBase>("unfreeze_label");
- llassert(mUnfreezeLabel != NULL);
-
- mUnfreezeButton = findChild<LLButton>("enter_unfrozen_mode");
- llassert(mUnfreezeButton != NULL);
- mUnfreezeButton->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onUnfreezeClicked, this));
-
- mLinksetsLabel = findChild<LLTextBase>("edit_linksets_label");
- llassert(mLinksetsLabel != NULL);
-
- mLinksetsButton = findChild<LLButton>("view_and_edit_linksets");
- llassert(mLinksetsButton != NULL);
- mLinksetsButton->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onViewEditLinksetClicked, this));
-
- mFreezeLabel = findChild<LLTextBase>("freeze_label");
- llassert(mFreezeLabel != NULL);
-
- mFreezeButton = findChild<LLButton>("enter_frozen_mode");
- llassert(mFreezeButton != NULL);
- mFreezeButton->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onFreezeClicked, this));
-
mPathfindingViewerStatus = findChild<LLTextBase>("pathfinding_viewer_status");
llassert(mPathfindingViewerStatus != NULL);
@@ -205,10 +183,8 @@ BOOL LLFloaterPathfindingConsole::postBuild()
llassert(mClearPathButton != NULL);
mClearPathButton->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onClearPathClicked, this));
- if (LLPathingLib::getInstance() == NULL)
- {
- LLPathingLib::initSystem();
- }
+ mErrorColor = LLUIColorTable::instance().getColor("PathfindingErrorColor");
+ mWarningColor = LLUIColorTable::instance().getColor("PathfindingWarningColor");
if (LLPathingLib::getInstance() != NULL)
{
@@ -237,7 +213,7 @@ void LLFloaterPathfindingConsole::onOpen(const LLSD& pKey)
{
if (!mNavMeshZoneSlot.connected())
{
- mNavMeshZoneSlot = mNavMeshZone.registerNavMeshZoneListener(boost::bind(&LLFloaterPathfindingConsole::onNavMeshZoneCB, this, _1));
+ mNavMeshZoneSlot = mNavMeshZone.registerNavMeshZoneListener(boost::bind(&LLFloaterPathfindingConsole::handleNavMeshZoneStatus, this, _1));
}
mIsNavMeshUpdating = false;
@@ -246,11 +222,6 @@ void LLFloaterPathfindingConsole::onOpen(const LLSD& pKey)
fillInColorsForNavMeshVisualization();
}
- if (!mAgentStateSlot.connected())
- {
- mAgentStateSlot = LLPathfindingManager::getInstance()->registerAgentStateListener(boost::bind(&LLFloaterPathfindingConsole::onAgentStateCB, this, _1));
- }
-
if (!mRegionBoundarySlot.connected())
{
mRegionBoundarySlot = LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLFloaterPathfindingConsole::onRegionBoundaryCross, this));
@@ -266,11 +237,10 @@ void LLFloaterPathfindingConsole::onOpen(const LLSD& pKey)
mPathEventSlot = LLPathfindingPathTool::getInstance()->registerPathEventListener(boost::bind(&LLFloaterPathfindingConsole::onPathEvent, this));
}
- setAgentState(LLPathfindingManager::getInstance()->getAgentState());
setDefaultInputs();
updatePathTestStatus();
- if (mEditTestTabContainer->getCurrentPanelIndex() == XUI_TEST_TAB_INDEX)
+ if (mViewTestTabContainer->getCurrentPanelIndex() == XUI_TEST_TAB_INDEX)
{
switchIntoTestPathMode();
}
@@ -295,11 +265,6 @@ void LLFloaterPathfindingConsole::onClose(bool pIsAppQuitting)
mRegionBoundarySlot.disconnect();
}
- if (mAgentStateSlot.connected())
- {
- mAgentStateSlot.disconnect();
- }
-
if (mNavMeshZoneSlot.connected())
{
mNavMeshZoneSlot.disconnect();
@@ -314,6 +279,7 @@ void LLFloaterPathfindingConsole::onClose(bool pIsAppQuitting)
setDefaultInputs();
setConsoleState(kConsoleStateUnknown);
cleanupRenderableRestoreItems();
+
LLFloater::onClose(pIsAppQuitting);
}
@@ -321,7 +287,7 @@ LLHandle<LLFloaterPathfindingConsole> LLFloaterPathfindingConsole::getInstanceHa
{
if (sInstanceHandle.isDead())
{
- LLFloaterPathfindingConsole *floaterInstance = LLFloaterReg::getTypedInstance<LLFloaterPathfindingConsole>("pathfinding_console");
+ LLFloaterPathfindingConsole *floaterInstance = LLFloaterReg::findTypedInstance<LLFloaterPathfindingConsole>("pathfinding_console");
if (floaterInstance != NULL)
{
sInstanceHandle = floaterInstance->mSelfHandle;
@@ -486,11 +452,13 @@ void LLFloaterPathfindingConsole::setRenderHeatmapType(LLPathingLib::LLPLCharact
LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed)
: LLFloater(pSeed),
mSelfHandle(),
- mShowLabel(),
+ mViewTestTabContainer(NULL),
+ mViewTab(NULL),
+ mShowLabel(NULL),
mShowWorldCheckBox(NULL),
mShowWorldMovablesOnlyCheckBox(NULL),
mShowNavMeshCheckBox(NULL),
- mShowNavMeshWalkabilityLabel(),
+ mShowNavMeshWalkabilityLabel(NULL),
mShowNavMeshWalkabilityComboBox(NULL),
mShowWalkablesCheckBox(NULL),
mShowStaticObstaclesCheckBox(NULL),
@@ -500,16 +468,7 @@ LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed)
mShowXRayCheckBox(NULL),
mPathfindingViewerStatus(NULL),
mPathfindingSimulatorStatus(NULL),
- mViewCharactersButton(NULL),
- mEditTestTabContainer(NULL),
- mEditTab(NULL),
mTestTab(NULL),
- mUnfreezeLabel(NULL),
- mUnfreezeButton(NULL),
- mLinksetsLabel(NULL),
- mLinksetsButton(NULL),
- mFreezeLabel(NULL),
- mFreezeButton(NULL),
mCtrlClickLabel(),
mShiftClickLabel(),
mCharacterWidthLabel(),
@@ -519,10 +478,11 @@ LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed)
mCharacterTypeComboBox(NULL),
mPathTestingStatus(NULL),
mClearPathButton(NULL),
+ mErrorColor(),
+ mWarningColor(),
mNavMeshZoneSlot(),
mNavMeshZone(),
mIsNavMeshUpdating(false),
- mAgentStateSlot(),
mRegionBoundarySlot(),
mTeleportFailedSlot(),
mPathEventSlot(),
@@ -540,9 +500,10 @@ LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed)
mSavedSettingNavMeshFaceSlot(),
mSavedSettingTestPathValidEndSlot(),
mSavedSettingTestPathInvalidEndSlot(),
- mSavedSettingWaterSlot(),
mSavedSettingTestPathSlot(),
- mConsoleState(kConsoleStateUnknown)
+ mSavedSettingWaterSlot(),
+ mConsoleState(kConsoleStateUnknown),
+ mRenderableRestoreList()
{
mSelfHandle.bind(this);
}
@@ -551,6 +512,18 @@ LLFloaterPathfindingConsole::~LLFloaterPathfindingConsole()
{
}
+void LLFloaterPathfindingConsole::onTabSwitch()
+{
+ if (mViewTestTabContainer->getCurrentPanelIndex() == XUI_TEST_TAB_INDEX)
+ {
+ switchIntoTestPathMode();
+ }
+ else
+ {
+ switchOutOfTestPathMode();
+ }
+}
+
void LLFloaterPathfindingConsole::onShowWorldSet()
{
setWorldRenderState();
@@ -569,43 +542,12 @@ void LLFloaterPathfindingConsole::onShowNavMeshSet()
void LLFloaterPathfindingConsole::onShowWalkabilitySet()
{
- LLPathingLib::getInstance()->setNavMeshMaterialType(getRenderHeatmapType());
-}
-
-void LLFloaterPathfindingConsole::onViewCharactersClicked()
-{
- LLFloaterPathfindingCharacters::openCharactersViewer();
-}
-
-void LLFloaterPathfindingConsole::onTabSwitch()
-{
- if (mEditTestTabContainer->getCurrentPanelIndex() == XUI_TEST_TAB_INDEX)
- {
- switchIntoTestPathMode();
- }
- else
+ if (LLPathingLib::getInstance() != NULL)
{
- switchOutOfTestPathMode();
+ LLPathingLib::getInstance()->setNavMeshMaterialType(getRenderHeatmapType());
}
}
-void LLFloaterPathfindingConsole::onUnfreezeClicked()
-{
- mUnfreezeButton->setEnabled(FALSE);
- LLPathfindingManager::getInstance()->requestSetAgentState(LLPathfindingManager::kAgentStateUnfrozen);
-}
-
-void LLFloaterPathfindingConsole::onFreezeClicked()
-{
- mFreezeButton->setEnabled(FALSE);
- LLPathfindingManager::getInstance()->requestSetAgentState(LLPathfindingManager::kAgentStateFrozen);
-}
-
-void LLFloaterPathfindingConsole::onViewEditLinksetClicked()
-{
- LLFloaterPathfindingLinksets::openLinksetsEditor();
-}
-
void LLFloaterPathfindingConsole::onCharacterWidthSet()
{
updateCharacterWidth();
@@ -621,7 +563,7 @@ void LLFloaterPathfindingConsole::onClearPathClicked()
clearPath();
}
-void LLFloaterPathfindingConsole::onNavMeshZoneCB(LLPathfindingNavMeshZone::ENavMeshZoneRequestStatus pNavMeshZoneRequestStatus)
+void LLFloaterPathfindingConsole::handleNavMeshZoneStatus(LLPathfindingNavMeshZone::ENavMeshZoneRequestStatus pNavMeshZoneRequestStatus)
{
switch (pNavMeshZoneRequestStatus)
{
@@ -658,11 +600,6 @@ void LLFloaterPathfindingConsole::onNavMeshZoneCB(LLPathfindingNavMeshZone::ENav
}
}
-void LLFloaterPathfindingConsole::onAgentStateCB(LLPathfindingManager::EAgentState pAgentState)
-{
- setAgentState(pAgentState);
-}
-
void LLFloaterPathfindingConsole::onRegionBoundaryCross()
{
initializeNavMeshZoneForCurrentRegion();
@@ -706,8 +643,9 @@ void LLFloaterPathfindingConsole::onPathEvent()
void LLFloaterPathfindingConsole::setDefaultInputs()
{
- mEditTestTabContainer->selectTab(XUI_EDIT_TAB_INDEX);
+ mViewTestTabContainer->selectTab(XUI_VIEW_TAB_INDEX);
setRenderWorld(TRUE);
+ setRenderWorldMovablesOnly(FALSE);
setRenderNavMesh(FALSE);
setRenderWalkables(FALSE);
setRenderMaterialVolumes(FALSE);
@@ -715,21 +653,21 @@ void LLFloaterPathfindingConsole::setDefaultInputs()
setRenderExclusionVolumes(FALSE);
setRenderWaterPlane(FALSE);
setRenderXRay(FALSE);
- setRenderWorldMovablesOnly(FALSE);
}
void LLFloaterPathfindingConsole::setConsoleState(EConsoleState pConsoleState)
{
mConsoleState = pConsoleState;
updateControlsOnConsoleState();
- updateStatusOnConsoleState();
+ updateViewerStatusOnConsoleState();
+ updateSimulatorStatusOnConsoleState();
}
void LLFloaterPathfindingConsole::setWorldRenderState()
{
BOOL renderWorld = isRenderWorld();
- mShowWorldMovablesOnlyCheckBox->setEnabled(renderWorld);
+ mShowWorldMovablesOnlyCheckBox->setEnabled(renderWorld && mShowWorldCheckBox->getEnabled());
if (!renderWorld)
{
mShowWorldMovablesOnlyCheckBox->set(FALSE);
@@ -763,6 +701,8 @@ void LLFloaterPathfindingConsole::updateControlsOnConsoleState()
case kConsoleStateUnknown :
case kConsoleStateRegionNotEnabled :
case kConsoleStateRegionLoading :
+ mViewTestTabContainer->selectTab(XUI_VIEW_TAB_INDEX);
+ mViewTab->setEnabled(FALSE);
mShowLabel->setEnabled(FALSE);
mShowWorldCheckBox->setEnabled(FALSE);
mShowWorldMovablesOnlyCheckBox->setEnabled(FALSE);
@@ -775,8 +715,6 @@ void LLFloaterPathfindingConsole::updateControlsOnConsoleState()
mShowExclusionVolumesCheckBox->setEnabled(FALSE);
mShowRenderWaterPlaneCheckBox->setEnabled(FALSE);
mShowXRayCheckBox->setEnabled(FALSE);
- mViewCharactersButton->setEnabled(FALSE);
- mEditTestTabContainer->selectTab(0);
mTestTab->setEnabled(FALSE);
mCtrlClickLabel->setEnabled(FALSE);
mShiftClickLabel->setEnabled(FALSE);
@@ -789,6 +727,8 @@ void LLFloaterPathfindingConsole::updateControlsOnConsoleState()
clearPath();
break;
case kConsoleStateLibraryNotImplemented :
+ mViewTestTabContainer->selectTab(XUI_VIEW_TAB_INDEX);
+ mViewTab->setEnabled(FALSE);
mShowLabel->setEnabled(FALSE);
mShowWorldCheckBox->setEnabled(FALSE);
mShowWorldMovablesOnlyCheckBox->setEnabled(FALSE);
@@ -801,8 +741,6 @@ void LLFloaterPathfindingConsole::updateControlsOnConsoleState()
mShowExclusionVolumesCheckBox->setEnabled(FALSE);
mShowRenderWaterPlaneCheckBox->setEnabled(FALSE);
mShowXRayCheckBox->setEnabled(FALSE);
- mViewCharactersButton->setEnabled(TRUE);
- mEditTestTabContainer->selectTab(0);
mTestTab->setEnabled(FALSE);
mCtrlClickLabel->setEnabled(FALSE);
mShiftClickLabel->setEnabled(FALSE);
@@ -817,6 +755,8 @@ void LLFloaterPathfindingConsole::updateControlsOnConsoleState()
case kConsoleStateCheckingVersion :
case kConsoleStateDownloading :
case kConsoleStateError :
+ mViewTestTabContainer->selectTab(XUI_VIEW_TAB_INDEX);
+ mViewTab->setEnabled(FALSE);
mShowLabel->setEnabled(FALSE);
mShowWorldCheckBox->setEnabled(FALSE);
mShowWorldMovablesOnlyCheckBox->setEnabled(FALSE);
@@ -829,8 +769,6 @@ void LLFloaterPathfindingConsole::updateControlsOnConsoleState()
mShowExclusionVolumesCheckBox->setEnabled(FALSE);
mShowRenderWaterPlaneCheckBox->setEnabled(FALSE);
mShowXRayCheckBox->setEnabled(FALSE);
- mViewCharactersButton->setEnabled(TRUE);
- mEditTestTabContainer->selectTab(0);
mTestTab->setEnabled(FALSE);
mCtrlClickLabel->setEnabled(FALSE);
mShiftClickLabel->setEnabled(FALSE);
@@ -843,6 +781,7 @@ void LLFloaterPathfindingConsole::updateControlsOnConsoleState()
clearPath();
break;
case kConsoleStateHasNavMesh :
+ mViewTab->setEnabled(TRUE);
mShowLabel->setEnabled(TRUE);
mShowWorldCheckBox->setEnabled(TRUE);
setWorldRenderState();
@@ -854,7 +793,6 @@ void LLFloaterPathfindingConsole::updateControlsOnConsoleState()
mShowExclusionVolumesCheckBox->setEnabled(TRUE);
mShowRenderWaterPlaneCheckBox->setEnabled(TRUE);
mShowXRayCheckBox->setEnabled(TRUE);
- mViewCharactersButton->setEnabled(TRUE);
mTestTab->setEnabled(TRUE);
mCtrlClickLabel->setEnabled(TRUE);
mShiftClickLabel->setEnabled(TRUE);
@@ -871,44 +809,34 @@ void LLFloaterPathfindingConsole::updateControlsOnConsoleState()
}
}
-void LLFloaterPathfindingConsole::updateStatusOnConsoleState()
+void LLFloaterPathfindingConsole::updateViewerStatusOnConsoleState()
{
- static const LLColor4 errorColor = LLUIColorTable::instance().getColor("PathfindingErrorColor");
- static const LLColor4 warningColor = LLUIColorTable::instance().getColor("PathfindingWarningColor");
-
- std::string simulatorStatusText("");
std::string viewerStatusText("");
LLStyle::Params viewerStyleParams;
switch (mConsoleState)
{
case kConsoleStateUnknown :
- simulatorStatusText = getString("navmesh_simulator_status_unknown");
viewerStatusText = getString("navmesh_viewer_status_unknown");
- viewerStyleParams.color = errorColor;
+ viewerStyleParams.color = mErrorColor;
break;
case kConsoleStateLibraryNotImplemented :
- simulatorStatusText = getString("navmesh_simulator_status_unknown");
viewerStatusText = getString("navmesh_viewer_status_library_not_implemented");
- viewerStyleParams.color = errorColor;
+ viewerStyleParams.color = mErrorColor;
break;
case kConsoleStateRegionNotEnabled :
- simulatorStatusText = getString("navmesh_simulator_status_unknown");
viewerStatusText = getString("navmesh_viewer_status_region_not_enabled");
- viewerStyleParams.color = errorColor;
+ viewerStyleParams.color = mErrorColor;
break;
case kConsoleStateRegionLoading :
- simulatorStatusText = getString("navmesh_simulator_status_unknown");
viewerStatusText = getString("navmesh_viewer_status_region_loading");
- viewerStyleParams.color = warningColor;
+ viewerStyleParams.color = mWarningColor;
break;
case kConsoleStateCheckingVersion :
- simulatorStatusText = getString("navmesh_simulator_status_unknown");
viewerStatusText = getString("navmesh_viewer_status_checking_version");
- viewerStyleParams.color = warningColor;
+ viewerStyleParams.color = mWarningColor;
break;
case kConsoleStateDownloading :
- simulatorStatusText = getSimulatorStatusText();
if (mIsNavMeshUpdating)
{
viewerStatusText = getString("navmesh_viewer_status_updating");
@@ -917,93 +845,82 @@ void LLFloaterPathfindingConsole::updateStatusOnConsoleState()
{
viewerStatusText = getString("navmesh_viewer_status_downloading");
}
- viewerStyleParams.color = warningColor;
+ viewerStyleParams.color = mWarningColor;
break;
case kConsoleStateHasNavMesh :
- simulatorStatusText = getSimulatorStatusText();
viewerStatusText = getString("navmesh_viewer_status_has_navmesh");
break;
case kConsoleStateError :
- simulatorStatusText = getString("navmesh_simulator_status_unknown");
viewerStatusText = getString("navmesh_viewer_status_error");
- viewerStyleParams.color = errorColor;
+ viewerStyleParams.color = mErrorColor;
break;
default :
- simulatorStatusText = getString("navmesh_simulator_status_unknown");
viewerStatusText = getString("navmesh_viewer_status_unknown");
- viewerStyleParams.color = errorColor;
+ viewerStyleParams.color = mErrorColor;
llassert(0);
break;
}
mPathfindingViewerStatus->setText((LLStringExplicit)viewerStatusText, viewerStyleParams);
- mPathfindingSimulatorStatus->setText((LLStringExplicit)simulatorStatusText);
}
-std::string LLFloaterPathfindingConsole::getSimulatorStatusText() const
+void LLFloaterPathfindingConsole::updateSimulatorStatusOnConsoleState()
{
std::string simulatorStatusText("");
+ LLStyle::Params simulatorStyleParams;
-#ifdef DEPRECATED_UNVERSIONED_NAVMESH
- if (LLPathfindingManager::getInstance()->isPathfindingNavMeshVersioningEnabledForCurrentRegionXXX())
+ switch (mConsoleState)
{
+ case kConsoleStateUnknown :
+ case kConsoleStateLibraryNotImplemented :
+ case kConsoleStateRegionNotEnabled :
+ case kConsoleStateRegionLoading :
+ case kConsoleStateCheckingVersion :
+ case kConsoleStateError :
+ simulatorStatusText = getString("navmesh_simulator_status_unknown");
+ simulatorStyleParams.color = mErrorColor;
+ break;
+ case kConsoleStateDownloading :
+ case kConsoleStateHasNavMesh :
switch (mNavMeshZone.getNavMeshZoneStatus())
{
case LLPathfindingNavMeshZone::kNavMeshZonePending :
simulatorStatusText = getString("navmesh_simulator_status_pending");
+ simulatorStyleParams.color = mWarningColor;
break;
case LLPathfindingNavMeshZone::kNavMeshZoneBuilding :
simulatorStatusText = getString("navmesh_simulator_status_building");
+ simulatorStyleParams.color = mWarningColor;
break;
case LLPathfindingNavMeshZone::kNavMeshZoneSomePending :
simulatorStatusText = getString("navmesh_simulator_status_some_pending");
+ simulatorStyleParams.color = mWarningColor;
break;
case LLPathfindingNavMeshZone::kNavMeshZoneSomeBuilding :
simulatorStatusText = getString("navmesh_simulator_status_some_building");
+ simulatorStyleParams.color = mWarningColor;
break;
case LLPathfindingNavMeshZone::kNavMeshZonePendingAndBuilding :
simulatorStatusText = getString("navmesh_simulator_status_pending_and_building");
+ simulatorStyleParams.color = mWarningColor;
break;
case LLPathfindingNavMeshZone::kNavMeshZoneComplete :
simulatorStatusText = getString("navmesh_simulator_status_complete");
break;
default :
simulatorStatusText = getString("navmesh_simulator_status_unknown");
+ simulatorStyleParams.color = mErrorColor;
break;
}
- }
- else
- {
- simulatorStatusText = getString("navmesh_simulator_status_region_not_enabled");
- }
-#else // DEPRECATED_UNVERSIONED_NAVMESH
- switch (mNavMeshZone.getNavMeshZoneStatus())
- {
- case LLPathfindingNavMeshZone::kNavMeshZonePending :
- simulatorStatusText = getString("navmesh_simulator_status_pending");
- break;
- case LLPathfindingNavMeshZone::kNavMeshZoneBuilding :
- simulatorStatusText = getString("navmesh_simulator_status_building");
- break;
- case LLPathfindingNavMeshZone::kNavMeshZoneSomePending :
- simulatorStatusText = getString("navmesh_simulator_status_some_pending");
- break;
- case LLPathfindingNavMeshZone::kNavMeshZoneSomeBuilding :
- simulatorStatusText = getString("navmesh_simulator_status_some_building");
- break;
- case LLPathfindingNavMeshZone::kNavMeshZonePendingAndBuilding :
- simulatorStatusText = getString("navmesh_simulator_status_pending_and_building");
break;
- case LLPathfindingNavMeshZone::kNavMeshZoneComplete :
- simulatorStatusText = getString("navmesh_simulator_status_complete");
- break;
- default :
+ default :
simulatorStatusText = getString("navmesh_simulator_status_unknown");
+ simulatorStyleParams.color = mErrorColor;
+ llassert(0);
break;
}
-#endif // DEPRECATED_UNVERSIONED_NAVMESH
- return simulatorStatusText;
+ mPathfindingSimulatorStatus->setText((LLStringExplicit)simulatorStatusText, simulatorStyleParams);
}
void LLFloaterPathfindingConsole::initializeNavMeshZoneForCurrentRegion()
@@ -1028,44 +945,6 @@ void LLFloaterPathfindingConsole::cleanupRenderableRestoreItems()
}
}
-void LLFloaterPathfindingConsole::setAgentState(LLPathfindingManager::EAgentState pAgentState)
-{
- switch (LLPathfindingManager::getInstance()->getLastKnownNonErrorAgentState())
- {
- case LLPathfindingManager::kAgentStateUnknown :
- case LLPathfindingManager::kAgentStateNotEnabled :
- mEditTab->setEnabled(FALSE);
- mUnfreezeLabel->setEnabled(FALSE);
- mUnfreezeButton->setEnabled(FALSE);
- mLinksetsLabel->setEnabled(FALSE);
- mLinksetsButton->setEnabled(FALSE);
- mFreezeLabel->setEnabled(FALSE);
- mFreezeButton->setEnabled(FALSE);
- break;
- case LLPathfindingManager::kAgentStateFrozen :
- mEditTab->setEnabled(TRUE);
- mUnfreezeLabel->setEnabled(TRUE);
- mUnfreezeButton->setEnabled(TRUE);
- mLinksetsLabel->setEnabled(FALSE);
- mLinksetsButton->setEnabled(FALSE);
- mFreezeLabel->setEnabled(FALSE);
- mFreezeButton->setEnabled(FALSE);
- break;
- case LLPathfindingManager::kAgentStateUnfrozen :
- mEditTab->setEnabled(TRUE);
- mUnfreezeLabel->setEnabled(FALSE);
- mUnfreezeButton->setEnabled(FALSE);
- mLinksetsLabel->setEnabled(TRUE);
- mLinksetsButton->setEnabled(TRUE);
- mFreezeLabel->setEnabled(TRUE);
- mFreezeButton->setEnabled(TRUE);
- break;
- default :
- llassert(0);
- break;
- }
-}
-
void LLFloaterPathfindingConsole::switchIntoTestPathMode()
{
if (LLPathingLib::getInstance() != NULL)
@@ -1136,9 +1015,6 @@ void LLFloaterPathfindingConsole::clearPath()
void LLFloaterPathfindingConsole::updatePathTestStatus()
{
- static const LLColor4 errorColor = LLUIColorTable::instance().getColor("PathfindingErrorColor");
- static const LLColor4 warningColor = LLUIColorTable::instance().getColor("PathfindingWarningColor");
-
std::string statusText("");
LLStyle::Params styleParams;
@@ -1146,42 +1022,42 @@ void LLFloaterPathfindingConsole::updatePathTestStatus()
{
case LLPathfindingPathTool::kPathStatusUnknown :
statusText = getString("pathing_unknown");
- styleParams.color = errorColor;
+ styleParams.color = mErrorColor;
break;
case LLPathfindingPathTool::kPathStatusChooseStartAndEndPoints :
statusText = getString("pathing_choose_start_and_end_points");
- styleParams.color = warningColor;
+ styleParams.color = mWarningColor;
break;
case LLPathfindingPathTool::kPathStatusChooseStartPoint :
statusText = getString("pathing_choose_start_point");
- styleParams.color = warningColor;
+ styleParams.color = mWarningColor;
break;
case LLPathfindingPathTool::kPathStatusChooseEndPoint :
statusText = getString("pathing_choose_end_point");
- styleParams.color = warningColor;
+ styleParams.color = mWarningColor;
break;
case LLPathfindingPathTool::kPathStatusHasValidPath :
statusText = getString("pathing_path_valid");
break;
case LLPathfindingPathTool::kPathStatusHasInvalidPath :
statusText = getString("pathing_path_invalid");
- styleParams.color = errorColor;
+ styleParams.color = mErrorColor;
break;
case LLPathfindingPathTool::kPathStatusNotEnabled :
statusText = getString("pathing_region_not_enabled");
- styleParams.color = errorColor;
+ styleParams.color = mErrorColor;
break;
case LLPathfindingPathTool::kPathStatusNotImplemented :
statusText = getString("pathing_library_not_implemented");
- styleParams.color = errorColor;
+ styleParams.color = mErrorColor;
break;
case LLPathfindingPathTool::kPathStatusError :
statusText = getString("pathing_error");
- styleParams.color = errorColor;
+ styleParams.color = mErrorColor;
break;
default :
statusText = getString("pathing_unknown");
- styleParams.color = errorColor;
+ styleParams.color = mErrorColor;
break;
}
@@ -1333,6 +1209,10 @@ void LLFloaterPathfindingConsole::deregisterSavedSettingsListeners()
{
mSavedSettingTestPathSlot.disconnect();
}
+ if (mSavedSettingWaterSlot.connected())
+ {
+ mSavedSettingWaterSlot.disconnect();
+ }
}
void LLFloaterPathfindingConsole::handleRetrieveNeighborChange(LLControlVariable *pControl, const LLSD &pNewValue)