diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 1132ee4ea8179a981d0af73b165b748269393786..9d23d439faa44438e238a6e6b1f871d039ee104c 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -400,12 +400,7 @@ void LLAgent::ageChat() //----------------------------------------------------------------------------- void LLAgent::moveAt(S32 direction, bool reset) { - LLFloaterPathfindingConsole* pWindow = LLFloaterPathfindingConsole::getInstanceHandle().get(); - if ( pWindow && pWindow->getHeartBeat() ) - { - return; - } - + mMoveTimer.reset(); LLFirstUse::notMoving(false); @@ -434,11 +429,6 @@ void LLAgent::moveAt(S32 direction, bool reset) //----------------------------------------------------------------------------- void LLAgent::moveAtNudge(S32 direction) { - LLFloaterPathfindingConsole* pWindow = LLFloaterPathfindingConsole::getInstanceHandle().get(); - if ( pWindow && pWindow->getHeartBeat() ) - { - return; - } mMoveTimer.reset(); LLFirstUse::notMoving(false); @@ -660,11 +650,6 @@ void LLAgent::setFlying(BOOL fly) // static void LLAgent::toggleFlying() { - LLFloaterPathfindingConsole* pWindow = LLFloaterPathfindingConsole::getInstanceHandle().get(); - if ( pWindow && pWindow->getHeartBeat() ) - { - return; - } if ( gAgent.mAutoPilot ) { @@ -2724,12 +2709,7 @@ void LLAgent::sendAnimationRequest(const LLUUID &anim_id, EAnimRequest request) void LLAgent::sendWalkRun(bool running) { - LLFloaterPathfindingConsole* pWindow = LLFloaterPathfindingConsole::getInstanceHandle().get(); - if ( pWindow->getHeartBeat() ) - { - return; - } - + LLMessageSystem* msgsys = gMessageSystem; if (msgsys) { diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp index 487ef0933ad19991c0048f67740e827c2c3a5530..7e86819568ea7b9f7021766f0005f8fe7b58d71c 100644 --- a/indra/newview/llfloaterpathfindingconsole.cpp +++ b/indra/newview/llfloaterpathfindingconsole.cpp @@ -207,6 +207,13 @@ void LLFloaterPathfindingConsole::onClose(bool pIsAppQuitting) LLFloater::onClose(pIsAppQuitting); setHeartBeat( false ); setConsoleState(kConsoleStateUnknown); + //Reset all the checkboxes to default + mShowNavMeshCheckBox->set( false ); + mShowWalkablesCheckBox->set( false ); + mShowMaterialVolumesCheckBox->set( false ); + mShowStaticObstaclesCheckBox->set( false ); + mShowExclusionVolumesCheckBox->set( false ); + mShowWorldCheckBox->set( false ); } BOOL LLFloaterPathfindingConsole::handleAnyMouseClick(S32 x, S32 y, MASK mask, EClickType clicktype, BOOL down) @@ -880,3 +887,12 @@ U32 LLFloaterPathfindingConsole::getRenderShapeFlags() } return mShapeRenderFlags; } + +void LLFloaterPathfindingConsole::regionCrossingOccured() +{ + std::string statusText(""); + LLStyle::Params styleParams; + styleParams.color = LLUIColorTable::instance().getColor("DrYellow"); + statusText = getString("navmesh_update_needed"); + mPathfindingStatus->setText((LLStringExplicit)statusText, styleParams); +} \ No newline at end of file diff --git a/indra/newview/llfloaterpathfindingconsole.h b/indra/newview/llfloaterpathfindingconsole.h index c58dc8365370b646cff67e5c11084d4ce4ee37e5..a1973e09859460d90032c851f1ff5fc5154c2d2a 100644 --- a/indra/newview/llfloaterpathfindingconsole.h +++ b/indra/newview/llfloaterpathfindingconsole.h @@ -111,6 +111,8 @@ class LLFloaterPathfindingConsole bool getHeartBeat() const { return mHeartBeat;} void setHeartBeat( bool state ) { mHeartBeat=state; } + void regionCrossingOccured(); + protected: diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index 676287c0addbfe4f62f96a69549d8bafcdab6808..9fd77546eb1e913d5193a9151be0d7a358091398 100644 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -55,6 +55,7 @@ #include "message.h" #include "pipeline.h" #include "llappviewer.h" // for do_disconnect() +#include "llfloaterpathfindingconsole.h" #include <deque> #include <queue> @@ -1091,6 +1092,14 @@ void process_region_handshake(LLMessageSystem* msg, void** user_data) } regionp->unpackRegionHandshake(); + + LLFloaterPathfindingConsole* pWindow = LLFloaterPathfindingConsole::getInstanceHandle().get(); + if ( pWindow && pWindow->getHeartBeat() ) + { + pWindow->regionCrossingOccured(); + return; + } + } 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 d23d62674f8a4ad68d3f1f598aed147544e710cb..aaf94483dfa8d8577a6b778971ae782a2f1695d1 100644 --- a/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml +++ b/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml @@ -23,6 +23,7 @@ <floater.string name="pathing_choose_start_point">Please choose start point.</floater.string> <floater.string name="pathing_choose_end_point">Please choose end point.</floater.string> <floater.string name="pathing_path_valid">Path is shown in blue.</floater.string> + <floater.string name="navmesh_update_needed">Region boundary hit, navmesh may not be accurate. Update.</floater.string> <text height="13" word_wrap="true"