From 4888f7d34969b596e2b37ef72576118e1c0c27ac Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Fri, 6 Apr 2012 18:00:52 -0700 Subject: PATH-265: Adding an error message to the testing tab of the pathfinding floater console to indicate when a path cannot be found. --- indra/newview/llfloaterpathfindingconsole.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'indra/newview/llfloaterpathfindingconsole.cpp') diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp index d173764fd1..c59f960d3f 100644 --- a/indra/newview/llfloaterpathfindingconsole.cpp +++ b/indra/newview/llfloaterpathfindingconsole.cpp @@ -549,7 +549,8 @@ LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed) mConsoleState(kConsoleStateUnknown), mPathData(), mHasStartPoint(false), - mHasEndPoint(false) + mHasEndPoint(false), + mHasValidPath(false) { mSelfHandle.bind(this); } @@ -631,6 +632,7 @@ void LLFloaterPathfindingConsole::onClearPathClicked() { mHasStartPoint = false; mHasEndPoint = false; + mHasValidPath = false; updatePathTestStatus(); } @@ -721,6 +723,7 @@ void LLFloaterPathfindingConsole::updateControlsOnConsoleState() mClearPathButton->setEnabled(FALSE); mHasStartPoint = false; mHasEndPoint = false; + mHasValidPath = false; break; case kConsoleStateCheckingVersion : case kConsoleStateDownloading : @@ -741,6 +744,7 @@ void LLFloaterPathfindingConsole::updateControlsOnConsoleState() mClearPathButton->setEnabled(FALSE); mHasStartPoint = false; mHasEndPoint = false; + mHasValidPath = false; break; case kConsoleStateHasNavMesh : mShowNavMeshCheckBox->setEnabled(TRUE); @@ -966,12 +970,14 @@ void LLFloaterPathfindingConsole::generatePath() mPathData.mCharacterType = LLPathingLib::LLPL_CHARACTER_TYPE_NONE; break; } - LLPathingLib::getInstance()->generatePath(mPathData); + LLPathingLib::LLPLResult pathingResult = LLPathingLib::getInstance()->generatePath(mPathData); + mHasValidPath = (pathingResult == LLPathingLib::LLPL_PATH_GENERATED_OK); } } void LLFloaterPathfindingConsole::updatePathTestStatus() { + static const LLColor4 errorColor = LLUIColorTable::instance().getColor("PathfindingErrorColor"); static const LLColor4 warningColor = LLUIColorTable::instance().getColor("PathfindingWarningColor"); std::string statusText(""); @@ -992,10 +998,15 @@ void LLFloaterPathfindingConsole::updatePathTestStatus() statusText = getString("pathing_choose_end_point"); styleParams.color = warningColor; } - else + else if (mHasValidPath) { statusText = getString("pathing_path_valid"); } + else + { + statusText = getString("pathing_path_invalid"); + styleParams.color = errorColor; + } mPathTestingStatus->setText((LLStringExplicit)statusText, styleParams); } -- cgit v1.3