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. --- autobuild.xml | 12 ++++++------ indra/newview/llfloaterpathfindingconsole.cpp | 17 ++++++++++++++--- indra/newview/llfloaterpathfindingconsole.h | 1 + .../default/xui/en/floater_pathfinding_console.xml | 1 + 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index ce3f5893f7..628141c4e6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1110,9 +1110,9 @@ archive hash - c35c738cac6bb74d242b3a7910564439 + 7bec0b4904ce36a2e3c2f5cf38446c9d url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/stinson_llpathinglibrary/rev/253202/arch/Darwin/installer/llphysicsextensions-0.1-darwin-20120405.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/stinson_llpathinglibrary/rev/253279/arch/Darwin/installer/llphysicsextensions-0.1-darwin-20120406.tar.bz2 name darwin @@ -1122,9 +1122,9 @@ archive hash - 531dbd8b78d01301505900144ced7e7a + e6fe146ac8b11f380a6fb64604fe7f4f url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/stinson_llpathinglibrary/rev/253202/arch/Linux/installer/llphysicsextensions-0.1-linux-20120406.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/stinson_llpathinglibrary/rev/253279/arch/Linux/installer/llphysicsextensions-0.1-linux-20120407.tar.bz2 name linux @@ -1134,9 +1134,9 @@ archive hash - 61b220db9104e513b8f967c86f084281 + 6d83c4aa41354d1d76eca6b7911823e0 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/stinson_llpathinglibrary/rev/253202/arch/CYGWIN/installer/llphysicsextensions-0.1-windows-20120405.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/stinson_llpathinglibrary/rev/253279/arch/CYGWIN/installer/llphysicsextensions-0.1-windows-20120406.tar.bz2 name windows 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); } diff --git a/indra/newview/llfloaterpathfindingconsole.h b/indra/newview/llfloaterpathfindingconsole.h index 2b61e0e1e8..85df38b370 100644 --- a/indra/newview/llfloaterpathfindingconsole.h +++ b/indra/newview/llfloaterpathfindingconsole.h @@ -203,6 +203,7 @@ private: LLPathingLib::PathingPacket mPathData; bool mHasStartPoint; bool mHasEndPoint; + bool mHasValidPath; U32 mShapeRenderFlags; static LLHandle sInstanceHandle; diff --git a/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml index 09fe5f4bc7..e43fda01e0 100644 --- a/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml +++ b/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml @@ -31,6 +31,7 @@ Please choose start point. Please choose end point. Path is shown in orange. + A path between the chosen points cannot be found.